请教个很垃圾的问题……
在DELPHI当中。想把某个变量转换为基址。然后代入到汇编里面。应该怎么……
例如 pushi:='$14515E4'; 在汇编中如何转换成有效的代码
asm
    MOV ecx,pushi
    MOV edx,dword ptr ds:[ecx]
 end;让汇编代码变成
asm
    MOV ecx,$14515E4
    MOV edx,dword ptr ds:[ecx]
 end;

解决方案 »

  1.   


    上面汇编里面正确的代码。那么我在DELPHI里面应该怎么写才能实现呢
    asm
        MOV ecx,pushi
        MOV edx,dword ptr ds:[ecx]
    end;
    可是这个变量应该怎么赋值才能实现到上图的代码。
    pushi应该怎么声明和怎么赋值
      

  2.   

    asm
         LEA ecx,pushi
      

  3.   

    用lea不行,他是要取pushi的内容再间接寻址,不是取pushi的地址再间接寻址。
    实际上在Delphi的BASM中可以直接写:
    mov ecx, [large $14515E4]
    生成的是直接寻址指令,就是mov ecx, dowrd ptr ds:[0x14515E4]
      

  4.   

    var-i:integer;
    asm:ecx,i
      

  5.   

    var reg_ptr:ineger;
    asm 
        mov ecx,reg_ptr
    end;