版权声明:转载请标明来处,谢谢! https://blog.csdn.net/qq_41600080/article/details/84572641
第二章
1.8088/8086微处理器
8088/8086 CPU的特点
- 采用并行流水线工作方式
——通过设置指令预取队列实现(CPU内部结构) - 对内存空间实行分段管理
——将内存分为4个段并设置地址段寄存器,以实现对1MB空间的寻址
-支持协处理器(工作模式)
8088/8086CPU引线功能比较
- 数据总线宽度不同
——8088的外部总线宽度是8位,8086为16位。 - 访问存储器和输入输出控制信号含义不同
——8088——IO/M=0 表示访问内存;
——8086——IO/M=1表示访问内存; - 其他部分引线功能的区别
2.8088内存结构
指令预取队列的存在使EU和BIU两个部分可同时进行工作
- 提高了CPU的效率
- 降低了对存储器存取速度的要求
3. 8088内部寄存器
内存寄存器的类型
含14个16位寄存器,按功能可分为三类(8个通用寄存器、4个段寄存器、2个控制寄存器)
1、通用寄存器
- 数据寄存器(AX,BX,CX,DX)
- 地址指针寄存器(SP,BP)
- 变址寄存器(SI,DI)
数据寄存器
8088/8086含4个16位数据寄存器,它们又可以分为8个8位寄存器,即:
- AX——>AH,AL
- BX——>BH,BL
- CX——>CH,CL
- DH——>DH,CL
数据寄存器的用法
- AX:累加器(所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中;)
- BX:基址寄存器(在间接寻址中用于存放基地址;)
- CX:计数寄存器(用于在循环或串操作指令中存放计数值;)
- DX:数据寄存器。(在间接寻址的I/O指令中存放I/O端口地址;在32位乘除法运算时,存放 高16位数。)
地址指针寄存器
- SP:堆栈指针寄存器,其内容为栈顶的偏移地址
- BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。
变址寄存器
- SI:源变址寄存器
- DI:目标变址寄存器
- 变址寄存器在指令中常用于存放数据在内存中的地址
2、控制寄存器
状态标志位
- PF(Parity Flag):奇偶标志位。运算结果的低8位中“1”的个数为偶数时PF=l;
- AF(Auxiliary Carry Flag):辅助进位标志位。加(减)操作中,若Bit3向Bit4有进位(借位), AF=1;
- CF(Carry Flag):进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1;
- OF(Overflow Flag):溢出标志位。当算术运算的结果超出了有符号数的可表达范围时, OF=l;
- ZF(Zero Flag):零标志位。当运算结果为零时ZF=1;
- SF(Sign Flag):符号标志位。当运算结果的最高位为1时,SF=l;
举个栗子
控制标志位
- TF(Trap Flag):陷井标志位,也叫跟踪标志位。TF=1时,使CPU处于单步执行指 令的工作方式。
- IF(Interrupt Enable Flag):中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。
- DF(Direction Flag):方向标志位。在数据串操作时确定操作的方向。
3、段寄存器
作用:用于存放相应逻辑段的段基地址。
8086/8088内存中逻辑段的类型:
- 代码段——>存放指令代码
- 数据段——>存放操作的数据
- 附加段——>存放操作的数据
- 堆栈段——>存放暂时不用但需保存的数据
4个段寄存器
- CS:代码段寄存器,存放代码段的段基地址。
- DS:数据段寄存器 ,存放数据段的段基地址。
- ES:附加段寄存器,存放数据段的段基地址。
- SS:堆栈段寄存器, 存放堆栈段的段基地址
4.存储器寻址
8088CPU是16位体系结构的微处理器,可以同时处理(产生)16位二进制码(可以产生64K个编码);
8088CPU需要管理1MB内存(需要能够产生1M个地址编码);
欲实现对1MB内存空间的正确访问,每个内存单元在整个内存空间中必须具备唯一地址——>物理地址
(1)内存单元的编址
内存每个单元的地址在逻辑上都有两部分组成:
- 段(基)地址:指示存储单元在整个内存空间中处于哪个区域;
- 段内地址(相对地址/偏移地址):指示存储单元在段中的相对位置(与段中第一个单元的距离);
段首的偏移地址=0
例题: - 已知:CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H。画出各段在内存中的分布。
每个段寄存器都占用64位的地址。
堆栈
内存中的一个特殊区域,用于存放暂时不用或需要保护的数据;常用于响应中断或子程序调用。