在NASM宏中使用标签'wait'时出错

时间:2016-03-27 09:18:07

标签: assembly macros nasm

我在NASM中使用宏来定义一些重复的函数。我使用以下代码:

; System call numbers
%define SYS_fork    1
%define SYS_exit    2
%define SYS_wait    3

; define the macro
%macro SYSCALL 1
global %1
%1:
  mov eax, SYS_%1
  int 64 ; 64 is system call
  ret
%endmacro

; call the macro to setup the functions
SYSCALL fork
SYSCALL exit
SYSCALL wait

除了最后一次调用创建名为wait的宏之外,这种方法很好。它给了我错误:

error: parser: instruction expected

wait是否为nasm中的保留字?如果是这样,还有一种方法可以定义一个名为wait的函数吗?

1 个答案:

答案 0 :(得分:1)

是的,WAITFWAIT是x86_64指令集的一部分。我确定你已经尝试更改代码中的名称(Block?HoldUp?)并删除错误,这样也可以解决问题。