装配立即值

时间:2015-02-23 00:09:48

标签: assembly x86

我是汇编语言的新手,对于被认为是"立即价值"在AT& T语法中。具体来说,我理解" $"用于表示直接值或地址,"%"用于表示寄存器,但后来我访问"数组":

的元素
movl mem_location(%ebx,%ecx,4), %eax

为什么这个数字4有" $"在它之前,它不是一个直接的价值吗?

感谢您的时间

1 个答案:

答案 0 :(得分:6)

我认为你误解了直接价值的含义。 立即值表示该值包含在操作码中。如果它指的是内存(数组)或寄存器,则不是立即的。正如Jester所指出的,4实际上是内存寻址的比例因子。这不被视为立即值

立即值的一个例子是mov eax, 123

另请注意,立即值是一个汇编概念(它适用于许多架构),而不是特定于AT& T语法的东西。