a:.int 0
movl $0,a(%rip)
是否有办法执行#define b a(%rip)
之类的操作,以便b
的每个实例都被a(%rip)
替换,以便movl $0,a(%rip)
缩写为{{1} }}?我已经尝试了movl $0,b
和b=a(%rip)
,但都没有奏效。任何帮助将不胜感激。
答案 0 :(得分:2)
您可以使用C预处理器预处理文件,然后确实使用#define b a(%rip)
。要使用C预处理器预处理文件,请使用文件后缀.S
而不是.s
,并按如下方式进行汇编:
cc -c file.S
请注意,像这样的定义非常不寻常并且让读者感到困惑。我建议您不要试图通过宏的方式更改令您困惑的汇编语法,而是要熟悉语法以及使用%rip
- 相对寻址模式的原因。