汇编即时值
Assembly immediate values
我是汇编语言的新手,对 AT&T 语法中的 "immediate value" 感到有点困惑。具体来说,我知道“$”用于表示立即值或地址,“%”用于表示寄存器,但后来我开始访问 "arrays":
的元素
movl mem_location(%ebx,%ecx,4), %eax
为什么这个数字4前面没有"$",不是立即数吗?
感谢您的宝贵时间
我认为你误解了立即值的含义。 立即值表示该值包含在操作码中。如果是指内存(数组)或寄存器,则不是立即数。正如 Jester 指出的那样, 4
实际上是内存寻址的比例因子。这不被视为立即值。
立即值的一个例子是mov eax, 123
。
还要注意立即值是一个汇编概念(它适用于很多体系结构),而不是特定于 AT&T 语法的东西。
我是汇编语言的新手,对 AT&T 语法中的 "immediate value" 感到有点困惑。具体来说,我知道“$”用于表示立即值或地址,“%”用于表示寄存器,但后来我开始访问 "arrays":
的元素movl mem_location(%ebx,%ecx,4), %eax
为什么这个数字4前面没有"$",不是立即数吗?
感谢您的宝贵时间
我认为你误解了立即值的含义。 立即值表示该值包含在操作码中。如果是指内存(数组)或寄存器,则不是立即数。正如 Jester 指出的那样, 4
实际上是内存寻址的比例因子。这不被视为立即值。
立即值的一个例子是mov eax, 123
。
还要注意立即值是一个汇编概念(它适用于很多体系结构),而不是特定于 AT&T 语法的东西。