a:.int 0
movl $0,a(%rip)
有没有办法做类似#define b a(%rip)
的事情,这样b
的每个实例都将被a(%rip)
替换,以便movl $0,a(%rip)
可以缩写为movl $0,b
?我已经尝试了b=a(%rip)
和.macro b;a(%rip);.endm
但都没有奏效。任何帮助将不胜感激。
您可以使用
C 预处理器预处理文件,然后确实使用 #define b a(%rip)
.若要使用 C 预处理器预处理文件,请使用文件后缀 .S
而不是.s
,并像这样组装:
cc -c file.S
请注意,这样的定义非常不寻常,让读者感到困惑。与其尝试更改宏使您感到困惑的汇编语法,我建议您熟悉语法以及使用%rip
相对寻址模式的原因。