8086寻址方式和指令系统复习笔记
8086寻址方式和指令系统
系统的性能要求:
- 完备性 //直接提供的指令够用,不用软件来实现
- 高效性 //程序占用空间小.
- 规整性 //指令系统的对称性. 匀齐性,指令格式和数据格式的一致性.
- 兼容性 //向上兼容.
指令的格式:
- 操作码 //一个包含N位的操作码最多能表示2的N次方条指令
- 地址码
- 零地址指令的指令字中只有操作码
- 一地址指令常驻机构称为单操作指令
- 二地址指令常和为双操作指令
- 三地址指令字中有三个操作字地址A1,A3,A3 (A1)op(A2)->A3
指令的分类及功能:
- 数据传送类指令 data transfer
- 算术运算类指令 arithmetic
- 逻辑类指令 logical
- 数据变换类指令 conversion
- 控制权转移类指令 transfer of control
- 系统控制类指令 system control
- 输入输出类指令 I/O
指令的寻址方式:
- 顺序寻址 // program count
- 跳跃寻址 //由本指令给出下一条指令地址 指令系统中的各种条件指令和无条件转移指令是为了实现指令的跳跃寻址而设置
操作数寻址方式:
- 隐含寻址
- 立即寻址
- 直接寻址
- 间接寻址
- 寄存器寻址
- 寄存器间接寻址
- 相对寻址
- 基址寻址
- 变址寻址
- 堆栈寻址
指令的执行:
- CPU发出指令地址
- 读取地址
- 指令送指令寄存器
- 指令译码
- 按指令操作码执行
- 形成下一条要取指令的地址
寻址方式 |
操作数地址(PA) |
指令格式举例 |
立即寻址 |
操作数在指令中给出 |
MOV DX,100H ; (DX)←100H |
寄存器寻址 |
操作数在寄存器中 |
ADD AX,BX ; (AX)←(AX)+(BX) |
直接寻址 |
操作数的有效地址由指令直接给出 |
MOV AX,[100] ; (AX)←(100) |
寄存器 |
PA=(DS)×16+(BX)或(SI)或(DI) |
MOV AX,[BX] ; |
寄存器 |
PA=(DS)×16+(BX)或(SI)或(DI)+位移量 |
MOV AL,MESS[SI]; |
基址变址 |
PA=(DS)×16+(BX)+(SI)或(DI) |
MOV AX,[BX+DI]; |
相对基址 |
PA=(DS)×16+(BX)+(SI)或(DI)+位移量 |
MOV AX,BUFF(BX+DI); |
----------------------------------------------------------------------------------------------------------------------------------------------------
⑴通用数据传送指令
- MOV 传送
- PUSH 进栈
- POP 出栈
- XCHG 交换
⑵累加器专用传送指令
- IN 输入
- OUT 输出
- XLAT 换码
⑶地址传送指令
- LEA 有效地址送寄存器
- LDS 指针送寄存器和DS
- LES 指针送寄存器和ES
⑷标志寄存器传送指令
- LAHF 标志送AH
- SAHF AH送标志寄存器
- PUSHF 标志进栈
- POPF 标志出栈