Assembly x86 HLA程序集中的指针
我想知道是否有什么东西可以向我解释汇编中的指针。 例如,mov(eax,[ebx]);,mov(&iValue,EBX);,和mov(VarName[eax],al);什么意思?Assembly x86 HLA程序集中的指针,assembly,x86,hla,Assembly,X86,Hla,我想知道是否有什么东西可以向我解释汇编中的指针。 例如,mov(eax,[ebx]);,mov(&iValue,EBX);,和mov(VarName[eax],al);什么意思? 谢谢大家! iValue是您在某处声明的全局变量吗?我假设这相当于AT&T语法mov$iValue,%EBX,将标签地址放入寄存器,并使用mov立即数。对于其他的,这些看起来像是内存操作数的正常英特尔语法寻址模式,请参见(HLA使用op(src,dst)order,我认为,就像AT&T语法一样,与英特尔语法的其余部分相
谢谢大家!
iValue
是您在某处声明的全局变量吗?我假设这相当于AT&T语法mov$iValue,%EBX,将标签地址放入寄存器,并使用mov立即数。对于其他的,这些看起来像是内存操作数的正常英特尔语法寻址模式,请参见(HLA使用op(src,dst)
order,我认为,就像AT&T语法一样,与英特尔语法的其余部分相反。)iValue只是一个随机变量,我的教授用它来解释示例。还有,谢谢!好的,但是HLA没有局部变量吗?在正常asm中,只能将mov
地址作为绝对地址;要将局部变量(堆栈上)的地址放入寄存器,您需要lea4(%esp)、%ebx
或其他什么。(英特尔leaebx[esp+4]
)。如果HLA不尝试将名称附加到堆栈位置(就像MASM处理proc
/local
stuff那样),那么是的,所有“变量”都是C所称的全局或静态变量,它们的符号名称与代码中的标签一样。