我有以下程序集文件mov.s
.text
.macro test_3
and $3,%eax
.endm
movz:
movzb %al,%ax
movzb (%eax),%ax
movzb %al,%eax
movzb (%eax),%eax
.ifdef test_3
movzb33 %al,%rax
movzb (%rax),%rax
.endif
命令as -o dump.o movz
在这段代码中,我想用汇编语言测试ifdef
,所以我定义了宏test_3。
根据我的理解,它应该打印消息
Error: no such instruction: 'movzb33 %al,%rax'
当我使用汇编程序但它没有进入ifdef
时,那么问题是什么?
答案 0 :(得分:0)
.ifdef
检查是否定义了符号,它不测试宏。在GNU AS和许多其他汇编程序中,宏只能在允许指令的地方使用。