DELPHI 内联asm 压入字符串新问题。
以前我没太注意,今天一个朋友问我DELPHI压入字符串,我随手给它编了一段代码:
var
  Form1: TForm1;
  dz01:string[100];
implementation
procedure acc;stdcall;                    
begin
dz01:= 'acc ';
asm
        pushad
        mov  ebx,$754ea4
        mov  ecx,dword ptr ds:[ebx]
        push offset dz01
        mov  ebx,$430FD0
        call ebx
        popad
end;
end;
下面是以上DELPHI代码反汇编结果
0044E7BC   60                     pusha
0044E7BD   BBA44E7500             mov     ebx, $00754EA4
0044E7C2   3E8B0B                 mov     ecx, ds:[ebx]
0044E7C5   682C044500             push    $0045042C
0044E7CA   BBD00F4300             mov     ebx, $00430FD0
0044E7CF   FFD3                   call    ebx
0044E7D1   61                     popa
0044E7D2   C3                     ret
而达不到ASM的偏移指针(压入字符串)的效果
DELPHI  效果:0044E7C5   682C044500             push    $0045042C
要达到的效果:0044E7C5   682C044500             push offset dz01
??
[此贴子已经被作者于2007-10-15 2:08:14编辑过]

 
											





