微机原理笔记 - 主页

第 2 章 微处理器与总线

1. 微处理器概述

(1)程序的执行过程

  • CPU 的功能:取指令、翻译、取操作数、执行和保存结果。

    • 内存的重要性:执行操作的来源
    • 自动运行的核心:程序控制寄存器 IP
    • 总线的宽度:对计算机的速度有影响

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

(3)8066 和 8088 的区别

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

2. 8088微处理器

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

  • 执行单元 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 个控制标志。

状态标志位: 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)

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

eg.

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

  • 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 的例子:

  • 地址总线 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结构(先进后出)

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

  • 存储器读时序

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

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

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

  1. 微机原理_第2章 微处理器

    目录 2.1 8086微处理器的基本结构 前言 2.1.1  8086的功能结构 前言总结 1.执行部件EU 2.总线接口部件BIU EU和BIU两部分在很多时候可以并行工作 2.1.2 8086的寄 ...

  2. 【微机原理笔记】第 1 章 - 微型计算机基础概论

    微机原理笔记 - 主页 第 1 章 微型计算机基础概论 1. 微型计算机系统 (1)微型控制机是嵌入计算机的一种 8 位或 16 位机,没有操作系统. (2)计算机的基本组成( 3+1 结构):CPU ...

  3. 微机计算机原理及应用ppt,微机原理及应用-第一章 计算机基础知识课件.ppt

    <微机原理及应用-第一章 计算机基础知识课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<微机原理及应用-第一章 计算机基础知识课件.ppt> ...

  4. 内存中有两个4字节以压缩的bcd_高中对口计算机微机原理04第一二章测验

    原理第一.二章练习 一.选择题 1.下列四个不同进制的数中,数值最大的是__________ A. 1001001B B. 110 O C. 71D D. 4AH 2.下列四种不同数制表示的数值最小的 ...

  5. 微机原理与系统设计三:微处理器的结构与功能

    1.微处理器的外部结构 表现为数量有限的输入输出引脚,构成微处理器级总线.通过这些总线完成如下功能:①与外部存储器交换信息(数据总线上传送的信息有数据和指令):②与I/O设备之间交换信息(严格来讲是与 ...

  6. 微型计算机原理求怎样判断数补码,微机原理及应用第一章习题答案

    "微型计算机原理及应用"第一章习题解答 1.写出下列原码机器数的真值:若分别作为反码和补码时,其表示的真值又分别是多少? (1) (0110 1110)二进制原码=(+110 11 ...

  7. 微机原理_第1章 微型计算机概述

    目录 1.1 微型计算机的基本结构 1.1.1 微型计算机的结构特点 冯·洛伊曼结构--微机 哈佛结构--单片机.DSP 1.1.2 微处理器 微处理器简介 CPU一般都具备下列功能:(6点) CPU ...

  8. 计算机网络原理笔记 第三章 数据链路层(一)

    计算网络原理 第三章 数据链路层 数据链路层(一) 3.1 使用点对点信道的数据链路层 3.1.1 数据链路层和帧 3.1.2 三个基本问题 数据链路层的信道类型 3.2 点对点协议 PPP 3.2. ...

  9. 微机原理笔记02-微处理器与总线

    8088/8086微处理器 简介 8088/8086属于第三代微处理器的典型代表. 第三代微处理器和第二代微处理器的主要区别在于字长有了跨越式发展. 第二代微处理器主要是以8位微处理器为主要代表,第三 ...

最新文章

  1. 223.主成分分析PCA
  2. Linux中perl脚本监控
  3. 5分钟快速打造WebRTC视频聊天转
  4. Hadoop命令手册
  5. Handler和Message详解
  6. 允许使用抽象类类型 isearchboxinfo 的对象_Java学习5-设计模式+抽象类/方法
  7. linux一台机器如何安装两个mysql,在一台linux机器上启动两个mysql实例
  8. 论文浅尝 | 知识库问答中关系检测的学习表示映射
  9. Python的argparse
  10. Xcode6中自动布局autolayout和sizeclass的使用
  11. 最新诺顿病毒库报暴风影音7.0有毒![原]
  12. 4G网络起源及发展历程
  13. 新路由3 newifi3 官方固件与离线插件合集
  14. 京东X无人超市布局瞄准加油站,下一个场景会在哪儿
  15. 智课雅思词汇---二十四、名词性后缀ary(也是形容词后缀)
  16. 关于使用response.addCookie 添加失败
  17. 03.spring framework的AOP
  18. 怎么制作一个蒙版效果
  19. 荣耀手机装联通卡显示无服务器,荣耀X10用不了物联网卡(联通物联卡3g却不能上网)...
  20. 边缘计算卸载算法--GT-GAOA

热门文章

  1. 【Android】导入项目后出现Plugin with id ‘com.android.application‘ not found.
  2. 乔布斯你应该死得瞑目,苹果在德禁华不禁!!!
  3. Oracle中条件表达式用法
  4. 【可视化】Power Map实现大数据可视化操作
  5. 买液晶的人必看!显示器市场内幕介绍
  6. nuttx linux 编译,Nuttx编译系统
  7. python实现家庭游戏
  8. 在职找工作真的是明智之选吗?在职找工作的优缺点有哪些?
  9. This a time to hard work
  10. jar not loaded. See Servlet Spec 3.0, section 10.7.2 Offending class: javax/servlet/Servlet