我正在使用 GAS 为 ARM Linux 构建一个程序,但我想做一些宏以使我的开发更加智能。那我想知道:
我怎样才能为此做一个宏:(x+y*240)*2
,x
和y
是int
,将像这样使用:
mov r0, MACRO_SHOULD_BE_CALLED_HERE
我怎样才能做一个应该这样调用的宏:
JUST_MACRO_CALLED_HERE_TO_DO_SOMETHING
这只会执行其中已定义的操作,例如打印函数。
此外,如果我需要宏或函数调用的一些参数。我怎样才能做到呢?
PS:r0
是一个ARM寄存器,就像x86的eax
最佳答案
GAS vs NASM comparison - Macros显示了执行参数化宏的方法,但它是简单的替换。
关于assembly - 如何创建一个扩展为 "(x+y*240)*2"之类的表达式的 GNU GAS 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3127905/