gas:内存参考太多了

时间:2010-03-28 02:26:32

标签: assembly gas

编译以下指令时:

movl 4(%ebp), 8(%ebp)

我得到了:内存参考太多

它出了什么问题?

3 个答案:

答案 0 :(得分:7)

括号前面的数字是一个字节偏移量(导致内存引用发生),并且你不能将其中两个带有movl。您需要先将值临时移动到寄存器。

movl 4(%ebp), %ecx
movl %ecx, 8(%ebp)

答案 1 :(得分:2)

这不是法律指示。对于大多数引用存储器的指令,必须将其移入/移出寄存器。

答案 2 :(得分:2)

movl不会记忆内存移动,你必须通过寄存器(因此有两个movl指令)。