411 REFERENCE · Wikibooks
X86 Assembly/X86 Instructions
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
X86 instruction listings
These pages will discuss, in detail, the different instructions available in the basic x86 instruction set. For ease, and to decrease the page size, the different instructions will be broken up into groups, and discussed individually.
X86 assembly language
Data Transfer Instructions
Control Flow Instructions
Arithmetic Instructions
Logic Instructions
Shift and Rotate Instructions
Other Instructions
x86 Interrupts
For more info, see the resources section.
Conventions
The following template will be used for instructions that take no operands:
The following template will be used for instructions that take 1 operand:
The following template will be used for instructions that take 2 operands. Notice how the format of the instruction is different for different assemblers.
The following template will be used for instructions that take 3 operands. Notice how the format of the instruction is different for different assemblers.
Suffixes
Some instructions, especially when built for non-Windows platforms (i.e. Unix, Linux, etc.), require the use of suffixes to specify the size of the data which will be the subject of the operation. Some possible suffixes are:
b (byte) = 8 bits.
w (word) = 16 bits.
l (long) = 32 bits.
q (quad) = 64 bits.
An example of the usage with the mov instruction on a 32-bit architecture, GAS syntax:
movl $0x000F, %eax # Store the value F into the eax register
On Intel Syntax you don't have to use the suffix. Based on the register name and the used immediate value the compiler knows which data size to use.
MOV EAX, 0x000F
ja:X86アセンブラ/x86の命令