微机原理与接口技术笔记-第二章(8086/8088系统结构和80X86微处理器)

第二章

8086/8088系统结构

一、微处理器

1.1概述

  • 简称CPU,由运算器控制器寄存器三部分组成。
    • 运算器:算术和逻辑运算。
    • 控制器:包括指令寄存器指令译码器、和控制电路。可实现指令译码、调用和取操作数或操作数地址的功能。
    • 寄存器暂存 操作数和运行结果。

1.2微处理器内部结构

  • 控制器:完成指令的读取、寄存、译码和执行。
  • 工作寄存器:暂存寻址和计算过程的信息。
  • I/O控制逻辑:处理输入/出操作。
  • ALU:所有的算术、逻辑、移位计算。

1.3微处理器的外部结构

  • 微处理器的外部结构指:CPU与外部设备和I/O组成的结构。它们之间的联系是:
    • 控制器总线:在CPU与外部设备或I/O口之间传输控制信息和状态信息。
    • 地址总线: 在CPU和外存或I/O口之间传输地址码。
    • 数据总线: 在CPU和外存或I/O口之间传输数据。

二、8086/8088

2.1 8086/8088的功能结构

在这里插入图片描述

  • 寄存器结构

  • 在这里插入图片描述

    • 通用寄存器
      • 数据寄存器:(分为高八位和低八位,只能用来存放数据,即寄存操作数或操作数结果)
        • AX:累加器
        • BX:基址寄存器
        • CX:计数寄存器
        • DX:数据寄存器
      • 指针寄存器:(对存储器操作数寻址时,用于形成20位的地址码,而其本身只有16位无法作为地址码)
        • SP:堆栈指针:存放堆栈操作的段内偏移地址(段地址由SS段寄存器提供)
        • BP:基址指针:对堆栈内寻址时,存放段内偏移地址的一部分
      • 变址寄存器:(同上)
        • SI:源变址寄存器:存放某些间接寻址时段内偏移地址
        • DI:目标变址寄存器:存放某些间接寻址时段内偏移地址
  • 段寄存器:

    • CS:代码段寄存器:存放当前程序所在段的段地址,其内容<<4再加上指令指针IP的内容就是下一条要执行的指令地址
    • DS:数据段寄存器:存放当前数据的段地址,其内容<<4再加上按指令中存储器寻址方式计算出来的偏移地址,即为对数据段指定位置的读写
    • SS:堆栈段寄存器:存放当前堆栈段的地址,其内容<<4再加上SP的内容即为对堆栈进行操作的地址。
    • ES:附加段寄存器:存放附加段的段地址,是进行字符串操作时的目的区地址。
      在这里插入图片描述
  • 控制寄存器

    • IP:指令指针:存放下一条要执行指令的偏移地址。
    • FLAGS:标志寄存器:状态字PSW寄存器,存放状态特征和控制标志。
    • 状态标志
    • CF:进位标志(1有效)
    • PF:(1的个数)奇偶标志(1有效)
    • AF:辅助进位标志(1有效)
    • ZF:(运算结果)零标志(1有效)
    • SF:符号标志(1为负)
    • OF:溢出标志,超出带符号数表示的范围(1有效)
      • 例如在这里插入图片描述
        SF=1;PF=0;ZF=0;CF=0;AF=0;OF=1;
    • 控制标志
      • DF:方向控制(1递减)
      • IF:可屏蔽中断允许标志位(1允许中断)
      • TF:陷阱标志(1单步执行)
  • 工作过程:程序运行时,IP指令指针将要运行的指令地址传输到ALU总线,IP本身自加指向下一条指令地址。再通过一系列计算计算出20位的地址码,通过总线接口单元BIU按照20位地址码从外部存储器或I/O接口寄存器将指令读取到指令队列,再通过8位Q总线将指令传回执行单元进行运行,运行时通过一系列计算计算出20地址码读取外部存储器或I/O接口寄存器的数据。

2.2 8086/8088的存储器组织和I/O组织

2.2.1存储器的地址空间和数据存储格式
  • 地址空间:以字节(8位)存储.有20条地址总线,即1MB空间
  • 数据存储格式:两个字节=一个字,字地址的高八位存储高字节地址,低八位存储低字节地址.
2.2.2存储器的分段和物理地址的形成
存储器的分段
  1. 为什么要分段?
  • 16位的地址寄存器最多有216种变化,即直接寻址的空间有64KB,而物理地址空间有1MB,故地址寄存器无法对物理地址空间进行管理.
  1. 如何分段?
  • 将能整除16的地址作为各逻辑段的起始地址,该起始地址的高十六位也称段地址.其余的地址均可通过段地址加偏移来计算得到.而偏移也是16位的,故十六位的段地址最大段为216=64KB的范围.(逻辑段可以紧密相连也可以重叠)
    在这里插入图片描述

以能整除十六的高十六位为段地址,1MB = 220=1048576/16=65536=216,故有216个段地址,每个地址寄存器是16位,故每一个段地址配上其偏移的空间有:216=64KB

物理地址的换算
  • 逻辑地址:段地址:偏移地址
  • 物理地址=段地址<<4+偏移地址
2.2.3段地址和偏移地址来源
用户的程序数据存储在代码段,数据段,堆栈段,附加段中,而这些段的地址存储在CS,DS,SS,ES中.其偏移地址的来源与段地址的来源如下:

在这里插入图片描述

2.2.4 8086/8088 I/O口组织

在这里插入图片描述

  1. 每个I/O端口有唯一一个端口地址;
  2. 需要I/O端口寄存器的原因是CPU速度远快于I/O设备,I/O端口相当于起缓冲作用;
  3. 8086的端口控制线是16位,共可以控制216个I/O端口,8088的端口控制线是8位,共可以控制28个I/O端口.
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simon-GPT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值