跳转到内容

x86 汇编/X86 指令

来自维基教科书,开放世界中的开放书籍

这些页面将详细讨论基本 x86 指令集中提供的不同指令。为了方便起见,并减少页面大小,不同的指令将被分成组,并分别讨论。

有关更多信息,请参阅 资源 部分。

以下模板将用于不接受操作数的指令

Instr

以下模板将用于接受 1 个操作数的指令

Instr arg

以下模板将用于接受 2 个操作数的指令。注意不同汇编器指令格式的不同。

Instr src, dest GAS 语法
Instr dest, src 英特尔语法


以下模板将用于接受 3 个操作数的指令。注意不同汇编器指令格式的不同。

Instr aux, src, dest GAS 语法
Instr dest, src, aux 英特尔语法

某些指令,特别是在为非 Windows 平台(即 Unix、Linux 等)构建时,需要使用后缀来指定将作为操作对象的数据的大小。一些可能的后缀是

  • b (字节) = 8 位。
  • w (字) = 16 位。
  • l (长) = 32 位。
  • q (四字) = 64 位。

在 32 位体系结构上使用 mov 指令的示例,GAS 语法

movl $0x000F, %eax  # Store the value F into the eax register

在英特尔语法中,您不必使用后缀。根据寄存器名称和使用的立即数,编译器知道要使用哪种数据大小。

MOV EAX, 0x000F
华夏公益教科书