微机原理(二)

版权声明:转载请标明来处,谢谢! 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位的地址。

堆栈

内存中的一个特殊区域,用于存放暂时不用或需要保护的数据;常用于响应中断或子程序调用。在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41600080/article/details/84572641