说明
| 符号 | 说明 |
|---|---|
| r | 通用寄存器 |
| m | 代表内存 |
| imm | 代表立即数 |
| r8 | 代表8位通用寄存器 |
| m8 | 代表8位内存 |
| imm8 | 代表8位立即数 |
一、MOV
- 语法
| 操作码 | 目标操作数 | 源操作数 |
|---|---|---|
| MOV | r/m8 | r8 |
| MOV | r/m16 | r16 |
| MOV | r/m32 | r32 |
| MOV | r8 | r/m8 |
| MOV | r16 | r/m16 |
| MOV | r32 | r/m32 |
| MOV | r8 | imm8 |
| MOV | r16 | imm16 |
| MOV | r32 | imm32 |
作用
拷贝源操作数到目标操作数。注意
- 源操作数可以是
立即数、通用寄存器、段寄存器、或者内存单元。 - 目标操作数可以是
通用寄存器、段寄存器、或者内存单元。 - 操作数的宽度必须一样。当两个操作数都是寄存器时,寄存器的宽度必须严格一致。例如,
mov eax, ax是错误的。(当源操作数宽度小于目标操作数宽度时,会自动在高位补0;当源操作数宽度大于目标操作数宽度时,会自动将超出的高位进行截断。) - 源操作数和目标操作数不能同时为
内存单元。
二、ADD、SUB、AND、OR和XOR
- 语法
| 操作码 | 目标操作数 | 源操作数 |
|---|---|---|
| ADD/SUB/AND/OR/XOR | AL | imm8 |
| ADD/SUB/AND/OR/XOR | AX | imm16 |
| ADD/SUB/AND/OR/XOR | EAX | imm32 |
| ADD/SUB/AND/OR/XOR | r/m8 | imm8 |
| ADD/SUB/AND/OR/XOR | r/m16 | imm16 |
| ADD/SUB/AND/OR/XOR | r/m32 | imm32 |
| ADD/SUB/AND/OR/XOR | r/m16 | imm8 |
| ADD/SUB/AND/OR/XOR | r/m32 | imm8 |
| ADD/SUB/AND/OR/XOR | r/m8 | r8 |
| ADD/SUB/AND/OR/XOR | r/m16 | r16 |
| ADD/SUB/AND/OR/XOR | r/m32 | r32 |
| ADD/SUB/AND/OR/XOR | r8 | r/m8 |
| ADD/SUB/AND/OR/XOR | r16 | r/m16 |
| ADD/SUB/AND/OR/XOR | r32 | r/m32 |
三、NOT
| 操作码 | 操作数 |
|---|---|
| NOT | r/m8 |
| NOT | r/m16 |
| NOT | r/m32 |