内部功能结构
总线接口部件 BIU
作用:与CPU外部传送指令代码或者数据,如取指令时把指令送到指令队列,执行指令时负责数据交换
组成:
- 段地址寄存器:
- CS:代码段首地址的高16位
- DS:数据段首地址的高16位
- ES:另一个数据段首地址的高16位
- SS:堆栈区数据段首地址的高16位
- 16位的指令指针寄存器IP:存放着下一条地址的偏移量,即CS * 16 +IP=下一条指令的地址
- 20位的地址加法器:段基址 x 16(左移4位) + 偏移地址 = 物理地址
- 指令队列缓冲器:存放预取指令的指令队列
- 内部暂存器:暂存输入输出信息的寄存器
- 总线逻辑控制器:控制总线上的信息传输
执行部件 EUP
组成
- 通用寄存器
- AX
- BX
- CX
- DX
- 专用寄存器
- BP:基数指针寄存器:指向栈底
- SP:堆栈指针寄存器:指向栈顶
- SI:
- DI
- 算术逻辑部件ALU:计算算术逻辑运算,
- EU控制器:
- 标志寄存器
- SF(sign)
- ZF(zero)
- PF(parity)
- CF(carry)
- AF(auxiliary carry)
- OF(overflow)
- DF(direction)
- IF(interrupt enable)
- TF(trap)
寻址方式
立即寻址
1 | mov AX, 3412H |
无法计算源操作数的物理地址
操作数直接包含在指令中,即可以直接从指令队列中获取立即数
寄存器寻址
1 | mov AX, BX |
无法计算源操作数的物理地址
操作数包含在寄存器中
内存器寻址
操作数处于内存的数据段中,指令中指明了数据所在的地址
直接寻址
1 | mov AX, [3412H] |
地址为DS * 10H + 3412H
寄存器间接寻址
1 | mov AX, [BX] |
有效地址操作数包含在寄存器中
- 当没有前缀指令表明操作数在哪一段时(ES:[BX]),则当用BP来间接寻址时,则段寄存器默认为SS,BX、DI、SI默认寄存器为DS
寄存器相对寻址
1 | mov AX,[BX+6824H] |
基址加变址寄存器寻址方式
1 | mov AX,[BX+SI] |
相对的基址和变址寻址方式
1 | mov AH,[BX+SI+2468] |