我正在使用GAS构建ARM Linux的程序,但我想要做一些宏以使我的开发更加智能。然后,我想知道:如何创建扩展为“(x + y * 240)* 2”等表达式的GNU GAS宏?
我怎么会做这样的宏:(x+y*240)*2
,是x
和y
是int
,将像这样被使用:
mov r0, MACRO_SHOULD_BE_CALLED_HERE
而且我怎么可能做一个宏应该这样调用:
JUST_MACRO_CALLED_HERE_TO_DO_SOMETHING
这只是做一些已经在里面定义的东西,比如打印功能。
此外,如果我需要在宏或函数调用一些参数。我怎么能做到这一点?
PS:r0
是一个ARM寄存器,像86
什么是'x'和'y':寄存器还是常量?对于常量,请考虑使用'.altmacro'和'%':http://stackoverflow.com/questions/19776992/gas-altmacro-macro-with-a-percent-sign-in-a-default-parameter-fails- with-oper – 2015-09-23 10:46:22