指令的一般格式为:
![]()
操作码 —— 告诉计算机要执行的操作是什么,如:加、减、逻辑与等。
操作数 —— 执行操作过程所要操作的数,如加运算的两个加数。
- 无操作数指令
- 单操作数指令(操作数在R中、M中)

- 双操作数指令(操作数在R中、M中、指令中)

1.无操作数指令

例: HLT指令为F8H(11111000B)
2.单操作数指令(操作数在R中)

单操作数指令(操作数在M中)

- MOD与R/M的3x8种组合,对应不同的M寻址方式。
3.双操作数指令
一个操作数在R、M中,另一个在R中、M中、立即数。不可以都在M中。
- R-R
- R-M
- R-Data
- M-Data

双操作数指令(R-R)

D=REG为目标(R/M为源)/REG为源(R/M为目标)。指出目标、源寄存器的位置。
D=1时,REG中为目标操作数R,R/M为源操作数据R;D=0 相反。
REG,R/M都有8种组合, AL/AX,CL/CX,DL/DX,BL/BX,AH/SP,CH/BP,DH/SI,BH/DI.
W=字/字节选择(16位/8位)
双操作数指令(R-M)

D=REG为目标(R/M为源)/REG为源(R/M为目标)。指出目标、源寄存器的位置。
D=1时,REG中为目标操作数R,R/M为源操作数据R;D=0 相反。
REG,W有8种组合,选AL/AX,CL/CX,DL/DX,BL/BX,AH/SP,CH/BP,DH/SI,BH/DI。
R/M,MOD=00、01、10:对M不同寻址。
双操作数指令(R<--Data)

REG,W组合,选AL/AX,CL/CX,DL/DX,BL/BX,AH/SP,CH/BP,DH/SI,BH/DI。

R/M,W组合,选AL/AX,CL/CX,DL/DX,BL/BX,AH/SP,CH/BP,DH/SI,BH/DI。
双操作数指令(M<--Data)

R/M,W组合,选对M的寻址

双操作数指令


Note: BP, Disp8不可一个出现,组合状态26-2=24
80386指令格式:

汇编语言指令与机器指令一一对应

汇编语言是一种符号语言,它用:
- 助记符——表示操作码;
- 符号或符号地址——表示操作数或操作数地址.


