繁体   English   中英

装配立即值

[英]Assembly immediate values

我是汇编语言的新手,对AT&T语法中被认为是“直接值”的东西感到有些困惑。 具体来说,我理解“$”用于表示立即值或地址,“%”用于表示寄存器,但后来我访问“数组”的元素:

movl mem_location(%ebx,%ecx,4), %eax

为什么这个数字4之前没有“$”,这不是一个直接值吗?

感谢您的时间

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

立即价值的一个例子就像mov eax, 123

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM