gas:内存参考太多了

fre*_*ght 5 x86 assembly gnu-assembler att

在编译指令时

movl 4(%ebp), 8(%ebp)
Run Code Online (Sandbox Code Playgroud)

我得到'太多的记忆参考',它有什么问题?

Mar*_*c W 7

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

movl 4(%ebp), %ecx
movl %ecx, 8(%ebp)
Run Code Online (Sandbox Code Playgroud)