前言
8086/8088指令格式
指令编码
具体例子
8086/8088指令的寻址方式
操作数的种类
- 数据型操作数
- 地址型操作数
数据型操作数寻址方式举例
寻址方式
数据寻址方式
1.立即数寻址方式
例如:
MOV BL,80H
MOV AX,1090H
2,寄存器寻址方式
例如:
MOV CL,DL
MOV AX,DX
3.存储器寻址方式
在一般情况下,若指令中指定的寄存器是BX、SI、DI,则存放操作数的段寄存器器默认为DS。
若指令中指定的寄存器是BP,则对应的段寄存器应为SS。
一般允许段超越
0)偏移地址(有效EA)分量的组成
1)直接寻址方式
例如:
MOV AL,[1064H]
段超越:
MOV AL,ES:[1064H]
2)寄存器间接寻址方式
{ (SI) EA= { (DI) { (BX)
例如:
MOV AX,[SI]
MOV [BX],[AL]
段超越:
MOV ES:[DI],AX
3)寄存器相对寻址方式
{ (SI) } { (DI) } EA= { } +disp_8/disp_16 { (BX) } { (BP) }
例如:
MOV [SI+10H],AX
MOV CX,[BX+COUNT]
4)基址加变址寻址方式
{ (SI) } { (BP) } EA= { } + { } { (DI) } { (BX) }
例如:
MOV [BX+DI],AX
段超越:
MOV AH,[BP][SI]
5)基址变址相对寻址方式
{ (SI) } { (BP) } EA= { } + { }+disp_8/disp_16 { (DI) } { (BX) }
例如:
MOV AH,[BX+DI+1234H[
段超越:
MOV [BP+SI+DATA],CX
存储器寻址方式小结
存储器寻址方式举例
4.IO端口寻址方式
1)端口直接寻址
IO端口为(0~255)时
例如:
IN AL,21H
2)端口间接寻址
IO端口大于FFH时,必须事先将端口地址存放在DX寄存器中
例如:
MOV DX,120H
OUT DX,AX
地址寻址方式
- 段内直接寻址方式
- 段内间接寻址方式
- 段间直接寻址方式
- 段内间接寻址方式