【微机原理笔记】第 2 章 - 微处理器与总线

微机原理笔记 - 主页

第 2 章 微处理器与总线

1. 微处理器概述

(1)程序的执行过程

  • CPU 的功能:取指令、翻译、取操作数、执行和保存结果。
    • 内存的重要性:执行操作的来源
    • 自动运行的核心:程序控制寄存器 IP
    • 总线的宽度:对计算机的速度有影响

(2)微处理器(CPU)的基本组成:运算器、控制器和寄存器。

(3)8066 和 8088 的区别

  • 8086 总线宽度为 16 位,8088 总线宽度为 8 位(数据总线)。

2. 8088微处理器

(1)8086 / 8088 CPU的内部结构 (考点)

【微机原理笔记】第 2 章 - 微处理器与总线_第1张图片

  • 执行单元 EU

    • 基本构成: 算数逻辑单元(ALU)、8 个通用寄存器、1 个标志寄存器和 EU 控制电路。
    • 功能:翻译、执行并临时保存结果。
  • 总线接口单元 BIU

    • 基本构成: 20 位的地址加法器、5 个专用寄存器、1 个指令队列和总线接口控制电路。
    • 功能:取指令、取操作数并保存结果。

    流水线的功能 (考点)

    【区别】8086 是 6 个字节,8088 是 4 个字节。

    1、两个以上字节空,自动启动取指令(取指令为 FIFO 即先进先出结构)。

    2、EU 不和外界打交道,只在指令队列取指令。

    3、预取指令队列(指令队列不是固定的),有跳转指令时会更新。

(2)8086 CPU 的寄存器结构

  • 8086 CPU 内部有 14 个 16 位寄存器:通用寄存器(8)、段寄存器(4)和控制寄存器(2)。

    • 通用寄存器

      AX BX CX DX
      累加器 基址寄存器 计数器 数据寄存器
      SI DI SP BP
      源寄存器 目的寄存器 堆栈指针 基址指针
    • 专用寄存器

      CS DS SS ES IP FR
      代码段 数据段 堆栈段 扩展段 指令指针 标志位寄存器
  • 标志寄存器 FR: 16 位只用其中 9 位,包括 6 个状态标志和 3 个控制标志。

【微机原理笔记】第 2 章 - 微处理器与总线_第2张图片

状态标志位: CF 、PF 、AF 、ZF 、SF 、OF

  • OF: 溢出标志位。当算数运算超出带符号数的范围,即溢出时 OF = 1 ,否则 OF = 0 。
  • SF: 符号标志位。当运算结果的最高位为 1 时即负数。
  • ZF: 零标志位。当运算结果为零时 ZF = 1 ,否则 ZF = 0 。
  • AF: 辅助进位标志。在加(减)法操作中,如果 D3 向 D4 有进位(借位),则 AF = 1,否则 AF = 0。
  • PF: 奇偶标志位。当运算结果的低 8 位中 1 的个数为偶数时 PF = 1 ,为奇数时 PF = 0 。
  • CF: 进位标志。当进行加(减)运算时,若最高位向前有进(错)位,则 CF = 1 ,否则 CF = 0 。

控制标志位: TF 、IF 、DF

标志位记忆方法(一般不用 TF):

奥(OF)迪(DF / IF)死(SF)砸(ZF)P(PF)C(CF)

【微机原理笔记】第 2 章 - 微处理器与总线_第3张图片

一般考试会考 O S Z A P C 的状态:

eg.

【微机原理笔记】第 2 章 - 微处理器与总线_第4张图片

上面操作完后的标志位状态为:

  • OF(1): 带符号数的最高位由 0 变为 1 即从正变成负,所以溢出了。
  • SF(1): 运算结果最高位为 1 即负数。
  • ZA(0): 结果不为零。
  • AF(1): D3 到 D4 有进位情况。
  • PF(1): 低 8 位中 1 的个数为 4 即偶数。
  • CF(0): 最高位没有进位,如果是带符号数就有进位了。

(3)改标志位

CLI/STI: 改 IF

CLD/STD: 改 DF

CLC/STC: 改 CF

3. 8088 系统的存储器

(1)编码数

位数 8 16 20
码数 256 (28) 65536 (216) 1024K (210 * 210 = 1M)

(2)储存器的配置

  • 8086 / 8088 特点:1 M 内存 ,地址范围为 00000H - FFFFFH 。

  • 默认为高地址高字节,即小端模式

    大端法: 最高有效字节放在低地址。

    小端法: 最低有效字节放在低地址。

    字节顺序依赖于机器的类型,小端法一般用的较多,下列是一个十六进制值为 0x1234567 的例子:

【微机原理笔记】第 2 章 - 微处理器与总线_第5张图片

  • 地址总线 16 位,内存空间为 64 KB ;地址总线 20 位,内存空间为 220 个单元,即 1 MB 。

地址段的首地址,最后一位为 0H 。

段首址: 段的首地址,最后一位为 0H 。

段基址: 段首址的最高 4 位 H 。

段首址和段基址是等价的。

逻辑地址 = 段基址 : 偏移地址

