跳轉到內容

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
華夏公益教科書