我在使这个微小的宏工作时遇到了很多麻烦。OSX x86 GAS .macros的语法是什么?
.macro int_kernel subl $4, %esp int $0x80 addl $4, %esp .endm
运行汇编器,我得到使用$ 0,$ 1,...来指代宏的参数
as -arch i386 upper.s -o ./upper.o upper.s:51:expecting operand before ','; got nothing upper.s:51:suffix or operands invalid for `int' upper.s:51:expecting operand before ','; got nothing
的误差从宏观OSX语法来。
该宏中的常量的正确的osx语法是什么?
解决方案:两块钱标志必须被用作subl $$4, %esp
我不知道那是什么汇编,但它不是GAS。 GAS宏语法记录在这里:http://sourceware.org/binutils/docs/as/Macro.html#Macro – zwol