【发布时间】:2017-01-29 01:48:11
【问题描述】:
为什么.equ 指令不能以这种方式在gas中工作:
.equ Mark64, 8(%rsi)
虽然它在此工作(注意:Mark32 所在的.text 部分在这种情况下设置为 r/w):
Mark32 EQU DWORD PTR [ESI + 4]
如何让Mark64 在 GAS 中工作(.set 也不起作用)?
提前致谢!
【问题讨论】:
-
使用预处理程序集和
#define。或者,只定义偏移量,例如.equ Mark64, 8,然后你可以做movl Mark64(%rsp), %eax。 -
@fuz 你有吗?它不起作用,因为
.equ定义了一个符号,而不是文本替换,并且8(%rsp)不是符号的有效值。 -
@fuz,是的,我试过了。逗号在这里是一个拼写错误。还是不行