物理地址(考点) = 段基址 × 16 + 段内偏移 = 段首址 + 偏移地址

eg. 逻辑地址 3A00H : 12FBH 对应的物理地址是 3BFBH 。

最小段为 16 B(例如 XXX10H 和 XXX20H 之间就相差了 16 B),**最大段 **为 64 KB ,并且段是可以重叠的,故逻辑地址不唯一。

注意:

(1)64 KB = 26 KB = 216 B(16 位有 16 个二进制数表示,其中最小为0000 0000 0000 0000,最大为1111 1111 1111 1111)

(2)1 KB = 1024 字节也就是 Bytes(B) ,1 Byte = 8 bit

(3)64 KB = 65536 比特

(4)段寄存器的使用

  • 代码段(程序段)—— CS : IP
  • 数据段 —— DS : BX ,DI ,SI
  • 堆栈段 —— SS : SP ,BP

eg. 若 CS = 8000H,则当前代码段可寻址的储存空间范围是 80000H ~ 8FFFFH 。

因为段基址 8000H 转换成段首址要乘以 16 即十六进制左移 1 位,得到 80000H 。又因为最大段为 64 KB 即 216 B ,所以最大填满段首址的低 4 位即 8FFFFH 。

8086/8088 的启动单元:0FFFF0H

(5)堆栈 - 特殊储存区

SP 初值指向栈底,向上生成。

eg. 若已知 SS = 1000H ,SP = 2000H ,则堆栈的段首地址为 10000H ,栈顶地址(初值在栈底)为 12000H 。将数据 1234H 压入堆栈后,1234H 所在的内存单元的地址为 11FFEH

专门指令操作:

  • PUSH: SP - 2

  • POP: SP + 2

    SP 始终指向栈顶

对字操作: FIFO结构(先进后出)

【微机原理笔记】第 2 章 - 微处理器与总线_第6张图片

4. 管脚和总线

(1)8088 总线

总线要包含片选信号,以及三态门装置。

储存单元是用地址访问的。

总线的分类

  • 地址总线: 20 条 —— 单向
  • 数据总线: 16 条(8086)、8 条(8088)—— 双向
  • 控制总线: #RD ,#WR ,IO/#M 至少 3 条(有些地方会写成等价的 4 条,#MEMR ,#MEMW ,#IOR ,#IOW)

8086 和 8088 的区别总结 (考点)

(1)数据总线 8086 是 16 条,8088 是 8 条。

(2)流水线 8086 是 6 个字节,8088 是 4 个字节。

(3)8086 的 IO 高低电平相反,IO 是低电平,高电平是 M 即 #IO/M 。而 8088 是 IO/#M 。

(2)8088 的管脚功能

8088 的管脚解复用技术:

  • 第一周期: ALE 下降沿所存地址信号形成稳定的地址总线。
  • 第二周期: #DEN,DT/#R 控制形成稳定的数据总线。

主要控制状态线:

  • IO/#M: 输出。指出当前访问存储器还是访问I/O。注意8086是M/#IO。
  • #WR: 输出。写命令信号。
  • #RD: 输出。读命令信号。
  • ALE: 输出。高电平表示AB地址有效;此信号在T1状态有效。
  • #DEN: 输出。低电平时表示DB上的数据有效。
  • DT/#R: 输出。数据传送方向。
  • READY : 输入。准备就绪信号。由外部输入;用于解决CPU与慢速存储器或I/O电路的同步问题

(3)最小系统

在最小系统中,还需加入:

  • 8284(时钟发生器): 1 片
  • 8282(地址的锁存器): 3 片
  • 8286(数据的缓冲器即收发器): 1 片(8088)/ 2 片(8086)

5. 8086/8088 CPU 工作时序

(1)基本概念

  • 时钟周期: 若 8086/8088 的主频为 5 MHZ ,一个时钟周期为200 ns 。
  • 总线周期(机器周期): CPU 完成对储存器或 I/O 一次访问所需的时间。
  • 指令周期: 执行一条指令需要的时间。
  • 空闲周期(Ti): 微处理器 BIU 空闲时,总线上插入的时间。
  • 等待周期(Tw): 总线周期内,储存器或 I/O 没有准备好数据时插入的时间。

(2)基本时序

典型的总线周期:一个总线周期一般由四个 T 组成。T1 :输出地址,T2 及 T3:传送数据。

指令周期大概在两个微秒:10 * 200 ns = 2 us

【微机原理笔记】第 2 章 - 微处理器与总线_第7张图片

  • 存储器读时序

    • 第 1 周期: ALE 下降沿锁存地址。
    • 第 2 周期: #DEN ,#RD 有效。
    • 第 3 周期: 检测 ready 信号是否有效,若发现其为低,则在T3周期结束后,插入一个 Tw(等待周期) 状态。以后在每个 Tw 周期的前沿采样 READY 线,只有在发现它为高电平时,才在这个 Tw 结束后进入T4周期。
    • 第 4 周期: #DEN ,#RD 无效。
  • 存储器写时序

    其写时序与读时序的区别是,写时序没有 ready 即没有等待周期,数据发出快。

你可能感兴趣的:(校内课程笔记,微机原理)