Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly x86 HLA程序集中的指针_Assembly_X86_Hla - Fatal编程技术网

Assembly x86 HLA程序集中的指针

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语法一样,与英特尔语法的其余部分相

我想知道是否有什么东西可以向我解释汇编中的指针。 例如,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只是一个随机变量,我的教授用它来解释示例。还有,谢谢!好的,但是HLA没有局部变量吗?在正常asm中,只能将
mov
地址作为绝对地址;要将局部变量(堆栈上)的地址放入寄存器,您需要
lea4(%esp)、%ebx
或其他什么。(英特尔
leaebx[esp+4]
)。如果HLA不尝试将名称附加到堆栈位置(就像MASM处理
proc
/
local
stuff那样),那么是的,所有“变量”都是C所称的全局或静态变量,它们的符号名称与代码中的标签一样。