有一个类的声明如下
unit Unit1;
interface
...
type
  TObj = class(...)
  private
    fProp1: Integer;
  public
    property Prop1: Integer read fProp1;
  end;有另外一个单元
unit Unit2;...
//其中有一段basm需要存取TObj对象的Prop1属性,请问
//对于以下的函数,
function GetProp1(aObj: TObj): Integer;
begin
  Result := aObj.Prop1;
end;//对应的BASM写法应该怎样写?
function BASMGetProp1(aObj: TObj): Integer;
asm
  //???
end;谢了

解决方案 »

  1.   

    编译,运行,在CPU Window内Copy下来的改改就是http://lysoft.7u7.net
      

  2.   

    怪我没说清楚,有一个前提就是不能假设Delphi对于对象字段的布局如果写成这样:
    function BASMGetProp1(aObj: TObj): Integer;
    asm
      mov eax, [eax+04]
    end;就不符合我的要求
      

  3.   

    alphax:好久不见,可好
    Prop1为一属性,用汇编还真不知怎么写
    如果直接取字段的话

    mov eax, aObj.TObj.fProp1
      

  4.   

    哎呀呀,少见你啊,我还马马虎虎吧,老样子,没什么出息,儿子渐渐长大,自己渐渐见老,,,
    结了婚就少见你了,真是,,,
    你现在如何?上班啦?还有没有玩Delphi?
    这个问题,我都摆弄了好久了,始终,,,确实是basm的一个缺陷,我有一个应用,恰好需要用basm直接存取属性,,,哎,如果这个问题解决不了,只有想更麻烦的办法了
      

  5.   

    呵呵,岁月催人老,你都有儿子了
    我现在还好,已上班了,在学c,c++
    delphi有些生疏了.确实basm好像不能取属性
      

  6.   

    上MSN吧
    我的[email protected]
    我也是刚学,不过感觉c,c++方面的东西也很是不错
    我先下了