出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159...

380

Click here to load reader

description

高等学校计算机系列教材 微机原理与接口技术(第二版) 倪继烈 刘新民 编著. 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹 责任编辑: 朱 丹 主 页: www.uestcp.com.cn 电子邮箱: [email protected] 发 行: 新华书店经销 印 刷: 电子科技大学出版社印刷厂 - PowerPoint PPT Presentation

Transcript of 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159...

Page 1: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹
Page 2: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 )策划编辑: 朱 丹责任编辑: 朱 丹 主 页: www.uestcp.com.cn电子邮箱: [email protected]发 行: 新华书店经销印 刷: 电子科技大学出版社印刷厂成品尺寸: 185mm×260mm 印张 24.875 字数 604 千字版 次: 2004年 1 月第二版印 次: 2007年 8 月第五次印刷书 号: ISBN 978-7-81065-326-8定 价: 29.80 元

高等学校计算机系列教材

微机原理与接口技术(第二版)倪继烈 刘新民 编著

■ 版权所有 侵权必究 ■◆ 邮购本书请与本社发行部联系。电话:( 028) 83202323 83256027◆ 本书如有缺页、破损、装订错误,请寄回印刷厂调换。◆ 课件下载在我社主页“下载专区”。

Page 3: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第1章 微型计算机基础知识第2 章 8086微处理器及其系统结构第3 章 8086CPU指令系统第4章 汇编语言程序设计第5章 内存储器与存储体系第6 章 输入/输出接口与总线技术第7章 并行接口第8 章 中断与DMA技术第9章 定时与计数技术第10章 人机交互接口第11章 串行接口第12章 模拟量输入输出接口第13 章 Pentium的最新技术发展

目录

Page 4: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 1 章 微型计算机基础知识

1.1 微型计算机发展过程1.2 计算机中数据信息的表示方法1.3 微型计算机系统的组成1.4 微型计算机的工作过程

Page 5: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1.1 微型计算机发展过程1 .计算机的分类

体积、功能、性能 数据存储量 指令系统 价格

单片机

微型机

小型机

中型机

大型机

巨型机 低

简易性

Page 6: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .微型计算机发展概况第一代微处理器:( 1971~ 1972 年)第一代微处理器是以 INTEL 公司 1971~ 1972 年推出的I4004和 I8008 作为典型代表。第二代微处理器:( 1973~ 1977 年)代表产品是美国 INTEL 公司的 I8080/8085、MOTOROLA 公司的 M6800和 ZILOG 公司研制的 Z80 。第三代微处理器:( 1978~ 1983 年)1978年 6 月, INTEL 推出 4.77MHz的 8086 微处理器,标志着第三代微处理器问世。第四代微处理器:( 1983~ 2000 年)20 世纪 80 年代以后,微处理器进入第四代产品,向系列化方向发展, INTEL 公司相继推出了性能更高、功能更强的 80386、80486和 Pentium 微处理器,它们与 8086 向上兼容,是 32位微处理器,又称为超级微处理器。第五代微处理器:( 2001 年以后)值得一提的是, 2001年 INTEL 公司正式推出了它和 HP 公司合作设计的 INTEL 的第一个 64 位微处理器 Itanium ,该处理器不是在 INTEL 32位 80X86 结构的微处理器上作简单的扩展,而是一种全新的设计,可以称为第五代微处理器的开端

Page 7: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1.2 计算机中数据信息的表示方法

1.2.1 数制及其转换1 .数制的基与权

( 1 )十进制( Decimal System ):使用的数字符号为: 0 , 1 ,…, 9 ,共 10 个符号。因此,十进制数中各位的权是以 10 为底的幂。 ( 2 )二进制( Binary System ):使用的数字符号为: 0 和 1 ,二进制数中各位的权是以 2 为底的幂 。

Page 8: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .二进制数的特点

( 1 )数制简单、容易实现、工作可靠和 抗干扰能力强。( 2 )运算规则简单。( 3 )节省设备。( 4 )可以使用逻辑代数这一数学工具对计算机逻辑线路进行分析和综合 , 便于机器结构的简化。

Page 9: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .数制之间的转换

在任一数制中的每一个数都可以用按权展开式的形式,表示如下:

n-1i

ii=-m

S= r R式中, r 为该记数制中的任一允许使用的数字符号,R为其基数。

Page 10: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 1 )十进制数转换成二进制数整数用“除 2 取余”,小数用“乘 2 取整”的

方法。

( 2 )十六进制数转换为二进制数不论是十六进制数的整数部分或小数部分,其

转换方法是只要把每一位十六进制数用等值的四位二进制数代替便可。

( 3 )二进制数转换成十六进制数整数部分由小数点向左每四位一组,小数部分由小数点向右每四位一组,不足四位的补 0 ,然后用四位二进制数的等值十六进制数代替即可。

Page 11: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1.2.2 计算机中数的表示1 .数的符号表示法

用“ 0” 表示正号“ +”;用“ 1” 表示负号“”。这种连正、负号也数字化的数,称为机器数,即计算机所能识别的数。而把这个数本身,即用“ +” 、“”号表示的数,称为真值。

Page 12: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .原码、反码和补码( 1 )原码原码的编码规则如下:最高位为符号位,当符号位为 0 时,表示正数;当符号位为 1 时,表示负数。其余各数值位取原值不变。有符号数的这种表示法,称为原码表示法,其在计算机中的表示形式如下:

↑ ↑

正数 0 取原值不变 负数 1 取原值不变

符号位 数值部分 数值部分 符号位

Page 13: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 2 )反码反码的编码规则如下:① 对于正数(设字长为 8 位)反码与原码编码相同。② 对于负数编码规则如下:除符号位仍为“ 1”外,其余各数值位是“按位取反”。③ 反码的“ 0” ,也有两种表示形式[+0]反=0 0000000; [0]反=1 1111111

Page 14: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 3 )补码① 补码的概念② 补码的编码规则编码规则如下:( a)对于正数(字长=8 位)与反码一样,正数的补码编码与原码相同,最高位为符号位,用 0 表示,其余各数值位不变,也即正数的补码就是正数本身。用公式表示为:[X]补=28+X =0+X=[X]原 ( X≥0 )

( b)对于负数(字长=8 位)负数的补码编码规则,除符号位仍为“ 1”外,其余各数值位“按位取反再加 1” 。即:[X]补=28+X=( 11111111+X)+1 ( X<0 )=[X]反+1或者负数 1 按位取反加 1 符号位数值部分( c)补码的“ 0”只有一种表示形式[+0]补=[0]补=0 0000000

Page 15: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .原码、反码和补码之间的转换

正数原码、反码和补码的编码规则相同,不存在转换问题。

4 .补码的加减法运算( 1 )补码的加法运算补码的加法时,不管两个数是正数还是负数,按补 码的和等于和的补码进行运算。( 2 )补码的减法运算补码减法运算时,按补码的差等于差的补码进行。

Page 16: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .数的小数点表示法( 1 )定点表示法

所谓定点表示法,是指由程序设计者人为约定,该程序中所有数的小数点固定在同一位置不变。这时,小数点的位置就不必用记号“ .” 表示出来了。一般的,各程序中约定的小数点的位置可以不同,其小数点可约定固定在任何数位之后,但常用下列两种形式:① 定点纯小数:约定所有数的小数点的位置固定在符号位之后。② 定点纯整数:约定所有数的小数点的位置固定在最低数值位之后 。

Page 17: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 2 )浮点表示法

在浮点表示法中,小数点的位置是浮动的。为了使小数点可以自由浮动,浮点数由两部分组成,即尾数部分与阶码部分。

Page 18: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1.2.3 计算机中的编码1 .字符编码在计算机中,最常用的编码是 ASCII (American Standard Code for Information Interchange)码。它用 7 位二进制数码对字符进行编码。

2 .二进制编码的十进制数在某些场合下,有时人们希望计算机能够直接对十进制数进行运算。这时就要用到二进制编码的十进制数,简称 BCD( Binary-Coded Decimal)码。即在 BCD( Binary-Coded Decimal)码中,每一位十进制数都用四位二进制编码来表示。

Page 19: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1.3 微型计算机系统的组成1.3.1 计算机的基本结构和工作原理1 .计算机的基本结构

运算器

存储器

控制器

输出设备 输入设备 程序、数据 结果

Page 20: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .计算机的工作原理

计算机的工作方式取决于它的两个基本能力:一是能存储程序,二是能自动执行程序。计算机是利用内存来存放所要执行的程序的,而 CPU则依次从内存中取出程序的每条指令,加以分析和执行,直到完成全部指令序列为止。这就是计算机存储程序控制方式的工作原理。

Page 21: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1.3.2 微型计算机系统组成

微型计算机系

微型计算机

微处理器

运算器 控制器 寄存器组

系统总线

RAM ROM I/O端口 I/O端口

I/O设备 I/O设备 软件系统 电源系统

Page 22: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1.3.3 微处理器的组成1 .运算器

Page 23: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .控制器( 1 )程序计数器 PC( Program Counter)程序计数器 PC中存放着下一条指令在内存中的地址。控制器利用它来指示程序中指令的执行顺序。( 2 )指令寄存器 IR(Instruction Register)指令寄存器 IR用于暂存从存储器取出的当前指令码,以保证在指令执行期间能够向指令译码器 ID提供稳定、可靠的指令码。( 3 )指令译码器 ID(Instruction Decoder)指令译码器 ID用来对指令寄存器 IR中的指令进行译码分析,以确定该指令应执行什么操作。( 4 )控制逻辑部件 PLA(Programmable Logic Array)控制逻辑部件又称为可编程逻辑阵列 PLA。( 5 )时序电路计算机工作是周期性的,取指令、分析指令、执行指令……这一系列操作的顺序,都需要精确地定时,而不能有任何差错。

Page 24: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .通用寄存器组 RA

通用寄存器组 RA通常由多个寄存器组成,是微处理器中一个重要部件。寄存器组主要用来暂存 CPU执行程序时的常用数据或地址,以便减少微处理器芯片与外部的数据交换,从而可加快 CPU的运行速度。因此,我们可以把这组寄存器看成是设置在 CPU内部工作现场的一个小型、快速的“ RAM存储器”。

Page 25: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1.3.4 微型计算机的组成

1 .微型计算机的组成

定时

微处理器 总线控

制逻辑

中央处理部件

CUP

口 存储器 模块

口 存储器 模块

接口

接口

海量存

储设备

I/O 设备

输入/输出设备

Page 26: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .总线结构所谓总线,是微型计算机中的一组公用导线,是传输信息的公共通道。微处理器、存储器及其他设备都通过三态门连接在总线上。

A

E

VCC

R

B T2

T1 Y

EA Y

0 1 0

1 0

1 高阻

E

A Y

Y EN

A

E

Page 27: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1.4 微型计算机的工作过程

1 .执行一条指令的过程

开始

取一条

指令

执行

该指令

2 .执行程序的过程开始执行程序时,必须先给程序计数器PC赋以第一条指令的首地址 00H,然后就进入第一条指令的取指令阶段。

Page 28: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 2 章 8086 微处理器及 其系统结构

2.1 8086 微处理器2.2 总线周期与总线结构2.3 8086总线操作时序

Page 29: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2.1 8086 微处理器2.1.1 8086CPU的内部结构

通用寄存器

AX BX

CX DX

AL AH BH BL CH

DH CL DL

SP BP

DI

暂存寄存器

数据 寄存器

指针和变 址寄存器

地址 加法器

AB

(20位)

DB

(16位) CS

DS SS ES

IP ALU 数据总线

(16位)

ALU

标志寄存器

执行单元(EU) 总线接口单元(BIU)

EU控制电路

总线控制电路

内部寄存器 8086总线

(16位数据总线)

指令队列缓冲器

队列总线(8位)

SI

1 2 3 4 5 6

Page 30: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1 .执行单元 EU( Execute Unit)

(1)算术逻辑单元 (ALU):它可以用于进行算术、逻辑运算,也可以按指令的寻址方式计算出寻址单元的 16位偏移量。(2)标志寄存器 F :它用来反映 CPU最近一次运算结果的状态特征或存放控制标志。(3)数据暂存寄存器:它协助 ALU完成运算,暂存参加运算的数据。(4)通用寄存器组:它包括 4 个 16位数据寄存器 AX、 BX、 CX、 DX和 4 个 16位地址指针与变址寄存器 SP、 BP与SI、 DI。(5)EU控制电路:它是控制、定时与状态逻辑电路,接收从 BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,对 EU的各个部件实现特定的定时操作。

Page 31: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .总线接口单元 BIU(1)指令队列缓冲器当执行单元 EU正在执行指令中且不需要占用总线时,总线接口单元 BIU会自动地进行预取下一条或几条指令操作,将所取得的指令按先后次序存入指令队列缓冲器中排队。(2)地址加法器和段寄存器地址加法器和段寄存器用于完成从 16位段基址与16位段内偏移地址 ( 由指令指定 ) 两部分组成的存储器逻辑地址,到形成一个 20位实际存储器地址( 物理地址 ) 的转换运算。(3)指令指针寄存器 IP(Instruction Point)其功能相当于程序计数器 PC,用于存放总线接口单元 BIU将要取的下一条指令的段内偏移地址。(4)总线控制电路与内部通信寄存器总线控制电路用于产生外部总线操作时的相关控制信号。

Page 32: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2.1.2 8086CPU内部寄存器1 .段寄存器

(1) 为什么要设置段寄存器

由于在 8086系统中,需要用 20位物理地址访问 1MB的存储空间。但是 8086CPU的内部结构以及内部数据的直接处理能力和寄存器都只有 16位,故只能直接提供 16位地址寻址 64KB存储空间。那么如何用 16位数据处理能力,实现 20位地址的寻址呢 ? 这里,用 16位的段寄存器与 16位的偏移 ( 量 ) 地址巧妙地解决了这一矛盾。即为了能够寻址1MB存储空间,在 8086CPU中引入存储器地址空间分段的概念。

Page 33: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 段寄存器的功能

8086的内部共有 4 个 16位段寄存器,它们用于存放 8086 CPU当前可以访问的 4 个逻辑段的基址。 CPU可以从 4 个段寄存器给出的逻辑段中存取指令代码和数据。若要从别的段而不是当前可寻址的段中存取信息,首先, CPU必须通过程序改变对应的段寄存器的内容,将其设置成所要存取的段的基址。

(3) 信息的分段存储与段寄存器的关系段寄存器的利用不仅使存储器地址空间扩大到 1MB,而且为信息按特征分段存储和信息安全管理带来了方便。存储器中的信息可分为程序、数据和计算机的状态等信息。为了操作的方便,存储器可相应划分为:程序区,该区存储程序的指令代码;数据区,它存储原始数据、中间结果和最终结果;堆栈区,用以存储需要压入堆栈的数据或状态信息。段寄存器的分工是:代码段寄存器 CS划定并控制着程序区;数据段寄存器 DS和附加段寄存器 ES控制着数据区;而堆栈段寄存器 SS对应着堆栈存储区。

Page 34: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .通用寄存器(1) 数据寄存器数据寄存器包括 AX、 BX、 CX和 DX 4个 16位寄存器,它们中的每一个又可根据需要将高 8 位和低 8 位分成独立的两个 8 位寄存器来使用。

(2) 地址指针和变址寄存器① 设置地址指针和变址寄存器的目的采用这种方法给出操作数的地址时,大大缩短了指令码的长度。还可以方便地通过修改寄存器的内容,达到修改地址的目的,提高了指令寻址的灵活性。② 地址指针和变址寄存器功能地址指针和变址寄存器包括 SP、 BP、 SI和 DI。这组寄存器在功能上的共同点是,在对存储器操作数据寻址时,用于形成 20位物理地址码的组成部分。

Page 35: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .控制寄存器

(1) 指令指针寄存器 IP

CS

IP

CPU

0000H

代码段基址

偏移量

正在执行

的指令

下一条

指令

……

……

……

Page 36: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 标志寄存器 F

1 )状态标志

① CF(Carry Flag) 进位标志② PF(Parity Flag)奇偶标志③ AF(Auxiliary carry Flag)辅助进位标志④ ZF(Zero Flag)零标志⑤ SF(Sign Flag) 符号标志⑥ OF(Overflow Flag)溢出标志

状态标志是由 CPU硬件电路根据最近一次运算结果而自动建立的可供用户测试的标志,它们反映最近一次 ALU 运算结果的特征。这些标志常常作为条件转移类指令中的测试条件,控制着程序的运行方向。

Page 37: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 )控制标志

① DF(Direction Flag) 方向标志

② IF(Interrupt Enable Flag) 中断允许标志

③ TF(Trap Flag)陷阱标志或单步操作标志

Page 38: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2.1.3 8086 CPU的外部引脚及功能 V C C ( 5 V )

A D 1 5 A 1 6 / S 3 A 1 7 / S 4 A 1 8 / S 5 A 1 9 / S 6

A L E ( Q S D )

R E A D Y

R E S E T

7B H E / SM N / M XR D

0H O L D ( R Q / G T )

1H L D A ( R Q / G T )W R ( L O C K )

2M / I O ( S )

1D T / R ( S )

DD E N ( S )

1I N T A ( Q S )T E S T

A D 1 4 A D 1 3 A D 1 2 A D 1 1 A D 1 0

A D 9 A D 8 A D 7 A D 6 A D 5 A D 4 A D 3 A D 2 A D 1 A D 0

N M I I N T R

C L K

2 3 4 5 6 7 8 9

1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0

1

3 9 3 8 3 7 3 6 3 5 3 4 3 3 3 2 3 1 3 0 2 9 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1

4 0

Page 39: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1 .地址 / 数据总线 AD15~ AD0 (双向、三态 )

这是分时复用的存储器或 I/O端口地址和数据总线。传送地址时三态输出,传送数据时可双向三态输入 /输出。

2 .地址 /状态线 A19/S6~ A16/S3 ( 输出、三态 )

这些引脚也是采用多路开关的分时输出线,在存储器操作的总线周期的第一个时钟周期 (T1状态 ) 时,输出 20 位地址的高 4位 (A19~A16) ,而在其他的时钟周期,输出状态信号。

Page 40: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .控制总线(1) 读控制信号线 (输出、三态 )(2) 准备好信号 READY (输入 )(3) 总线高字节允许 / 状态, /S7 (输出、三态 )(4) 可屏蔽中断请求信号 INTR(输入 )(5) 非屏蔽中断请求信号 NMI(输入 )(6) 等待测试信号 (输入 )(7) 系统时钟 CLK(输入 )(8) 复位信号 RESET(输入 )(9) 最小 / 最大方式信号 MN/(输入 )(10) 其他控制信号 (24~ 31 引脚 )

4. 电源线 VCC 和地线 GND电源线 VCC 接入的电压为 +5V±10% ,有两条地线 GND ,均应接地。

Page 41: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2.2 总线周期与总线结构

2.2.1 8086 的总线周期1 .总线周期

Page 42: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .空闲状态 TI (Idle State)

在两个总线周期之间,存在着 BIU 不执行任何操作的时钟周期,这些不起作用的时钟周期称为空闲状态,用 TI 表示。8086 的总线周期中,除了空闲状态 TI 以外,还有一种等待状态—— TW 。

3 .等待状态 TW (Wait State)

T1 T2 T3 T4

用于等待存储器或 I/O接口响应的等待状态

Tw T1 T2 T3 T4 TI TI T1 T2 T3 Tw Tw T4 TI TI

总线周期间的空闲状态

Page 43: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2.2.2 8086 最小方式时的引脚功能和总线结构

1 . 8086最小方式时的引脚功能

(1) 地址锁存信号 ALE (输出 )(2) 数据允许信号 (输出、三态 )(3) 数据发送 / 接收信号 DT/(输出、三态 )(4) 输入输出 / 存储器信号 M/(输出、三态 )(5) 写控制信号 (输出、三态 )(6) 中断响应信号 (输出 )(7) 保持请求信号 HOLD (输入 ) 与保持响应信号 HLDA (输出 )

Page 44: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 8086最小方式时的系统总线结构

(1)地址锁存(2) 数据线驱动(3)最小方式时的系统总线结构

Page 45: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2.2.3 8086 最大方式时的引脚功能和总线结构

1 . 8086最大方式时的引脚功能

(1)总线操作类型状态 (编码 ) 信号 S0、 S1、 S2(输出 )

(2)队列状态信号 QS1、 QS0 (输出 )

(3)总线封锁信号 (输出、三态 )

(4)总线请求 / 总线请求允许信号

Page 46: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 8086 CPU最大方式时的系统总结结构

8 2 8 4 A

C L K

O E

8 2 8 2 存 储 器 ( 3 个 )

S T B

C L K R E S E T R E A D Y

A 1 9~ A 1 6

A D 1 5~ A D 0

8 0 8 6

I N / T R

0S

1S

2S

0R Q / G T

1R Q / G T

8 2 8 6 收 发 器

( 2 个 )

T O E

8 2 8 8 总 线 控 制 器

8 2 5 9 A 及 有 关 电 路

I N T A

B H E

地 址 总 线

数 据 总 线

控 制 总 线

中断请求

M N / M X

B H E

Page 47: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2.3 8086 总线操作时序2.3.1 8086 CPU 最小方式时的总线时序

1 .学习时序的目的(1) 深入理解微处理机的内部操作原理;(2) 了解时序有利于我们在编源程序时,适当选用指令,以缩短指令的存储空间和指令的执行时间;(3) 有助于更好地解决 CPU 与存储器以及各种外设之间的时序配合问题;(4) 当微型机用于实时控制时,必须估计 CPU 完成操作所需的时间,以便与控制过程相配合。

Page 48: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 8086 CPU最小方式时总线周期时序

(1) 读总线周期时序

Page 49: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 写总线周期时序

Page 50: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(3) 中断响应周期时序

INIA

空闲状态在8086系统中一般是3个,而8088系统则没有

T1 T2 T3 T4 TI TI TI T1 T2 T3 T4

ALE

AD7~AD0 中断类型

Page 51: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(4) 总线请求与总线响应时序

T1或 T4的

CLK

HOLD

HLDA

地址及

1~2个 2个时钟

时钟

悬浮状态

数据总线

Page 52: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2.3.2 8086 CPU 最大方式时的总线时序

1 .读总线周期与写总线周期时序

Page 53: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹
Page 54: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .中断响应周期时序

在最大方式时,由 8288输出。在中断响应周期中,除了从第一个总线周期的 T2 到第二个总线周期的 T2 ,在引脚上输出低电平信号外,其他均与最小方式时的中断响应周期时序一致。

Page 55: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .总线请求和总线响应时序

CLE

主设备 请求总线存取

CPU将总线 授予主设备

主设备释放总线

T4或T1

RQGT/

Page 56: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 3 章 8086CPU 指令系统

3.1 指令系统概述3.2 8086CPU的寻址方式3.3 8086 CPU的指令格式3.4 8086 CPU的指令系统

Page 57: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.1 指令系统概述3.1.1 指令与指令系统

指令是指使计算机(硬件)执行各种操作的命令,它是计算机的控制信息。一条指令,对应着一种基本操作,一台计算机能执行多少种操作,就要有多少条指令。 指令系统包括指令格式、寻址方式、指令种类与指令功能等内容,它们不仅与计算机的硬件结构紧密相关,而且直接关系到用户的使用需要,也影响到机器的适用范围。

Page 58: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.1.2 指令的一般格式

操作码 寻址方式 (码 ) 形式地址码

操作码字段用来规定该指令要执行的操作 ;

寻址方式码字段表示该指令的操作数,应按哪一种寻址方式来寻找 ;

形式地址码字段,表示操作数所在存储单元或I/O端口的形式地址。

Page 59: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.2 8086CPU 的寻址方式3.2.1 操作数的寻址

1 .立即寻址指令所需操作数就在指令码中,操作码后面一个 ( 或两个 )字节就是操作数,即指令中的形式地址字段直接给出指令的操作数,操作数与操作码一起存入代码段中。

低位

高位

AH AL

代 码

一条指令

存储器

操作码

34H

12H

Page 60: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .寄存器寻址指令所需操作数在 CPU 内部寄存器中,指令中形式地址字段提供的是存放操作数的寄存器地址。指令中所指定的寄存器,包括 8 位或 16 位通用寄存器和段寄存器。

AX BX

Page 61: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .直接寻址指令所需操作数在某存储单元中,指令中形式地址字段给出的位移量 Disp就是该存储单元的有效地址 EA 。

0 H

21 00 0H

2 1 0 0 0

H

数据段

低位

高位 AH AL

代码段

一条指令

存储器

操作码

00H

10H

╳ ╳

╳ ╳

位移量

1 0 0 0 H

2 0 0 0 DS

EA +

21 00 1H

Page 62: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .寄存器间接寻址寄存器间接寻址是把形式地址字段指定寄存器的内容作为操作数的有效地址 EA ,由该地址所指定的存储单元的内容作为操作数。

+ B

P

0 H

32 00 0H

3 2 0 0 0

H

堆栈段

低位

高位 AH AL

代码段

一条指令

存储器

操作码

操作码

╳ ╳

╳ ╳

2 0 0 0

3 0 0 0 SS

32 00 1H

EA

Page 63: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .基址寻址与变址寻址

指令所需操作数在某存储单元之中,这种寻址是以基址寄存器 (BX或 BP) 或变址寄存器 (SI或 DI) 的内容为基地址,然后,在这个基地址的基础上加上指令形式地址字段提供的 8/16 位位移量 Disp 之和,形成真正操作数的有效地址 EA 。

Page 64: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6 .基址变址寻址指令所需操作数在存储单元中,其有效地址是一个基址寄存器和一个变址寄存器的内容之和。基址寄存器和变址寄存器在指令形式地址码字段中指明。

2 3 0 0 0 H

0 H

23 00 0H

数据段

低位

高位 AH AL

代码段

一条指令

存储器

操作码

操作码

00H

10H

╳ ╳

╳ ╳

位移量

1 0 0 0 H ←

2 0 0 0

+

23 00 1H

DS

EA 2 0 0 0 SI

Page 65: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7 .基址变址相对寻址

操作数在存储单元中,其有效地址是基址寄存器的内容与变址寄存器的内容以及指令中的 8/16 位位移量之和。当基址寄存器使用 BX 时,段寄存器用 DS ;当基址寄存器使用 BP 时,段寄存器用 SS 。

Page 66: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8 .隐含寻址

在这种寻址方式中,指令码中不包含指明操作数地址的部分,而其操作码本身隐含地指明了操作数地址,字符串操作类指令就属于这种寻址。

Page 67: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.2.2 转移地址的寻址1 .段内直接寻址这是一种段内寻址方式,转移时仅修改 IP 内容,而 CS 的内容不变。2 .段内间接寻址在这种寻址方式中,要转移到的目标地址的16 位段内转移有效地址在一个 16 位寄存器中或在存储器相邻两个单元中。3 .段间直接寻址这种寻址方式用于段间转移,转移的目标地址的段基址( CS )和偏移量( IP )都由指令码形式地址字段直接提供,转移时,只需用它们来更新当前 CS和 IP 的内容即可,4 .段间间接寻址这种方式同样用于段间转移,只不过当前 CS和 IP 由存储器中连续 4 个单元提供。

Page 68: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.3 8086 CPU 的指令格式3.3.1 8086 CPU 的典型指令格式1 .指令第 1 字节的编码

D位——方向选择位,用于双操作数指令 (含立即操作数的指令和字符串指令除外 ) ,它指示操作数的传输方向。 D=0 表示 REG字段给出的寄存器是源操作数寄存器; D=1 表示 REG字段给出的寄存器是目的操作数寄存器。W位——指示操作数类型, W=0 表示为字节操作数, W=1 表示为字操作数。S位——符号扩展位,一般情况下, S与W联用。S=0 ,不扩展,若 S=1 ,同时 W=1 ,表示将一个带符号的单字节操作数扩展为双字节数,高字节的各位等于单字节有符号数的最高位 ( 即将8 位补码扩展为 16 位补码 ) 。

Page 69: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

V位——用于移位和循环移位指令,以确定移位的位数。 V=0 ,表示只移位或循环移位 1位; V=1 ,表示移位或循环移位的位数由CL 寄存器给出。Z位——用于协助控制重复。在执行重复 /循环指令时, Z 位用来与零标志位 ZF 进行比较。Z=0 ,同时零标志位 (ZF)=0 时,则重复 /循环;而当 (ZF)=1 时,则停止重复 /循环。Z=1 ,同时 (ZF)=1 时,则重复 /循环;而当(ZF)=0 时,停止重复循环。

Page 70: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .指令第二字节的编码指令的第二字节给出了指令的大多数寻址方式,这个字节可以指出两个操作数,一个由 REG字段确定,另一个由 MOD和 R/M字段确定。

( 1 ) REG 寄存器字段 (3位 )由 REG字段确定的操作数一定是在某一个通用寄存器中 ( 即寄存器寻址方式 ) 。( 2 ) MOD 模式字段 (2位 )由MOD和 R/M字段共同确定一个操作数。( 3 ) R/M 寄存器或存储器字段 (3位 )R/M 为寄存器 / 存储器字段,当 MOD=11时, R/M 为寄存器字段,当 MOD=00、 01、10 时, R/M 为存储器字段。

Page 71: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .指令的其他字段的选择

指令的第 3~ 6字节为选择字节,根据对指令的要求不同而有所取舍。指令的字节长度可以变化,主要体现在这里。通常由第 3~ 6字节给出存储器操作数的位移量和立即操作数。

3.3.2 8086CPU的指令格式与编码举例

Page 72: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.4 8086 CPU 的指令系统3.4.1 数据传送指令

1 .通用数据传送指令汇编指令:MOV  DST, SRC指令功能:把源操作数 SRC 的内容传送给目的操作数 DST ,即 DST←(SRC) 。

立即数

存储器 通用寄存器

AX、BX、CX、DX

段寄存器

CS、DS、SS、ES

③ ④

Page 73: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .堆栈操作指令(1) 堆栈的概念

堆栈就是在 RAM 存储器中开辟( 指定 ) 的一个特定的存储区域,在这个区域中,信息的存入 (此时称为推入 ) 与取出 (此时称为弹出 ) 的原则不再是“随意 (机 ) ”存取,而是按照“先进后出”或“后进先出”的原则进行存取。称该“存储区”为堆栈。

Page 74: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

Page 75: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 堆栈操作① 建栈建立堆栈就是规定堆栈底部在 RAM 存储器中的位置,用户可通过数据传送指令将堆栈底部的地址设置在堆栈指针SP 和堆栈段寄存器 SS 中。 ② 进栈进栈 (PUSH)就是把数据推入堆栈的操作。在 8086/8088 中,进栈或出栈操作都是以字为单位的。 ③ 出栈出栈 (POP)就是从堆栈顶部弹出一个字送回通用寄存器、段寄存器或者字存储单元。

Page 76: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .标志位传送指令(1) 取标志寄存器指令汇编指令: LAHF指令功能:把标志寄存器的低 8 位传送给 AH 寄存器,即把SF、 ZF、 AF、 PF、 CF标志位分别送至 AH 的第 7、 6、4、 2、 0 位, AH 的第 5、 3、 1 位是任意的。该指令对标志寄存器各位均无影响。(2) 存储标志寄存器指令汇编指令: SAHF指令功能:将 AH 寄存器内容传送到标志寄存器 F 的低字节。(3) 标志进栈指令汇编指令: PUSHF指令功能:将 16 位标志寄存器 F 内容入栈保护。其操作过程与前述的 PUSH 指令类似。(4) 标志出栈指令汇编指令: POPF指令功能:将当前栈顶和次栈顶中的数据字弹出送回到标志寄存器 F 中。

Page 77: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .数据交换指令汇编指令: XCHG  DST, SRC指令功能:将两个操作数进行字节或字数据交换,即 (DST)←→(SRC) 。

通用寄存器

AX、BX、CX、

DX

BP、SP、SI、DI

存储器 ②

Page 78: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .字节翻译指令

汇编指令: XLAT 转换表名指令功能:该指令通过查表完成代码转换功能。它将偏移量为 EA=(BX)+(AL)所对应的存储单元中的一个字节的内容送入 AL ,从而实现 AL 中一个字节的代码转换,即 AL←((BX)+(AL)) 。

Page 79: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6 .地址传送指令(1) 装入有效地址指令汇编指令: LEA  DST, SRC指令功能:把用于指定源操作数 SRC( 它必须是存储器操作数 )的 16 位偏移地址 ( 即有效地址 )传送到一个目的地址 DST 指定的 16 位通用寄存器中。

(2) 装入地址指针指令汇编指令: LDS  DST, SRC指令功能:这是取某变量的 32 位地址指针的指令,其功能是从由指令的源操作数 SRC 所指定的存储单元开始,由 4 个连续存储单元中取出某变量的地址指针,将其前两个字节传送到由指令的目的操作数 DST 所指定的某16 位通用寄存器,后两字节传送到 DS 段寄存器中。

Page 80: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7 .输入 / 输出指令

(1) 输入指令汇编指令: IN  累加器,端口指令功能:将指定端口中的内容传送到累加器AX/AL 中。端口地址由上述寻址方式确定。

(2) 输出指令汇编指令: OUT  端口,累加器指令功能:将累加器 AX/AL 中的内容传送到指定的端口。

Page 81: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.4.2 算术运算类指令1 .加法指令汇编指令: ADD DST, SRC指令功能:将源操作数和目的操作数相加,结果保留在目的操作数中。源操作数原有内容不变,即 DST←(DST)+(SRC) 。根据相加结果设置标志寄存器中的 CF、 PF、 AF、 ZF、 SF和 OF 。

2 .带进位加法指令汇编指令: ADC DST, SRC指令功能:带进位加法 (ADC) 指令的操作过程与ADD 指令基本相同,唯一的不同是进位标志位CF 的原状态一起参与加法运算,待运算结束, CF 将重新根据结果置成新的状态,即DST←(DS T)+(SRC)+(CF) 。

Page 82: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .减法指令汇编指令: SUB DST, SRC指令功能:目的操作数减去源操作数,结果放在目的操作数中,源操作数原有内容不变,即DST←(DST)(SRC) ,并根据运算结果置标志位。

4 .带借位减法指令汇编指令: SBB  DST, SRC指令功能:本指令与 SUB 指令的功能、执行过程基本相同,唯一不同的是完成减法运算时还要再减去进位标志 CF 的原状态。运算结束时, CF 将被置成新状态,即 DST←(DST)(SRC)(CF) 。

Page 83: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .比较指令汇编指令: CMP  DST, SRC指令功能:将目的操作数与源操作数相减,但不送回结果,只根据结果置标志位,即 (DST) (SRC) 。指令执行后,两个操作数均不发生变化。

6 .加 1/减 1 指令 (INC/DEC)汇编指令: INC DST DEC DST指令功能: INC 是加 1 指令, DEC 是减 1 指令。目的操作数加 1 或减 1 后送目的操作数,即ST←(DST)±1 。目的操作数可以是 8/16 位通用寄存器或存储器操作数,影响状态标志ZF、 SF、 AF、 PF和 OF ,但不影响进位标志CF 。

Page 84: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7 .求补指令汇编指令: NEG  DST指令功能:将目的操作数取负后送回目的操作数,即 DST=()+1 。NEG 指令是把目的操作数当成一个带符号数,如果原操作数是正数,则 NEG 指令执行后将其变成绝对值相等的负数 ( 用补码表示 ) ;如果原操作数是负数 ( 用补码表示 ) ,则 NEG 指令执行后将其变成绝对值相等的正数。其目的操作数可以是 8/16 位通用寄存器或存储器操作数。

8 .乘法指令汇编指令: MUL SRC IMUL SRC指令功能: MUL 是无符号数乘法指令, IMUL 是带符号数乘法指令,两种乘法指令使用数据的类型不同,相乘的结果也不同,但指令的操作类似。

Page 85: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

9 .除法指令汇编指令: DIV SRC IDIV SRC指令功能: DIV 是无符号数除法指令, IDIV 是带符号数除法指令,两种除法指令使用数据的类型不同,相除的结果也不同,但操作类似。除法指令执行后,所有的状态标志是不能确定的,无任何有效的确定状态。

10 .符号扩展指令汇编指令: CBW CWD指令功能: CBW 指令是将 AL 中的符号扩展到AH 中,即将一个字节的带符号数扩展成一个字。若 (AL)的 D7=0 ,则 (AH)=00 ;若 (AL)的D7=1 ,则 (AH)=0FFH 。

Page 86: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11 .十进制调整指令

(1) 加法的十进制调整指令汇编指令: DAA AAA指令功能: DAA 指令功能是对两个组合十进制数 ( 一个字节中含两位 BCD 码表示的十进制数 )相加的结果 (在 AL中 ) 进行调整,得到一个两位有效的组合十进制数的“和”,调整结果仍保留在 AL 中。

(2) 减法的十进制调整指令汇编指令: DAS AAS 指令功能: DAS 指令用于对两个组合 BCD 数相减的结果 (在 AL中 ) 进行调整,得到一个有效的组合 BCD 数“差”,调整后的结果,仍在 AL 中。

Page 87: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(3) 乘法的十进制调整指令汇编指令: AAM指令功能: AAM 指令,它对两个分离 BCD 数的相乘结果进行调整,以得到有效的分离 BCD 数的积。两个分离 BCD 数的个位数相乘的结果,可能产生两位分离BCD 数的积。执行 AAM 指令,将其两位“积”存放在寄存器 AX 中; AH 的低 4 位存放积的高位; AL 的低 4位存放积的低位。 AH和 AL 的高 4 位为 0 。其调整操作是:将 AL 寄存器中的结果除以 10 ,所得商数即为高位十进制数置入 AH 中,所得余数即为低位十进制数置入 AL 中。

(4) 除法的十进制调整指令汇编指令: AAD指令功能: AAD 指令与上述所有调整指令的操作不同,它是在除法之前进行调整操作。AAD 指令的调整操作是将累加器 AX 中的 2 位分离的十进制的被除数调整为二进制数,保留在 AL 中。其具体做法是:将 AH 中的高位十进制数乘以 10 ,与 AL 中的低位十进制数相加,并使 AH 的内容清零,结果保留在AL 中。

Page 88: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.4.3 逻辑运算与移位指令1 .逻辑运算指令

(1) 逻辑“与”指令汇编指令: AND  DST, SRC指令功能:目的操作数和源操作数按位进行“与”运算,结果送回目的操作数,即 DST←(DST) (SRC)∧ 。(2) 逻辑“或”指令符号指令: OR  DST, SRC指令功能:目的操作数和源操作数按位进行“或”运算,结果送回目的操作数,即 DST←(DST) (SRC)∨ 。(3) 逻辑“异或”指令汇编指令: XOR  DST, SRC指令功能:目的操作数和源操作数进行“异或”运算,结果送回目的操作数,即 DST←(DST) (SRC)⊕ 。

Page 89: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(4) 逻辑“非”指令汇编指令: NOT  DST指令功能:目的操作数的各位求反码,结果送回目的操作数,即 DST←() 。

(5) “测试”指令汇编指令: TEST DST, SRC指令功能: TEST 是测试指令,它执行两个操作数 (字节或字 ) 的逻辑与操作。指令执行后,两个操作数均不发生变化,“与”的结果仅影响标志位。

Page 90: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .移位指令(1) 逻辑移位汇编指令: SHL  DST, COUNTSHR  DST, COUNT指令功能: SHL 是逻辑左移指令。逻辑左移是将目的操作数中的每一位向左移一位,最高有效位 MSB移入进位标志位中,而 CF 原有的值丢失,空出的最低位补“ 0”,MSB 是最高有效位, LSB 是最低有效位。逻辑左移指令用于无符号数乘以 2 ,移入进位标志位的值可用来检查是否超位。

(2) 算术移位指令汇编指令: SAL  DST, COUNTSAR  DST, COUNT指令功能: SAL 是算术左移位指令,它与逻辑左移指令 SHL具有完全相同的操作、完全相同的编码形式。它们可以互换,它们是同一条指令的两个符号。SHL/SAL 指令不仅适用于无符号数乘以 2 的运算,同样也适用于有符号数乘以 2 的运算。

Page 91: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .循环移位指令

(1) 不带进位位循环移位指令汇编指令: ROL DST, COUNT ROR DST, COUNT指令功能: ROL 是循环左移位指令。它将目的操作数中的每一位向左移动一位,最高位 MSB 移入最低位LSB ,同时把最高位移入 CF ,而 CF 原有值丢失。

(2) 带进位位循环移位指令汇编指令: RCL DST, COUNT RCR DST, COUNT指令功能: RCL 是带进位标志位 CF 的循环左移指令。它将目的操作数连同进位标志一起循环左移, CF 的值进入目的操作数最低位,而目的操作数的最高位进入 CF 。

Page 92: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.4.4 程序控制指令

1 .无条件转移指令

汇编指令: JMP  目标标号指令功能: JMP 指令使程序无条件地转移到由目标标号指定的地址去执行。如果目标单元在当前代码段内,称为段内转移,这种指令只修改 IP ;若目标单元在其他代码段中,称为段间转移,这种指令同时修改 IP与 CS ,即, CS: IP← 目标标号 ( 地址 ) 。

Page 93: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(1) 段内直接短转移汇编指令: JMP SHORT 目标标号指令功能: SHORT 是短转移运算符,转移的有效地址是当前的 IP值与指令中的指定 8 位位移量之和,转移有效地址送 IP ,即, IP←(IP)+Disp8 。

(2) 段内直接转移汇编指令: JMP 目标标号 或者: JMP NEAR PTR 目标标号指令功能: NEAR PTR 是近距离属性运算符。转移的有效地址是当前 IP值与指令指定的 16 位位移量之和,转移有效地址送 IP ,即 IP←(IP)+Disp16 。

Page 94: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(3) 段内间接转移汇编指令: JMP  字地址指针指令功能:地址指针是一个 16 位寄存器或两个连续的存储单元,转移的有效地址是地址指针中的内容。执行指令时就用该有效地址代替原有 IP的值,即 IP←(EA) 。

(4) 段间直接转移汇编指令: JMP  FAR PTR 目标标号指令功能: FAR  PTR 是远距离属性运算符,目标标号在其他代码段中,指令中直接给出目标标号的段基址和偏移地址,指令执行时,将指令中目标地址的偏移量置换原有 IP值;指令中目标地址所在段的段基址置换原有 CS值,即IP←disp16( 指令第二、三字节 ); CS←Seg( 指令第四、五字节 ) 。

Page 95: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(5) 段间间接转移汇编指令: JMP  DWORD PTR 双字地址指针指令功能: DWORD PTR 是双字属性运算符。双地址指针是 32 位双字存储单元。将地址指针中的第一字的内容替换原有 IP值;地址指针中第二字的内容替换CS 原有的值。即, IP←(EA);CS←(EA+2) 。

Page 96: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .条件转移指令

汇编指令: J×× 目标标号指令功能: ×× 是测试条件。条件转移指令是以执行指令时 CPU 中标志位的状态为测试条件,来决定是否控制程序转移。如果条件成立,则控制转移到指令给出的目标地址去执行程序,即 IP←(IP)+Disp8 ;否则程序将顺序执行。

Page 97: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .循环控制指令(1) 循环转移指令汇编指令: LOOP 目标标号指令功能:将循环计数器 CX 寄存器内容减 1 后送回 CX ,若(CX)≠0 ,则转移到目标标号所给定的地址继续循环,否则结束循环顺序执行下条指令。即, CX←(CX)-1 ;若 (CX)≠0 ,则IP←(IP)+Disp8 。(2) 相等 / 为零循环转移指令汇编指令: LOOPE/LOOPZ 目标标号指令功能: LOOPE和 LOOPZ 是同一条指令的两种不同的助记符,其指令功能是先将 CX减 1送 CX ,若 ZF=1且 CX≠0 时则循环,否则顺序执行下条指令,即, CX←(CX)1 ;若 (CX)≠0 ,且 ZF=1 ,则 IP←(IP)+Disp8 。(3) 不相等 / 不为零循环转移指令汇编指令: LOOPNE/LOOPNZ 目标标号指令功能: LOOPNE和 LOOPNZ 是同一条指令的两种不同的助记符,其指令功能是先将 CX减 1送 CX ,若 ZF=0且 CX≠0 时则循环,否则顺序执行下条指令,即 CX→(CX)1 ;若 (CX)≠0 ,且 ZF=0 ,则 IP←(IP)+Disp8 。

Page 98: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .调用与返回指令(1) 过程调用指令汇编指令: CALL  过程名指令功能:指令执行时,首先是把主程序的断点地址 (调用指令的下一条指令地址 ) 压入堆栈保存,然后将目标地址 ( 过程的首地址 )装入 IP或 IP与 CS ,以控制 CPU 转移到目标过程去执行被调用的过程。执行调用指令对标志位无影响。

① 段内直接调用 ② 段内间接调用③ 段间直接调用④ 段间间接调用

Page 99: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 过程返回指令① 返回指令汇编指令: RET指令功能:若过程定义为 NEAR类型,则为段内返回,指令执行下列操作:IP←((SP)+1: (SP)) ;  SP←(SP)+2若过程定义为 FAR类型,则为段间返回,从堆栈中弹出断点地址的偏移量和段基值,分别送入 IP和 CS ,即:IP←((SP)+1: (SP)) ;   SP←(SP)+2CS←((SP)+1: (SP)) ;   SP←(SP)+2 ② 带弹出值返回指令

汇编指令: RET  n指令功能:该返回指令中,带有一个弹出值 n( 立即数 ) 。在执行指令时,除了从堆栈中弹出断点地址 (2 个字节或 4 个字节 ) 外,还要弹出由弹出值 n 所指定的 n 个字节数的内容。即在弹出断点地址后,再用这个立即数 n修改堆栈指针 SP的值: SP←(SP)+n

Page 100: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .中断指令(1) INT 中断类型8086 系统中允许有 256 种中断类型 (0~ 255) ,各种类型的中断在中断入口地址表中占 4 个字节,前 2 个字节用来存放中断入口的偏移地址,后 2个字节用来存放中断入口的段基址。(2) INTOINTO 指令专用于对溢出标志 OF 进行测试,当OF=1 ,立即向 CPU发出溢出中断请求。并根据系统对溢出中断类型的定义,可从中断入口地址表中得到类型 4 的中断服务程序入口地址。(3) IRETIRET 指令总是安排在中断服务程序的出口处,由它控制从堆栈中弹出程序断点送回 CS和 IP 中,弹出标志寄存器内容送回 F 中,迫使 CPU返回到断点继续执行后续程序。

Page 101: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.4.5 字符串处理类指令1 .字符串传送指令汇编指令: MOVS 目的串,源串指令功能:将一个字节或一个字从 SI 寻址的源串传送到由 DI 寻址的目的串中,同时, CPU 自动修改 SI和DI ,以指向下一个元素,即, (DI)←((SI)); SI←(SI)±1(或 2 ); DI←(DI)±1(或 2 )。指令所处理的元素是字节还是字由操作数 ( 目的串或源串 ) 的属性规定。该指令不影响标志位。2 .字符串比较指令汇编指令: CMPS  目的串,源串指令功能:将由源变址寄存器 SI 寻址的源串中的一个元素减去目的变址寄存器 DI 寻址的目的串中相对的一个元素,指令执行后,两个操作数的值均不发生变化,比较结果仅影响标志位。同时, CPU 自动修改 SI和DI ,以指向下一元素,即, ((SI))((DI)); SI←(SI)±1(或 2 ); DI←(DI)±1(或 2 )。

Page 102: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .字符串搜索指令汇编指令: SCAS 目的串指令功能:在目的串中查找 AX或 AL 的内容。查找的方法是用 AX或 AL 的内容减去目的串中的一个字或一个字节的内容,不保留结果,只根据结果置标志位,同时, CPU 自动修改DI ,以指向下一元素,即: (AX)/(AL)((DI));DI←(DI)±1(或 2 )。4 .取串指令汇编指令: LODS 源串指令功能:将一个字节或一个字从 SI 寻址的源串传送到 AX/AL 寄存器中。同时, CPU自动修改 SI ,以指向下一元素,即 (AX)/(AL)←(SI); SI←(SI)±1(或 2 )。该指令不影响标志位。

Page 103: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .存串指令汇编指令: STOS 目的串指令功能:将 AX/AL 寄存器中的一个字或一个字节存入目的串由 DI 所指向的元素中,同时, CPU 自动修改 DI ,以指向下一元素,即, (DI)←(AX)/(AL);DI←(DI)±1(或 2 )。

Page 104: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6 .重复前缀指令(1) 重复前缀指令汇编指令: REP指令功能:重复前缀 REP 是与存串指令、串传送指令联合使用。在编程时, REP 放置在字符串操作指令之前,当 REP 指令与MOVS或 STOS 指令一起使用时,若 CX 的内容不为 0 ,则 REP指令使紧接在它后面的字符串操作指令重复执行 (CX) 次。每执行一次字符串操作指令,计数器 CX 的内容自动减 1 ,即CX←(CX)1 ,直到 CX=0 时,退出串处理循环,转而执行下一条指令。

(2) 条件重复前缀指令① 相等 / 为零重复前缀汇编指令: REPE ;相等重复前缀 或者: REPZ ;为零重复前缀指令功能:每执行一次字符串操作指令,计数器 CX 的内容自动减1 ,即 CX←(CX)1 ,直到 CX=0或 ZF=0 时,退出串处理循环,转而执行下一条指令。② 不相等 / 不为零重复前缀汇编指令: REPNE ;不相等重复前缀 或者: REPNZ ;不为零重复前缀指令功能:每执行一次字符串操作指令,计数器 CX 的内容自动减1 ,即 CX←(CX)1 ,直到 CX=0或 ZF=1 时,退出串处理循环,转而执行下一条指令。

Page 105: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3.4.6 CPU控制指令1 .标志位操作指令8086 提供了 7 条控制状态标志位的指令,它们可以直接或独立地对 CPU 的标志位 CF、 DF和 IF进行控制,用来设置或改变状态标志位的状态。(1) 清除进位标志 CLC

;置 CF=0(2) 进位标志置位 STC

;置 CF=1(3) 进位标志取反 CMC

; CF 取反(4) 清除方向标志 CLD

;置 DF=0(5) 方向标志置位 STD

;置 DF=1(6)清除中断标志 CLI

;置 IF=0(7) 中断标志置位 STI

;置 IF=1

Page 106: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .同步控制指令(1) 处理机交权指令汇编指令: ESC  外部操作码,源操作数指令功能: ESC 指令是在最大方式系统中 8086 CPU 要求协处理器完成某种任务的命令,它的功能是使某个协处理器可以从 8086 CPU 的程序中取得一条指令中一个存储器操作数。(2) 等待指令汇编指令: WAIT指令功能:该指令完成 CPU 与协处理器或外部硬件的同步。(3) 总线封锁指令汇编指令: LOCK 某指令指令功能:它使 8086( 在最大方式下 ) 在执行LOCK 后面的指令时,保持一个总线封锁信号。该总线封锁信号,用于禁止其他协处理器占用总线。

Page 107: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .其他控制指令

(1) 暂停指令汇编指令: HLT指令功能:它迫使 CPU暂停执行程序,而进入暂时停机状态。

(2) 空操作指令汇编指令: NOP指令功能:空操作指令 NOP使 CPU 不执行任何操作,但占用 3 个时钟周期,并使指令指示器 IP加 1 。执行完 NOP 指令后,接着执行其后续指令。空操作指令 NOP常用来作延时,或取代其他指令作调试之用。

Page 108: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 4 章 汇编语言程序设计

4.1 程序设计语言概述4.2 8086汇编语言简介4.3 汇编语言程序设计实例

Page 109: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4.1 程序设计语言概述

1 .机器语言机器语言用二进制编码表示每条指令,它是计算机能直接识别和执行的语言。用机器语言编写的程序称为机器语言程序或指令程序 ( 机器码程序 ) 。 2 .汇编语言汇编语言是用指令的助记符、符号地址、标号等来表示指令的程序语言,简称符号语言。它的特点是易读、易写、易记。3 .高级语言高级语言是脱离具体机器 ( 即独立于机器 ) 的通用语言,不依赖于特定计算机的结构与指令系统。用同一种高级语言写的源程序,一般可以在不同计算机上运行而获得同一结果。

Page 110: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4.2 8086 汇编语言简介4.2.1 数据与表达式

1 .汇编语言的数据(1)常数常数是指那些在汇编过程中已经有确定数值的量,它主要用做指令语句中的立即操作数、变址寻址和基址加变址寻址中的位移量 DISP 或在伪指令语句中用于给变量赋初值。常数可以分为:数值常数和字符串常数。

(2) 变量变量一般都在数据段或附加段中使用数据定义伪指令 DB、DW和 DD 来进行定义。定义变量就是给变量分配存储单元,且对这个存储单元赋予一个符号名——变量名,同时对这些存储单元预置初值。

(3) 标号 标号是某条指令所在存储单元的符号地址,它指示指令

在汇编语言程序中的位置。通常标号用来作为汇编语言源程序中转移、调用以及循环等指令的操作数,即转移的目标地址。

Page 111: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .表达式(1) 算术运算符算术运算符包括加 (+) 、减 () 、乘 (*) 、除 (/) 和模运算符MOD。MOD施于操作对象,得到的是除法的余数。

(2) 逻辑运算符逻辑运算符包括:非 (NOT) 、与 (AND) 、或 (OR) 和异或 (XOR) 。逻辑运算符的运算对象必须是数值型的操作数,并且是按位运算。

(3) 关系运算符关系运算符包括相等 (EQ) 、不等 (NE) 、小于 (LT) 、不大于 (LE) 、大于 (GT) 和不小于 (GE) 。关系运算符用于将两个操作数进行比较,若符合比较条件 ( 即关系式成立 ) ,所得结果为全 1 ;否则,所得结果为全 0 。

(4) 数值返回运算符数值返回运算符包括:段基址 (SEG) 、偏移量 (OFFSET) 、类型(TYPE) 、长度 (LENGTH) 和字节总数 (SIZE) 。

(5) 属性运算符属性运算符包括:类型修改 (PTR) 、短转移 (SHORT) 、类型指定(THIS) 和段超越运算符。

Page 112: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .运算符的优先规则

Page 113: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4.2.2 汇编语言的伪指令

1 .数据定义伪指令

该指令的功能是把数据项或项表的数值存入存储器连续的单元中,并把变量名与存储单元地址联系在一起。在程序中,用户可以用变量名来访问这些数据项。

Page 114: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .符号定义伪指令

(1) 赋值伪指令赋值伪指令是为表达式赋予一个符号名,其后指令中凡需要用到该表达式的地方均可以用此名字来代替。赋值伪指令的格式如下:符号名  EQU  表达式

(2) 等号伪指令语句格式:  符号名 = 表达式这种语句的含义和表达的内容都与赋值语句相同,但是等号语句可以重新定义符号。

Page 115: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .类型定义伪指令

类型定义伪指令格式如下:变量名或标号名  LABEL  类型LABEL伪指令为当前存储单元重新定义一个指定类型的变量或标号,该伪指令并不为指定的变量或标号分配存储单元。

Page 116: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .段定义伪指令

段定义伪指令的功能就是把源程序划分为逻辑段,便于汇编程序在相应段名下生成目标码,同时也便于连接程序组合、定位、生成可执行的目标程序。

Page 117: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .设置起始地址伪指令

ORG伪指令用来指出其后的程序段或数据块存放的起始地址的偏移量。其指令格式为:ORG 表达式汇编程序把语句中表达式之值作为起始地址,连续存放程序和数据,直到出现一个新的 ORG 指令。若省略 ORG ,则从本段起始地址开始连续存放。

Page 118: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

标志着整个源程序的结束,它使汇编程序停止汇编操作。其指令格式为:END 表达式(标号)其中,表达式与源程序中的第一条可执行指令语句的标号相同。它提供了代码段寄存器 CS 与指令指示器 IP 的数值,作为程序执行时第一条要执行的指令地址。

6 .汇编结束伪指令

Page 119: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7 .段寄存器设定伪指令

段寄存器设定伪指令 ASSUME ,一般出现在代码段中,它用来告诉汇编程序,由 SEGMENT/ENDS伪指令定义的段和段寄存器的对应关系,即设定已定义段各自属于哪个段寄存器。其指令格式为:ASSUME 段寄存器名:段名 [ ,段寄存器名:段名 ]段寄存器名是 CS、 DS、 SS或 ES ,段名必须是由 SEGMENT/ENDS 定义过的段名。

Page 120: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8 .过程定义伪指令

在程序设计中,我们常常把具有一定功能的程序段设计成一个子程序。汇编程序用“过程” (PROCEDURE) 来构造子程序。过程定义伪指令格式如下:

Page 121: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

9 .程序开始伪指令

在程序的开始可以用 NAME或 TITLE伪指令,用以为程序取名。(1) 程序开始语句格式: NAME程序名程序名是由用户任意选定的,如果源程序中缺少该语句,将用源文件名作为程序名。(2) 标题语句格式: TITLE文本该伪指令用于给程序指定一个标题,以便在列表文件中每一页的第一行都会显示这个标题。它的文本可以是用户任意选用的名字或字符串,但是字符个数不得超过 60 个。

Page 122: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4.2.3 汇编语言的语句结构1 .名字名字是用户为汇编语句所定义的具有特定意义的字符序列,它表示汇编语句的符号地址或符号名。

(1) 以字母开头,由字母、数字、特殊字符组成的字符串表示。名字的最大长度一般不超过 31 个字符。(2) 名字不能与保留字相同。汇编语言中的保留字通常包括: CPU 寄存器名、指令助记符、伪指令助记符或运算符等。(3) 名字在汇编语句中是任选项,多数指令性语句并不出现名字,但多数伪指令语句出现名字。(4) 指令语句的名字是以冒号为分界符,伪指令语句的名字是以空格为分界符,这是两种语句的名字在格式上的区别。

Page 123: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .操作码

操作码是汇编语句中唯一不可缺少的核心部分,它规定了所要执行的各种操作,一般由指令或伪指令的助记符组成。

Page 124: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .操作数

操作数是参与操作的数据,或是参与操作的数据的地址。它与操作码一起确定指令所要执行的具体操作。

Page 125: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .注释

语句行中分号“;”后面的字符串为注释部分。它用来简要说明该指令在程序中的作用,以提高程序的可读性。注释在语句中是任选项,且不对汇编产生任何影响。

Page 126: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4.3 汇编语言程序设计实例

4.3.1 程序设计的基本步骤

1 .分析题目与确定算法2 .合理分配存储空间和寄存器3 .编制程序流程图4 .编制程序5 .调试程序

Page 127: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4.3.2 顺序程序设计

顺序结构程序是一种最简单、最基本的程序,按照程序编写的顺序依次执行。编写这类程序主要应注意正确地选择指令,提高程序执行效率。

Page 128: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4.3.3 分支程序设计

P1 P2 Pn ……

(d) (c)

(b) (a)

K=1 K=2 K=n Pn P2

P1

Y

Y

Y

建立测试条件 建立测试条件 建立测试条件

条件成立否? 条件成立否? 条件 1成立否? N Y N

Y P

P1 P2

关键字 K=?

条件 2成立否?

条件 n成立否?

Page 129: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4.3.4 循环结构程序1 .置循环初值置循环初值是设置用于循环过程工作单元的初始值。例如设置循环次数计数器、地址指针初值、存放结果的单元初值等。2 .循环体重复执行的程序段部分。3 .循环修改循环修改部分:为执行下一个循环而修改某些参数,如修改地址指针和修改循环变量等。4 .循环控制判断控制变量是否满足终值条件,不满足则转去重复执行循环工作部分,满足则顺序执行,退出循环。

Page 130: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

循环控制 未完

结束

置初值

结束

循环体

循环修改 循环体

循环修改

循环控制

未完

置初值

Page 131: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4.3.5 子程序设计主程序与子程序之间参数传递主要有 3 种方式:(1) 寄存器传递参数方式寄存器传递参数方式是指主程序把参数直接放在规定的寄存器中,执行子程序所得到的结果也存入规定的寄存器而带回主程序。(2) 堆栈传递参数方式由堆栈传送参数,也就是主程序将参数装入堆栈这一公共存储区,子程序到堆栈中去取所需的参数,若子程序中有结果,亦可通过堆栈带回到主程序。(3) 指定存储单元传递参数方式主程序将参数存放到内存的某一区域内,子程序到此约定的区域内取出参数。

4.3.6 DOS 系统调用类程序

Page 132: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 5 章 内存储器与存储体系5.1 存储器概述5.2 读写存储器RAM与 只读存储器5.3 存储器与CPU的连接5.4 并行存储器5.5 高速缓冲存储器5.6 虚拟存储器

Page 133: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.1 存储器概述5.1.1 存储器体系结构

主存储器

CPU寄存器

组 高速缓冲存储器

Cache

磁带、磁盘 光盘

存取速度快、位成本高、容量小

存取速度慢、位成本低、容量大

Page 134: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1 .高速缓冲存储器高速缓冲存储器 Cache 位于主存储器和 CPU 之间,用于高速存取正在执行的程序和数据,以提高计算机的处理速度。

2 .主存储器主存储器简称主存,是计算机系统的主要存储器,用来存放计算机运行期间的程序和数据。它能和Cache交换数据和指令。由于 CPU 要频繁地访问主存,所以主存的性能在很大程度上影响了整个计算机系统的性能。

3 .外存储器外存又称为辅存或后援存储器,用来存放当前暂不参与运行的程序和数据以及一些需要永久性保存的信息。外存也是计算机中重要的外部设备。

Page 135: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.1.2 半导体存储器的分类

随机存取存储器 RAM

只读存储器 ROM

双极型 RAM

MOS型 RAM 静态 SRAM

动态 DRAM 掩模式 ROM

可编程 RPROM

可擦式 EPROM

电可擦式 EEPROM

半导体存储器

Page 136: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.1.3 半导体存储器的性能指标1 .存储容量存储容量是指存储器芯片上能存储的二进制位数。 2 .存取时间存取时间是指数据写入或读出存储器所需要的时间,一般以 ns(纳秒)为单位。存储器芯片的手册中一般要给出典型存取时间或最大存取时间。3 .存储周期存储周期是指连续启动两次读或写操作所需间隔的最小时间。存储周期等于存储时间加上两次读或写操作间的稳定时间。4 .存储器带宽存储器带宽是单位时间里存储器所存取的信息量,通常以位 /秒或字节 /秒为度量单位。

Page 137: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.2 读写存储器 RAM 与只读存储器 ROM

5.2.1 静态 RAM( SRAM )1 .基本存储位元电路

X行地址选择 六

管存储位元

T5

VCC

T6 T3 T4

T1 T2

T7 T8 读出

放大器

Y列地 址选择

写入 读出

I/O电路

D

I/O

Q Q

D

CS+R/W

CS + R/W

Page 138: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 1 )写操作写入时,由 X 地址选择线和 Y 地址选择线同时为高电平,因而使开关管 T5~ T8 处于导通,来共同选中某一单元。写入信息由 I/O 线输入,经输入门(在控制信号 + 作用下导通)后,同时由 D 和双边写入。

( 2 )读操作 读出时,由 X 地址选择线和 Y 地址选择线共同确定某一单元。这时触发器状态 Q经过 T6、T8 及读出放大器传送到读出端,双向缓冲器输出门在控制信号 +R/W 的控制下导通,读出信息由 I/O 线输出。

Page 139: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . SRAM存储器的组成

A0

A1

A5

……

……

……

……

0 0

1 1

63 63

地址反相器

X 译 码 器

驱 动 器

1

6464=4096

存储矩阵

2

16 ……

……

……

63 0

输入

输出

输出 驱动 I/O电路

Y译码器

65 0

A6 A7 A11

地址反相器

控制 电路

读/写 片选 (R/W) (CS)

Page 140: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(1) 地址译码器CPU 要选择某一存储单元,就在地址总线 A0~ A11上输出此单元的地址信号给地址译码器。(2) 存储矩阵存储矩阵是存储位元的集合,这些存储位元通常排列成矩阵的形式。(3) 驱动器由于在双译码结构中,一条 X 方向选择线要控制挂在其上的所有存储位元电路,故其所带的电容负载很大。(4) I/O 电路它处于数据总线和被选用的存储单元之间,用以控制被选中的存储单元读出或写入,并具有放大信息的作用。(5) 片选与读 /写控制电路目前一个芯片的存储容量是有限的,所以需要一定数量的芯片按一定方式进行连接后才能组成一个完整的存储器。(6) 输出驱动电路为了扩展存储器的容量,常需要将几个芯片的数据线并联使用,另外存储器的读出数据或写入数据都放在双向的数据总线上。

Page 141: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 . SRAM存储器芯片实例

A4

A9

0 VCC GND 行

存储单元

64行64列

63

63 0 …

A0 … A3

I/01

I/02

I/03

I/04 I/01 I/02 I/03 I/04

输入 数据 控制

列 I/O电路

列选

CS

R/W

R/W CS

GND

2114A

A6 A5 A4 A3

A0 A1

A2

1

9 10

18 VCC

A7

A9 A8

Page 142: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.2.2 动态 RAM( DRAM )1 . DRAM的存储位元及其工作原理

字选线

单管存储位元

数据线

T1

CS

CD

D

Page 143: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . DRAM存储芯片实例

(a)引脚图 (b)结构框图

:地址输入 :列地址选通 :行地址选 :写允许

:数据输入

:数据输出 :电源 :地

Page 144: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 . DRAM的刷新

DRAM 是以 MOS 管栅极和衬底间的电容上的电荷来存储信息的。由于MOS 管栅极上的电荷会因漏电而泄放,故存储单元中信息只能保持若干毫秒。为此,要求在 l~ 3ms 中周期性地刷新存储单元,但 DRAM 本身不具刷新功能,就必须附加刷新逻辑电路。

Page 145: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.2.3 只读存储器 ROM1 .掩模式 ROM这类 ROM 所存的数据,在芯片制造过程中就确定了,因而使用时只能读出,不能再进行改变。2 .一次编程 ROM(PROM)PROM 只能进行一次性改写,一旦编程完毕,其内容便是永久性的,无法进行更改。3 .多次可编程 ROM这类 ROM 有光擦编程只读存储器 EPRO 和电擦编程只读存储器 EEPROM 。这两类器件可以分别用紫外光照射或电的方法擦除原来写入的数据,然后,再用电的方法重新写入新的数据。4 .闪速存储器 (Flash)(Flash) EEPROM, 它的存储位元电路是在 CMOS 单晶体管 EPROM 存储位元基础上制造的,因此它具有非易失性。

Page 146: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.3 存储器与 CPU 的连接5.3.1 存储器地址分配及译码

1 .全译码法

全译码法将除片内寻址外的全部高位地址线都作为地址译码器的输入,译码器的输出作为各芯片的片选信号,将它们分别接到存储芯片的片选端,以实现对存储芯片的选择。全译码法的优点是每片 ( 或组 )芯片的地址范围是唯一确定的,而且是连续的,便于扩展,不会产生地址重叠的存储区,但全译码法的译码电路比较复杂。

Page 147: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .部分译码

所谓部分译码即用除片内寻址外的高位地址的一部分来译码产生片选信号。

Page 148: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.3.2 存储器与 CPU 的连接

位扩展是指只在位数方向扩展,而芯片的字数和存储器的字数是一致的。位扩展的连接方式是将各存储芯片的地址线、片选线和读写线相应地并联起来,而将各芯片的数据线单独列出。

1 .位扩展

字扩展是指仅在字数方向扩展,而位数不变。字扩展将芯片的地址线、数据线、读写线并联,由片选信号来区分各个芯片。

2 .字扩展

Page 149: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

一个存储器的容量假定为 N×M 位,若使用l×k 位的芯片( l< N, k<M )需要在字向和位向同时进行扩展。此时共需要( N/l) ×(M/k )个存储器芯片。

3 .字位同时扩展法

Page 150: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.4 并行存储器5.4.1 双端口存储器

地址寄存器 地址寄存器

译码电路 译码电路

存储矩阵

地址 A 地址 B

数据 A 数据 B

Page 151: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.4.2 多模块交叉存储器 4 3 2 0 4 2 1 0

M0 M1 M2 M3 M0 M1 M2 M3

数据总线 数据总线

0

1

2

3

4

5

6

7

24

25

26

27

28

29

30

31

16

17

18

19

20

21

22

23

8

9

10

11

12

13

14

15

0

4

8

12

16

20

24

28

1

5

9

13

17

21

25

29

2

6

10

14

18

22

26

30

3

7

11

15

19

23

27

31

主存地址 主存地址 4 3 2 1 0 模块 字地址 字地址 模块

Page 152: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.4.3 80X86 的存储器组织

1 . 8086的存储器组织

D7~D0

A19~A1 BHE

D15~D8

A0

偶地址

存储模块 (低字节)

奇地址 存储模块 (高字节)

Page 153: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . Pentium的存储器组织

A2、A1、A0

A2、A1、BHE、BLE

7BE ~ 0BE

Pentium

64位

存储器

字节

选择

逻辑

A31~A3

A2、 3BE~ 0BE 32位

存储器

16位

存储器

8位

存储器

Page 154: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.5 高速缓冲存储器 Cache

5.5.1 Cache 工作原理

Cache 是一种高速缓冲存储器,是为了解决 CPU 和主存之间速度不匹配而采用的一项重要技术,以使CPU 访问 Cache/主存系统的平均速度接近(略大)于 Cache 的速度,从而加快了程序的执行速度。

Page 155: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

根据大量典型程序的运行分析表明,当 CPU 从主存中取出指令和数据时,在一个较短的时间间隔内,由程序产生的地址往往局限在主存空间的某个很小的区域内。这种对局部范围的存储器地址频繁地访问,而对此范围以外的地址访问甚少的现象,称为程序访问的局部性。高速缓冲技术就是利用程序的局部性原理,把程序中正在使用的部分 (活跃块 ) 存放在一个高速的容量较小的 Cache 中,使 CPU 的访存操作大多数针对 Cache 进行,从而使程序的执行速度大大提高。

1 .程序局部性原理

Page 156: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . Cache的基本结构

比较器 不命中

Cache满

替换算法

单字

Cache 数据

直接通路

(多字)

存 储 器

命 中 访问数据

Cache 标记

Cache地址 块号 块内地址

访问标记 修改标记

块号 块内地址 标记 主存地址

去 CPU

或来自 CPU

Page 157: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 . Cache的读 / 写操作

(1) Cache 的读操作当 CPU发出读请求时,如果 Cache命中,就直接对 Cache 进行读操作,与主存无关;如果 Cache 不命中,此时需要访问主存,用主存读周期把此字从主存读出送到 CPU ,并把包含该字的整个数据块装入 Cache 。若Cache已满,则需要根据某种替换算法,替换掉 Cache 中原来的某块数据。

Page 158: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) Cache 的写操作当 CPU发出写请求时,如果 Cache命中,可有两种处理方案:

① Cache 单元和主存单元同时写,使 Cache 和主存保持一致,称为透写法。这种方法实现简单,而且能随时保持主存数据的正确性;但可能增加多次不必要的主存写入,会降低存取速度。② 只修改 Cache 单元,并用标志将该块加以注明,直到该块从 Cache 中替换出来时才一次性写入主存,称为回写法。这种方法操作速度快,但因主存中的字块未经随时修改而有可能出错。

Page 159: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.5.2 主存与 Cache 的地址映射

1 .直接映射

Page 160: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .全相联映射

Page 161: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .组相联映射

Page 162: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.5.3 替换算法

1 .最不经常使用 (LFU)算法LFU( Least-frequently Used )算法认为应将一段时间内被访问次数最少的那块从 Cache 中置换出去。2 .近期最少使用 (LRU)算法LRU( Least-recently Used )算法将近期内长久未被访问过的 Cache块置换出去。3 .随机替换最简单的替换算法是随机方法。随机法完全不管Cache块过去、现在及将来的使用情况,简单地根据一个随机数,选择一块替换掉。

Page 163: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.5.4 Pentium PC 机的 Cache

Pentium PC 机采用两级 Cache 结构。集成在 CPU 内的 l级 Cache(L1) ,其容量是 16KB ,采用 2 路(每组 2块)组相联映射方式,每块是 32B 。安装在主板上的 2级 Cache(L2) ,其容量是 512KB ,也采用 2 路组相联映射方式,每块可以是 32B、 64B或128B 。

Page 164: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.6 虚拟存储器

5.6.1 虚拟存储器的基本概念

① 把程序中最近常用的部分驻留在高速的存储器中。② 一旦这部分变得不常用了,把它们送回到低速的存储器中。③ 这种换入、换出是由硬件或操作系统完成的,对用户是透明的。④ 力图使存储系统的性能接近高速存储器,价格接近低速存储器。

Page 165: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.6.2 页式虚拟存储器

实地址

虚地址

页表地址

页表起始地址

页表基址寄存器

实页号 1

实页号 页内地址

虚页号 页内地址 页 表

……

……

Page 166: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.6.3 段式虚拟存储器

段表基址寄存

器 段表(在主存中) 虚地址

实地址

段表地址

段表起始地

主存地址

段号 页内地址

段号 段起址 段长 装入位

0 2000H 2KB 1

1 1000H 1KB 0

2 3000H 3KB 1

3 5000H 6KB 1

4 4000H 2KB 0

5 6050H 4KB 0

Page 167: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5.6.4 段页式虚拟存储器

为充分发挥段式和页式虚拟存储器各自的优点,可把两者结合起来,形成“段页式虚拟存储器”的方式。即每个程序按模块分段,每段再划分为页,页面大小与实存页面相同,虚地址的格式包括段号、页号和内地址 3 部分。实地址则只有页号和页内地址。虚存与实存之间信息调度以页为基本传送单位。每个程序有一张段表,每段对应有一张页表。 CPU 访问时,由段表指出每段对应的页表的起始地址,而每一段的页表可指出该段的虚页在实存空间的存放位置 ( 实页号 ) ,最后与页内地址拼接,即可确定 CPU 要访问的信息的实存地址。

Page 168: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 6 章 输入 / 输出接口与 总线技术6.1 接口技术基本概念6.2 输入/输出传送方式6.3 I/O端口地址分配与 地址译码6.4 I/O端口地址译码与 读写控制6.5 微机的总线

Page 169: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.1 接口技术基本概念

Page 170: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.1.1 接口的必要性( 1 )如果仍由 CPU直接管理外设,则会使 CPU完全陷入与外设打交道的沉重负担之中,从而大大降低了 CPU的效率。( 2 ) CPU与外设两者的信号线不兼容,在信号线功能定义、逻辑定义和时序关系上都不一致。( 3 ) CPU与外设的工作速度不兼容, CPU速度高,外设速度低。( 4 )若外部设备直接由 CPU控制,也会使外设的硬件结构依赖于 CPU,对外设本身的发展不利。

Page 171: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.1.2 接口的功能1 .地址译码和设备选择功能系统中一般带有多种外设,一种外设也可能有多个 I/O 接口,由于 CPU 和若干个 I/O 接口均挂在同一总线上,而接口的另一端连接外围设备, CPU 与外设之间的数据传送是经I/O 接口通过数据总线进行的。2 .信息的输入与输出接口能够根据 CPU发来的读 /写控制信号决定当前进行的是输入操作还是输出操作,并且能据此从总线上接收从CPU送来的数据和控制信息并传送给相应外设,或者将外设的数据或状态信息由接口送到总线上供 CPU读入并处理。3 .信号转换功能信号转换功能主要有两种,其一是在串行信息传送系统中,接口要把 CPU输出的并行数据转换成串行格式输出;其二是把数字信号转换成模拟信号,或者把模拟信号转换成数字信号。

Page 172: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .对外设的控制和监测功能接口电路能够接收 CPU送来的命令字或控制信号,实施对外部设备的控制与管理。

5 .中断或 DMA管理功能在一些实时性要求较高的微机应用系统中,为了满足实时性以及主机与外设并行工作的要求,需要采用中断传送的方式;而在一些高速的数据采集或传输系统中,为了提高数据的传送速率,有时还必须采用 DMA传送方式,这就要求相应的接口电路有产生中断请求和 DMA请求的能力以及中断和 DMA管理的能力。

Page 173: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6 .可编程功能现在的接口电路芯片大多数都是可编程的,因此就有可能在不改变硬件的情况下,只要修改接口驱动程序就可以改变接口的工作方式,从而提高接口的灵活性和可扩充性,使接口向智能化方向发展。

7 .错误检测功能在接口设计中,尤其是在数据通信接口电路的设计时常要考虑对错误的检测问题。目前多数可编程接口芯片一般能检测两类错误,其一是传输错误,这类错误是由传输线路上的噪声干扰所致;其二是溢出错误,这类错误是由于传输速率和接收或发送速率不匹配造成的。

Page 174: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.1.3 CPU与 I/O 设备之间的接口信息1 .数据信息( 1 )数字量。通常以 8 位或 16 位的二进制数以及 ASCII 码的形式传输,主要指由键盘、 CD-ROM光盘等输入的信息或向打印机、 CRT显示器、绘图仪等输出的信息,以及从软、硬盘写入、读出的信息。( 2 )模拟量。模拟的电压、电流或者非电量。当计算机用于控制时,大量的现场信息经过传感器把非电量的自然信息转换成模拟量的电信息,再由 A/D 变换器转换后输入计算机。( 3 )开关量。用“ 0” 、“ 1” 来表示两种状态。

Page 175: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

CPU I/O

装置

状态

数据

控制

接口电路 端口地址

I/O端口 1

I/O端口 2

I/O端口 3

数据

IORQ

RD WR

Page 176: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .状态信息( Status)

CPU 在传送数据信息之前,需要先了解外设的当前状态,这些状态信息是外设通过接口送往 CPU 的。对于输入设备来说,常用准备好( READY )信号来表明待输入的数据是否准备就绪,如为就绪状态,则 CPU 可以接收外设数据;否则 CPU 需要等待。对于输出设备来说,则常用忙( BUSY )信号或响应信号( ACK )表示输出设备是否处于空闲状态,如为空闲状态,则可接收 CPU 送来的信息;否则 CPU 需要等待。

Page 177: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .控制信息( Control)

控制信息是 CPU 通过接口传送给外设的, CPU 通过发送控制信息控制外设的工作。如控制输入 /输出装置或接口启动或停止等等就是常见的控制信息。

Page 178: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.1.4 I/O 端口的编址方式

1 .统一编址方式

这种方式是从存储空间划出一部分地址空间给 I/O 设备,把 I/O 接口中的端口当做存储器单元一样进行访问,不设置专门的 I/O 指令。凡对存储器可以使用的指令均可用于端口。

Page 179: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .独立编址方式

这种方式是对接口中的端口单独编址而不占用存储空间,使用专门的 I/O指令对端口进行操作,大型计算机通常采用这种方式,如 INTEL公司的8086/80X86和 Zilog公司的 Z80/Z8000 等系列微处理器就是采用这种I/O编址方式。

Page 180: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.2 输入 / 输出传送方式

6.2.1 无条件传送方式

外设数据

AB

三 态 缓 冲 器

地 址 译 码 器

锁 存 器

DB

Y0 IOR

Yi

Yj

IOW

去外设

≥ 1 ≥ 1

Page 181: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.2.2 查询传送方式

1 .查询式输入

Page 182: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .查询式输出

(a)程序流程 (b)硬件接口

输出数据

BUSY? Y

输入状态信息

输出 装置

存 器

数据

三态 缓冲器 (1位)

地址 译码器

+5V

IOW

DB

D7

IOR

AB D Q

ACK

≥ 1

≥ 1

准备输出数据

BUSY Y0

Yi

Page 183: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.2.3 中断传送方式

Page 184: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.2.4 直接存储器存取传送方式

Page 185: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.3 I/O端口地址分配与地址译码

6.3.1 主板上的 I/O 接口芯片

这些芯片大多都是可编程的大规模集成电路,完成相应的接口操作,如定时器 / 计数器、中断控制器、并行接口、 DMA 控制器以及键盘控制器等。在 PC/AT微机中,这些接口是由8253、 8259、 8237A、 8255 等芯片组成。但随着 PLD技术的发展,目前 PC 机系统主板上的所有 I/O 接口功能已集成在一片或几片大规模集成电路芯片中。

Page 186: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.3.2 扩展槽上的 I/O 接口控制卡

( 1 )凡是被系统配置占用了的端口地址一律不能使用。( 2 )从原则上讲,未被系统占用的地址用户都可以使用,但对计算机厂家申明保留的地址,不要使用,以免发生 I/O端口地址重叠和冲突造成所设计的产品与系统不兼容。( 3 )通常,用户可使用 300H~ 31FH ,这是 PC 系列微机留做实验卡用的。在用户可用的 I/O 地址范围内,为了避免与其他用户开发的接口控制卡发生地址冲突,最好采用地址开关。

Page 187: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.4 I/O端口地址译码与读写控制

6.4.1 I/O地址译码方法

端口地址译码是接口的基本功能之一。 CPU在执行 IN或 OUT 指令时,向地址总线发送外设接口的端口地址,端口地址译码电路应能产生相应的端口选通信号。通常外设接口的端口地址线分为两部分进行译码:一部分是高位地址线与 CPU 的控制信号组合,经译码电路产生 I/O 接口芯片的片选信号,实现片间寻址;另一部分是低位地址线直接连到 I/O 接口芯片,实现 I/O 接口芯片的片内寻址,即访问片内的寄存器。

Page 188: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.4.2 I/O地址译码电路的几种方式

1 .利用门电路进行地址译码

Page 189: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .采用译码器电路进行地址译码

(a)全地址译码电实例

A0

A1

A2

A

B

C AEN

A3 A4

A5

A7

A6

A8 A9

G2

G1

G3

Y7

Y6

Y5

Y4

Y3

Y2

Y1

Y0

74LS138

347H

346H

345H

344H

343H

342H

341H

340H

A5

A6

A7

A8

A9

IOW

A

B

C

G2

G1

G3

Y7

Y6

Y5

Y4

Y3

Y2

Y1

Y0

74LS138

≥ 1

≥ 1

(b)部分地址译码电路实例

(写 NMI屏蔽寄相存器)

WRTNMIREG

(写 DMA页面寄相存器)

WRTDMAPG

PPICS

T/CCS

INITRCS

DMACS AEN 1

1

1

1

1

Page 190: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .开关式可选地址译码

+5V

DIP

+5V

AEN

A3

A4

A5

A6

A7

A8

A9

Q7

Q6

Q5

Q4

Q3

Q2

Q1

Q0

P=Q

P6

P5

P4

P3

P7

P2

P1

P0

LS688

A2

A1

A0

IOR

IOW +5V

74LS138

A

B

C

A

B

C

G1A

G1B

G2

G1A

G1B

G2

74LS138

Y7

Y6

Y5

Y4

Y3

Y2

Y0

Y1

Y7

Y6

Y5

Y4

Y3

Y2

Y0

Y1

输出端口片选

输入端口片选

Page 191: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.5 微机的总线

Page 192: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1 .片内总线( Host Bus)集成电路芯片内部各功能元件之间的连接,是CPU芯片内各功能单元电路之间传输信息和进行连接用的总线,有单总线和多总线之分。2 .局部总线也称为元件级总线、片间总线或板(卡)内总线,是微型计算机主板上实现 CPU 与各组成芯片间传输信息和进行连接的总线。3 .系统总线也称为内总线,是微型计算机系统内部的插件板(卡)与插件板间,即各模块之间传输信息和进行连接的总线,各模块分时共享总线。4 .通信总线也称为外总线或接口标准,是微型计算机系统相互之间,或微机系统与其他电子系统之间实现通信与连接的总线。

Page 193: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6.5.2 总线标准1 .系统总线

(1) PC 总线 B A GND

(O)RESET DRV +5Vdc

(I) IRQ2 5Vdc

(I) DRQ2 12Vdc

RESERVED

+12Vdc GND

(I/O)MEMW

(I/O)MEMR (I/O)IOW (I/O)IOR

(O) DACK3 (I) DRQ3

(O) DACK1 (I) DRQ1

(O) DACK0 (O)CLK

(I) IRQ7 (I) IRQ6 (I) IRQ5 (I) IRQ4 (I) IRQ3

(O) DACK2 (O) T/C

(O) ALE +5Vdc

(O) OSC

GND

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

I/O CH CK (I)

D7 (I/O) D6 (I/O) D5 (I/O) D4 (I/O) D3 (I/O) D2 (I/O) D1 (I/O) D0 (I/O) I/O CH RDY (I) AEN (O) A19 (O) A18 (O) A17 (O) A16 (O) A15 (O) A14 (O) A13 (O) A12 (O) A11 (O) A10 (O) A9 (O) A8 (O) A7 (O)

A6 (O) A5 (O) A4 (O) A3 (O) A2 (O) A1 (O) A0 (O)

(a) PC总线

B A GND

(O)RESET DRV +5Vdc

(I) IRQ2 5Vdc

(I) DRQ2 12Vdc

(I) OWS

+12Vdc GND

(I/O) SMEMW

(I/O) SMEMR (I/O)IOW (I/O)IOR

(O) DACK3 (I) DRQ3

(O) DACK1 (I) DRQ1

(O) REFRESH (O)CLK

(I) IRQ7 (I) IRQ6 (I) IRQ5 (I) IRQ4 (I) IRQ3

(O) DACK2 (O) T/C

(O) BALE +5Vdc

(O) OSC

GND

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

I/O CH CK (I)

SD7 (I/O) SD6 (I/O) SD5 (I/O) SD4 (I/O) SD3 (I/O) SD2 (I/O) SD1 (I/O) SD0 (I/O) I/O CH RDY (I) AEN (O) SA19 (O) SA18 (O) SA17 (O) SA16 (O) SA15 (O) SA14 (O) SA13 (O) SA12 (O) SA11 (O) SA10 (O) SA9 (O) SA8 (O) SA7 (O) SA6 (O) SA5 (O) SA4 (O) SA3 (O) SA2 (O) SA1 (O) SA0 (O)

(b) ISA总线与 PC总线兼容部分

Page 194: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) ISA 总线

D面

C面 36线扩展槽 A面

B面

机箱后挡板

PC总线 62线 I/O槽

ISA( Industry Standard Architecture )是16 位工业标准总线,向上兼容 PC/XT 总线,在 PC/XT 总线 62 个插座信号的基础上,再扩充另一个 36 个信号的插座构成 ISA 总线。

Page 195: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(3) EISA 总线

EISA( Extension Industry Standard Architecture )是在 ISA 总线的基础上发展起来的 32 位总线。该总线定义 32位地址线、 32 位数据线,以及其他控制信号线、电源线、地线等共 196 个节点。总线传输速率达 33MB/s 。

Page 196: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(4) PCMCIA 总线

随着便携式计算机系统的广泛应用,对便携式扩展设备的需求越来越迫切。 1989年成立了 PCMCIA( Personal Computer Memory Card International Association )协会,并制订了 PCMCIA 总线标准。刚开始时, PCMCIA标准主要针对内存卡,后来逐渐变成面向微机系统主板的各种扩展卡,而成为“ PC卡”的国际标准。

Page 197: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(5) STD 总线

STD 总线是国际上流行的一种用于工业控制的标准微机总线,于 1987年被批准为 IEEE-961标准。 STD总线采用 56 线双列插座,是 8 位微处理器总线标准,可使用各种型号的 CPU 。

Page 198: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .局部总线(1) PCI

外围部件互连总线 PCI( Peripheral Component Interconnect ),是 1992年以 Intel公司为首的集团设计的一种先进的高性能局部总线。 PCI支持突发读写和并发工作方式,并支持多个主控设备,

Page 199: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) PCIE

① PCI Express 的串行连接 ; ② PCI Express的 8b/10b编码 ;③ 数据的分层分包协议和处理 ;

④ PCI Express 的分类和带宽 .

Page 200: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .通信总线

(1) USB 通用串行总线

USB( Universal Serial Bus )是由DEC、 IBM、 Intel、Microsoft 以及 NEC等 7家高技术企业制定的串行接口总线标准。

Page 201: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) IEEE1394 高性能串行总线

IEEE1394是 Apple公司于 1993年首先提出,用以取代 SCSI 的高速串行总线“ Fire Wire” ,后经 IEEE协会于 1995年 12月正式接纳成为一个工业标准,全称为 IEEE1394 高性能串行总线标准( IEEE1394 High Performance Serial BUS Standard )。

Page 202: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(3) IEEE1394和 USB 的比较

① 目前 IEEE1394 的传输速度为 100~400Mb/s ,因此它可连接高速设备;而 USB受到12Mb/s传输速度的限制,只能连接低速设备。② IEEE1394 的拓扑结构中,不需要集线器( Hub )就可连接 63台设备,并且可以由桥( Bridge )再将一些功能独立的子模块连接起来。IEEE1394 并不强制一定要用 PC 机控制这些设备,即这些设备可以独立工作。而在 USB 的拓扑结构中,必须通过 Hub来实现多层连接,每个 Hub有7 个连接头, USB整个系统中最多可连接 127台机器,而且一定要有 USB 主机的存在,作为总线主控。③ IEEE1394 在其外部设备增减时,会自动重新配置,其中包括系统短暂的等待状态;而 USB则以Hub来判明其连接设备的增减,因此可以减少USB 系统动态重设的状况。④ USB和 IEEE1394 在功能和设计思想方面有许多相似的地方,主要是它们的传输速率不同。

Page 203: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 7 章 并行接口

7.1 概述7.2 可编程并行接口芯片7.3 8255A 应用举例

Page 204: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7.1 概述( 1 )并行接口是在多根数据线上,以数据字节为单位与输入 / 输出设备或被控对象传送信息的。( 2 )并行口适用于近距离传送的场合。由于各种I/O 设备和被控对象多为并行数据线连接, CPU 用并行口来组成应用系统很方便,故使用十分普遍。( 3 )并行传送的信息,不要求固定的格式,这与串行传送的信息有数据格式的要求不同。( 4 )从并行接口的电路结构来看,并行口有硬线连接接口和可编程接口之分。硬线连接接口的工作方式及功能用硬线连接来设定,用软件编程序的方法不能加以改变。如果接口的工作方式及功能可以用软件编程序的方法加以改变,则就叫做可编程接口。

Page 205: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7.2 可编程并行接口芯片 8255A

7.2.1 Intel 8255A 的基本特性( 1 )具有两个 8 位( A 口和 B 口)和两个 4 位( C 口高 / 低四位)并行输入 /输出端口, C 口可按位操作。( 2 )具有三种工作方式: 方式 0 —— 基本输入 /输出( A、 B、 C 口均有);方式 1 —— 选通输入 /输出( A、 B 口具有);方式 2 —— 双向选通输入 /输出( A 口具有);( 3 )可用程序设置各种工作方式并查询各种工作状态;( 4 )在方式 1 和方式 2 时, C 口作 A 口、 B 口的联络线;( 5 )内部有控制寄存器、状态寄存器和数据寄存器供CPU 访问;( 6 )有中断申请能力,但无中断管理能力。

Page 206: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7.2.2 8255A 的外部引线与内部结构

1 40 PA3 PA2 PA1 PA0 RD CS

GND A1 A0

PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 20 21

8255A-5

PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7

VCC PB7 PB6 PB6 PB4 PB3

Page 207: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1 .外部引线( 1 )面向系统总线的信号线

D7~ D0 :双向数据线。 CPU 通过它向 8255A发送命令、数据; 8255A 通过它向 CPU回送状态、数据。 CS :选片信号线,该信号低电平有效,由系统地址总线经 I/O 地址译码器产生。A1, A0 :芯片内部端口地址信号线,与系统地址总线低位相连。该信号用来寻址 8255A 内部寄存器。RD :读信号线,该信号低电平有效。WR :写信号线,该信号低电平有效。 CPU 通过执行OUT 指令,发写信号,将命令代码或数据写入 8255A 。RESET :复位信号线,该信号高电平有效。

Page 208: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 2 )面向 I/O 设备的信号线

PA0~ PA7 :端口 A 的输入 /输出线。

PB0~ PB7 :端口 B 的输入 /输出线。

PC0~ PC7 :端口 C 的输入 /输出线。

Page 209: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 8255A的内部结构

B组控制

读/写

控制

逻辑

B组 C口低位 (4位)

B组 B口 (8位)

A组 C口高位 (4位)

A组 A口 (8位)

A组控制

数据总线缓冲器

PB7~PB0

PC3~PC0

PC7~PC4

PA7~PA0

D7~D0

RD WR

A0 A1

CS RESET

Page 210: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 1 )数据总线缓冲器。这是一个三态双向 8 位缓冲器,它是 8255A与CPU 系统数据总线的接口。( 2 )读写控制逻辑。读写控制逻辑由读信号、写信号、选片信号以及端口选择信号 A1 A0 等组成。( 3 )数据端口 A 、 B 、 C 。8255A 包括 3个 8 位输入 /输出端口。每个端口都有 1 个数据输入寄存器和 1 个数据输出寄存器。( 4 ) A 组和 B 组控制电路。控制 A、 B和 C三个端口的工作方式, A 组控制 A 口和 C 口的上半部( PC7~ PC4 )、 B 组控制 B 口和 C 口的下半部( PC3~ PC0 )的工作方式和输入 /输出。

Page 211: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7.2.3 8255A 的编程命令

1 .工作方式控制字

作用:指定 3 个并行端口( PA、 PB、 PC )是作输入还是作输出端口以及选择 8255 的工作方式。

2 . PC口按位置位 / 复位控制字

作用:指定 PC 口的某一位输出高电平还是低电平。

Page 212: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7.2.4 8255A 的工作方式

1 . 8255A的方式 0

方式 0 的特点:( 1 )方式 0 是一种基本输入 /输出工作方式。方式 0下 8255A的 24条 I/O 线全部由用户分配功能,不设置专用联络信号。( 2 )方式 0 下, 8255A 分成彼此独立的两个 8 位和两个 4 位并行口,这 4 个并行口都能被指定作为输入或者作为输出用,共有 16 种不同的使用组态。( 3 )端口信号线之间无固定的时序关系,由用户根据数据传送的要求决定输入 /输出的操作过程。方式 0没有设置固定的状态字。( 4 )单向 I/O ,一次初始化只能指定某一端口作输入或作输出,不能使该端口同时既作输入又作输出。

Page 213: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 8255A的方式 1

(1) 方式 1 的特点① 方式 1 是一种选通输入 /输出方式,在面向 I/O 设备的 24 根线中,设置专用的中断请求和联络信号线。因此,这种方式通常用于查询(条件)传送或中断传送,数据的输入 /输出都有锁存能力。

② PA和 PB 为数据口,而 PC 口的大部分引脚分配作联络信号用,用户对这些引脚不能再指定作其他用途。③ 各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。④ 输入 /输出操作产生确定的状态字,这些状态信息可作为查询或中断请求之用。

(2) 方式 1 下输入 / 输出信号线的分配及其时序关系方式 1下 8255A 引脚的功能分配和方式 0 不同在于方式 1 分配了专用联络线和中断线,并且这些专用线在输入和输出时各不相同, PA 口和 PB 口的也不相同。

Page 214: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 . 8255A的方式 2

(1) 方式 2 的特点 ① PA 口为双向选通输入 /输出,一次初始化可

指定 PA 口既作输入口又作输出口。这一点与方式 0 及方式 1 下,一次初始化只能指定为输入口或为输出口的单向传送不同。② 设置专用的联络信号线和中断请求信号线,因此,方式 2 下可采用中断方式和查询方式与CPU交换数据。③ 各联络线间的时序关系和状态字基本是方式1 下在输入和输出两种操作的组合。

Page 215: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 方式 2 下引脚定义及时序

① 联络信号的定义 ② 工作时序③ 方式 2 的状态字

7.3 8255A 应用举例

Page 216: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 8 章 中断与 DMA 技术

8.1 中断的基本概念8.2 PC系列机的中断结构8.3 8259A可编程中断控制器8.4 8259A在微机系统中的应用8.5 可编程DMA控制器

Page 217: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.1 中断的基本概念

8.1.1 中断

( 1 )外部设备请求中断。一般的外部设备如键盘、磁盘驱动器、磁带机、打印机等在工作告一段落后发出中断请求,要求 CPU 为它服务。( 2 )实时时钟请求中断。例如定时器 / 计数器,先由 CPU发出指令,让时钟电路开始计时工作,待规定的时间到,时钟电路发出中断申请, CPU转入中断服务程序进行中断处理。( 3 )故障请求中断。当出现电源掉电、存储出错或溢出等故障时,发出中断请求, CPU 转去执行故障处理程序。

Page 218: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.1.2 中断处理过程

1 .中断请求

( 1 )外部设备工作已经告一段落。例如输入设备只有在启动后,将要输入的数据送到接口电路的数据寄存器(即准备好要输入的数据)之后,才可以向 CPU发出中断请求。( 2 )系统允许该外设发出中断请求。如果系统不允许该外设发出中断请求,可以将这个外设的请求屏蔽。当这个外设中断请求被屏蔽,虽然这个外设准备工作已经完成,也不能发出中断请求。

Page 219: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .中断排队

中断申请是随机的,有时会出现多个中断源同时提出中断申请,但 CPU 每次只能响应一个中断源的请求,那么究竟先响应哪一个中断源的请求呢?这就必须根据各中断源工作性质的轻重缓急,预先安排一个优先级顺序,当多个中断源同时申请中断时,即按此优先级顺序进行排队,等候CPU 处理。一般是把最紧迫和速度最高的设备排在最优先的位置上。 CPU 首先响应优先级别最高的中断源,当中断处理完毕,再响应级别低的中断申请。

Page 220: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .中断响应

经中断排队后, CPU收到一个当前申请中断的中断源中优先级别最高的中断请求信号,如果允许 CPU响应中断( IF=1 ),在执行完一条指令后,就中止执行当前程序,而响应中断申请。此时首先由硬件电路保护断点,即将当前正在执行的程序的段地址( CS )和偏移地址( IP )以及标志寄存器( FR )压入堆栈;然后关闭CPU 内的允许中断触发器 IF(可屏蔽中断时);接下来就是寻找中断服务程序入口地址。

Page 221: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .中断处理

中断响应后,进入中断处理,即执行中断服务程序。在中断服务程序中,首先要保护现场,把中断服务程序中所要使用到的寄存器内容保护起来,如将它们的内容压入堆栈,然后才进行与此次中断有关的相应服务处理。处理完毕要恢复现场,即恢复中断前各寄存器的内容。如果在中断服务程序中允许嵌套(可屏蔽中断方式时),还应用STI 指令将 IF=1(即开中断)。

Page 222: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .中断返回

通常中断服务程序的最后一条指令是一条中断返回指令。当 CPU 执行这条指令时,把原来程序被中断的断点地址从堆栈中弹回 CS和 IP 中,原来的 FR弹回 FR 。这样,被中断的程序就可以从断点处继续执行下去。 CPU 从中断服务程序又回到了被中断的主程序。

Page 223: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.2 PC 系列机的中断结构

非屏蔽中断请求

8086/8088中断逻辑

NMI

INTR INT

8259 IR0 IR1

INT 3 断点

INT n INT 0

(OF=1)溢出 除法 出错

单步 TF=1

8级可屏蔽 中断请求输入

IR7

……

Page 224: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.2.1 内部中断

( 1) CPU 执行 INT n 指令,产生中断矢量号为n 的中断。( 2) CPU 执行 INT 3 指令而产生的中断,称为断点中断。( 3 )当 CPU 内部溢出标志位 OF被置 1 ,执行一条溢出中断指令 INTO ,会产生 4 号中断。( 4 )除法出错中断。( 5 )单步中断。

Page 225: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.2.2 外部中断

1 .非屏蔽中断 NMI

NMI 是边沿有效触发的输入信号,只要输入脉冲有效宽度(高电平持续时间)大于 2 个时钟周期,就能被 8086/8088锁存。对 NMI请求的响应不受中断标志位的控制,即不管 IF 的状态如何,只要 NMI 信号有效, CPU 在当前指令执行结束后,立即响应非屏蔽中断请求。它的优先级别高于 INTR。 NMI 引起 2 号矢量中断,这是由芯片内部设置的,所以 CPU 不需要执行中断响应总线周期去读取矢量号码。 NMI 中断一般用来处理紧急事件。

Page 226: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .可屏蔽中断 INTR

INTR由 8259A 可编程中断控制器的 INT输出信号驱动。 8259A的 8级中断请求输入端 IR0~IR7依次接到需要请求中断的外部设备。这些外部设备请求中断时,发出的请求信号进入8259A的 IR端。由 8259A 根据优先权和屏蔽状态决定是否发出 INT 信号到 CPU的 INTR端 .

Page 227: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.2.3 中断矢量和中断矢量表

8086/8088 可以处理 256 种矢量中断。对每种中断都指定一个中断矢量号代码,从 0~ 255 每一种中断矢量号代码都有一个中断服务程序相对应。中断服务程序存放在存储区域内,而中断服务程序的入口地址存在内存储器的中断矢量表内。当 CPU 处理中断时,就需要指向中断服务程序入口地址。 8086/8088 是以中断矢量号为索引号,从中断矢量表中取得中断服务程序入口地址。

Page 228: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.3 8259A 可编程中断控制器

8.3.1 8259A 可编程中断控制器的特点

( 1 )每片芯片具有 8级优先权控制,可连接 8 个中断源;( 2 )通过级联可扩展至 64级优先权控制,最多可连接 64 个中断源;( 3 )每一级中断均可屏蔽或允许;( 4 )在中断响应周期,可提供相应的中断矢量号;( 5 )具有固定优先权、循环优先权、完全嵌套、特殊嵌套、一般屏蔽、特殊屏蔽、自动结束和非自动结束中断等多种工作方式,可通过编程进行选择。

Page 229: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.3.2 8259A 的框图和引脚1 . 8259A框图

D7~D0

SP/EN

CAS0 CAS1 CAS2

数据总线缓冲器

读/写 控制逻辑

级连缓冲比较器

读/写 控制逻辑 读/写 控制逻辑 读/写 控制 逻辑

RD WR A0

CS

控制逻辑

中断 服务 寄存器

ISR

优先权 判别 电路

中断 请求 寄存器

IRR

中断屏蔽寄存器 IMR

INTA INT

内部总线

IR0

IR1

IR2 IR3

IR4 IR5

IR6 IR7

Page 230: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 1 )中断请求寄存器 IRR( 2 )中断屏蔽寄存器 IMR( 3 )服务寄存器 ISR( 4 )优先权判决电路( 5 )控制逻辑( 6 )数据总线缓冲器( 7 )读 /写控制逻辑( 8 )级联缓冲器 /比较器

Page 231: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 8259A的引脚

VCC A0 INTA

IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0

CAS2 15 14

CAS0 CAS1 GND

8259A

28 1 CS WR RD D7 D6 D5 D4 D3 D2 D1 D0

INT

SP / EN

Page 232: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.3.3 中断触发方式和中断响应过程

( 1 )当它的一条或多条中断请求线( IR0~ IR7 )变为高电平时,它就使中断请求锁存器 IRR 相应的位置 1 。( 2) 8259A 分析这些请求,如果中断屏蔽寄存器相应的IMR 位不被屏蔽、请求中断的级别高于正在服务的中断程序的级别等条件都满足了,它就向 CPU发出高电平有效信号 INT ,请求中断服务。( 3 )在当前一条指令执行完毕,且 IF=1 时, CPU响应中断请求,并发出 2 个中断响应信号。( 4) 8259A 接到来自 CPU 的第 1 个信号,把 ISR 中允许中断的最高优先级的相应位置位,而把 IRR 中对应的位清 0 。( 5) 8259A 接到第 2 个信号时,送出中断矢量码, CPU读取该矢量码。若是自动 EOI( AEOI )方式,在这个信号结束时,芯片硬件电路自动使 ISR 相应位复位;如果是其他方式,则由中断服务程序发出的 EOI命令才能使 ISR复位。

Page 233: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.3.4 8259A 的编程控制

1 .初始化命令字 ICW

( 1 )清除中断屏蔽寄存器 IMR ;( 2 )设置以 IR7 为最低优先级的完全嵌套方式,固定中断优先权排序;( 3 )将从 8259A 设备标志码 ID 置成 7 ;( 4 )清除特殊屏蔽方式;( 5 )设置读 IRR 方式。

Page 234: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .操作控制字 OCW

当按照一定的顺序对 8259A 预置完毕后, 8259A就进入设定的工作状态,准备好接收由 IR输入的中断请求信号,按固定优先级完全嵌套来响应和管理中断请求。为了在系统运行中,进一步对 8259A 管理中断的方式进行修改和设定,可写入操作控制字。 8259A 共有 3个操作控制字: OCW1、 OCW2和 OCW3 。

Page 235: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.3.5 8259A 的工作方式1 .查询方式

8259A向用户提供了两种中断方式:矢量中断和查询中断。当系统的中断源很多,超过了 64 个时,则 8259A片子可工作在查询方式。此时,在 8259A 的编程中,使 OCW3的 D2位 P 置为 1 。程序中令CPU 关中断,用查询对外设进行服务。

Page 236: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .中断屏蔽

8259A的 8 个中断请求线的每一条都可根据需要单独屏蔽, OCW1写入主屏蔽字寄存器,它的每一位可对相应的请求线实现屏蔽。

Page 237: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .缓冲模式

当 8259A 在一个大的系统中使用,且 8259A要求级联,则要求数据总线有总线驱动缓冲器,也就要求有一个缓冲器的允许信号。当编程规定使 8259A 工作在缓冲模式,则 8259A送出一个允许信号,每当 8259A 的数据总线输出是允许的,输出变为有效。以上的工作方式是由 ICW4 决定的。

Page 238: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .中断嵌套模式

( 1 )完全嵌套模式当工作在完全嵌套模式时,初始化编程以后,中断优先权是固定的,且 IR0优先权最高, IR7优先权最低(除非用优先权循环的办法来改变)。( 2 )特殊完全嵌套模式若在一个大的系统中, 8259A 用在级联情况下,就需要采用特殊的完全嵌套模式。

Page 239: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .中断优先权循环

( 1 )自动循环在某些应用情况下,若干个中断源有相等的优先权。因此,当某一个中断源服务完以后,它的优先权应该变成最低的。这样,某个中断源的请求必须等待,在最坏情况下,必须等待其他 7 个源都服务一次以后才能再服务。 ( 2 )指定循环方式在指定循环方式,可用程序来改变优先权。可以用 OCW2 来设置最低优先权的源,则别的输入线的优先权也就相应固定了。例如设置 IR5为最低优先权,则 IR6 的优先权就变为最高的了。

Page 240: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

6 .中断结束命令

( 1 )自动中断结束模式 AEOI可以在 ICW4 中规定工作在这种模式,则在最后一个中断响应周期的信号的后沿 8259A 自动地使中断源在 ISR 中的相应位复位。这种方式显然只能用于不要求中断嵌套的情况下。( 2 )非自动中断结束方式 EOI在这种工作方式下,当中断服务完成从中断服务程序返回之前,必须输送中断结束( EOI )命令。若是工作在 8259A级联的情况下,则必须送两个 EOI命令,一个送给从 8259A ,另一个送给主 8259A 。

Page 241: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

7 .读 8259A的状态

8259A 内部几个寄存器的状态,可以读至 CPU中,以供用户了解 8259A 的工作状况。在读命令之前,输出一个 OCW3 ,令其中 RR=1,RIS=0 ,则用读命令可以读入中断请求寄存器IRR 的状态,其中间包含着尚未被响应的中断源的情况。

Page 242: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8 . 8259A的级联

在一个系统中, 8259A 可以级联,一片主 8259A ,若干片从 8259A ,最多可以有 8片从 8259A ,把中断源扩展到 64个。

Page 243: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.4 8259A 在微机系统中的应用

Page 244: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.5 可编程 DMA控制器8.5.1 DMA传送过程及工作状态

( 1) DMA申请当 DMAC初始化后,外设若需 DMA传送时,即可通过请求信号线 DREQ向 DMAC 提出申请。( 2) DMA响应CPU 在每个总线周期结束时检测 HOLD 是否有效,当HOLD 有效且总线锁定信号 LOCK无效时, CPU响应请求。( 3) DMA传送DMAC 成系统主控者后,一方面通过 DACK 信号线回答提出 DMA申请的外设;另一方面分别向内存和被响应外设发送地址信息和读写信息,控制数据按初始化设定的要求通过 DB 直接进行传送(不经过 CPU )。( 4) DMA 结束当数据传送完后, DMAC 产生一个“过程结束”信号通知外设,外设随即撤销 DREQ 信号,进而引起HRQ、 HOLD和 HLDA、 DACK 信号无效。

Page 245: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.5.2 可编程 DMA控制器 8237A-5

1 . 8237A-5 DMA控制器的特点

( 1 )有 4 个独立的通道,可控制 4个 I/O 设备进行 DMA传送;( 2 )每个通道均有 64KB 寻址与计数能力(即地址线 16 根,计数器为 16 位);( 3 )可以用级联方式扩充更多的通道;( 4 )能在 I/O 设备与系统存储器以及系统存储器与存储器之间直接传送数据;( 5 )数据传送率可达 1.6MB/s(时钟频率为5MHz 时);( 6 )具有 3 种传送模式:单一、成组和查询,4 种传送类型: DMA读、 DMA写、存储器传存储器和校验。

Page 246: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 8237A-5的外部特性

20 21

8237A-5

1 40

GND

DREQ0

DREQ1

DREQ2

DREQ3

DACK3

DACK2

RESET

CLK

CS

HRQ

AEN

ADSTB

HLDA

READY

NC

MEMW

MEMR

IOW

IOR

DB7

DB6

DB5

DACK1

DACK0

DB4

DB3

DB2

DB1

DB0

VCC

A0

A1

A2

A3

EOP

A4

A5

A6

A7

Page 247: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 . 8237A内部寄存器及编程命令

Page 248: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 . DMA控制器的工作时序

Page 249: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

8.5.3 PC 机的 DMA 电路简介

1 .电路构成

Page 250: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . PC机 DMA控制器的 I/O地址

在 PC/AT的 DMA 控制器 DMA1和 DMA2中, DMA1与 PC/XT兼容,其端口地址也与IBM-PC/XT的 DMA端口地址相同,但在使用上略有差别。在 PC/XT 中通道 0 用于动态 RAM 的刷新,通道 2 为软盘 DMA服务,通道 3 为硬盘驱动器 DMA 所用,通道 1保留未用。而在 PC/AT 中除通道 2仍为软盘 DMA 所用外,其余通道均保留未用。

Page 251: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 . 8237A的初始化编程

① 为确保软件编程时不受外界硬件信号的影响,在编程开始时要通过命令寄存器发送命令禁止8237A 工作或向屏蔽寄存器发送屏蔽命令,将要编程的通道加以屏蔽。② 所有通道的方式字寄存器都要加载。当系统上电时,用硬件复位信号 RES 或软件复位(总清)命令,使所有内部寄存器,除屏蔽寄存器各通道屏蔽位置位外,其余均被清除。

③ 8237A芯片的检测。通常,在系统上电期间,要对 DMA芯片进行检测,只有在芯片检测通过后,方可继续 DMA初始化,实现 DMA传送。

Page 252: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 9 章 定时与计数技术

9.1 概述9.2 可编程定时器/计数器82539.3 定时器/计数器8253的 应用举例

Page 253: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

9.1 概述

微机系统中的定时,可分为两类:一类是计算机本身运行的时间基准——内部定时,因而使计算机每种操作都是按照严格的时间节拍执行的;另一类是外部设备实现某种功能时,在外设与 CPU 之间或外设与外设之间的时间配合——外部定时。

Page 254: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

9.2 可编程定时器 / 计数器 8253

1 .外部特性与内部逻辑

(1) 8253 的特点: ① 有 3 个独立的 16 位计数器;② 每个计数器均可按二进制或者BCD 码计数;③ 各计数器都有 6 种不同工作方式。

Page 255: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

V CC

W RRDCS

A 1

A 0

CLK 2

OUT2

GATE2

GATE1

OUT1

CLK 1

D 7

D 6

D 5

D 4

D 3

D 2

D 1

D 0

CLK 0

OUT0

GATE0

GND

1 24

8253

12 13

Page 256: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 内部逻辑结构

8

D0~7 数据总线 缓冲器 计数器 0

读/写逻辑

控制字 寄存器

计数器 1

计数器 2

CSWRRD

A0 A1

CLK0 GATE0 OUT0

CLK1 GATE1 OUT1

CLK2 GATE2 OUT2

Page 257: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .读写操作及编程命令

(1) 写操作——芯片初始化

芯片加电后,其工作方式是不确定的,为了正常工作,要对芯片进行初始化。初始化的工作有两点:一是向控制寄存器写入方式控制字,以选择计数器(三个中之一个),确定工作方式(六种方式之一),指定计数器计数初值的长度和装入顺序以及计数值的码制( BCD 码或二进制码);二是向已选定的计数器按方式控制字的要求写入计数初值。

Page 258: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 读当前计数值——锁存后读操作

在事件计数器的应用中,需要读出计数过程中的计数值,以便根据这个值做计数判断。为此, 8253 内部逻辑提供了将当前计数值锁存后读操作功能。具体作法是:先发一条锁存命令(即方式控制字中的 RL1 RL0 = 00 ),将当前计数值锁存到输出锁存器;然后,执行读操作,即可得到锁存器的内容。

Page 259: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(3) 读装入的计数值——直接读操作

8253 内部还提供了一种功能,使程序员能在不干扰实际计数过程的情况下,读出装入的计数值,这只需对选定的计数器发出 IN 指令即可。分两次读,第 1 次从计数寄存器读出装入计数值的低字节,第 2 次读出高字节。但要注意的是:为了保证能稳定地读出装入计数值,所选的计数器的工作方式必须能被 GATE 电平输入禁止或者能被禁止时钟输入的外部逻辑所禁止。

Page 260: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .工作方式及特点

(1) 方式 0—— 计数结束时中断

① 当向计数器写完计数值时,开始计数,相应的输出信号 OUT就开始变成低电平。当计数器减到零时, OUT 立即输出高电平。② 门控信号 GATE 为高电平时,计数器工作;当 GATE 为低电平时,计数器停止工作,其计数值保持不变。③ 在计数器工作期间,如果重新写入新的计数值,则计数器将按新写入的计数值重新工作。

Page 261: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹
Page 262: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 方式 1—— 程序可控单稳

方式 1 为可编程的单稳态工作方式。此方式设定后,输出 OUT就变成高电平;写入计数值后,计数器并不立即开始工作,直到门控信号 GATE 出现之后的一个时钟周期的下降沿,才开始工作,使输出 OUT 变成低电平。计数值回零后,输出变高。

Page 263: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(3) 方式 2——频率发生器

① 计数器计数期间,输出 OUT 为高电平,计数器回零后,输出为低电平,并自动重新装入原计数值,低电平维持一个时钟周期后,输出又恢复高电乎并重新作减法计数。② 在计数器工作期间,如果向此计数器写入新的计数值,则计数器仍按原计数值计数,直到计数器回零,并在输出一个时钟周期的低电平之后,才按新写入的计数值计数。③ 门控信号 GATE 为高电平时允许计数。若在计数期间,门控信号变为低电平,则计数器停止计数,待 GATE恢复高电平后,计数器将按原设定的计数值重新开始计数。

Page 264: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹
Page 265: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(4) 方式 3—— 方波频率发生器

① 工作在方式 3对 OUT 引脚输出的不是一个时钟周期的低电平,而是占空比为 1 1∶ 或近似 1 1∶ 的方波;当计数初值为偶数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平。② 当计数初值为奇数时,在前一半加 1 的计数过程中,输出为高电平,后一半减 1 的计数过程中为低电平。例如,若计数初值设为 5 ,则在前 3 个时钟周期中,引脚 OUT输出高电平,而在后 2 个时钟周期中则输出低电平。 8253 的方式 2 和方式 3 都是最为常用的工作方式。

Page 266: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

n=5

2

3

2 2

n=4

3 2

OUT

CLK

WR

OUT

WR

2

Page 267: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(5) 方式 4——软件触发

① 此方式设定后,输出 OUT就开始变成高电平;写完计数值后,计数器开始计数,计数完毕,计数回零结束时,输出变为低电平;低电平维持一个时钟周期后,输出又恢复高电平,但计数器不再计数,输出也一直保持高电平不变。② 门控信号 GATE 为高电平时,允许计数器工作;为低电平时,计数器停止计数。在其恢复高电平后,计数器又从原设定的计数值开始作减 1 计数。③ 计数器工作期间,若向计数器写入新的计数值,则不影响当前的计数状态,仅当当前计数值计完回零时,计数器才按新写入的计数值开始计数,一旦计数完毕,计数器将停止工作。

Page 268: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹
Page 269: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(6) 方式 5——硬件触发

① 在方式 5 下,写入计数初值后,计数器并不立即开始计数,而要由门控信号出现的上升沿启动计数。计数器计数回零后,将在输出一个时钟周期的低电平后恢复高电平。② 在计数过程中(或者计数结束后),如果门控再次出现上升沿,则计数器将从原设定的计数初值重新计数。其他特点基本与方式 4 相同。

Page 270: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

n=4

CLK

WRGATE OUT

GATE

OUT

5 4 3 2 1 0

5 4

5 4 3 2 1 0

Page 271: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(7) 6 种工作方式的比较

① 方式 0(计数结束中断)和方式 1(可控单稳)② 方式 2(频率发生器)和方式 3(方波发生器)③ 方式 4(软件触发延时选通)和方式 5(硬件触发延时选通)

Page 272: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

9.3 定时器 / 计数器 8253 的应用举例

1 . 8253在发声系统中的应用

Page 273: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 8253在数据采集系统中的应用

模拟量输入

时钟 f

k

8253

8253

+5V

PA0~7

PC

CPU

1

1 1

D0~7

ADC 0808

EOC IN

START

CLK0 GATE0 OUT0 CLK1

GATE1 OUT1 CLK2

GATE2 OUT2

Page 274: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 10 章 人机交互接口

10.1 键盘及其接口10.2 LED显示器接口10.3 CRT显示器10.4 打印机接口10.5 鼠标器接口

Page 275: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

10.1 键盘及其接口 5V

R=10k R

V

R

V

R

V

R

V

R

V

R

V

R

V

并行端口

并行端口

输入口

输出口

PA0

PA1

PA2

PA3

PB0

PB1

V PB2

PB3

V

Page 276: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

10.2 LED显示器接口

1 . LED显示器

a

b

c

d

e

f g

dp

a

b

c

d

e

f g

dp

e d GND dp

1 2 3 4 5

g f

e

b

c

g f GND a b

dp

+5V

10 9 8 7 6

a

d

c

Page 277: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .一位 LED显示器接口

一位 LED显示器接口很简单,只需在 8段 LED显示器与微处理器之间加一个 8 位锁存器即可, 8255A的 PA和 PB端口在工作方式 0 时,具有锁存功能,可以用来控制 8段 LED显示器的发光。图 10-3是 LED和 8255A 之间的连接电路框图,这是一个采用共阴极接法的显示器接口。为了显示某个字符,只需利用 OUT 指令将该字符对应的段码送到输出 PA端口( 40H )即可。

Page 278: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .多位 LED显示器接口

多位 8段 LED显示器当然也可以采用多个独立的并行输出端口来驱动。但是这种各位独立驱动的显示方式占用资源较多,例如, 8位 LED显示器就需要 8 个独立的输出端口来驱动。

Page 279: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

10.3 CRT显示器10.3.1 CRT显示器分类及显示原理

1 .单色显示器 MD

单色显示器仅有一种颜色(通常为绿色),分辨率为 720×350 ,每屏显示的字符数为80×25 ,支持 256 个字符代码的显示。它与单色适配器 MDA(Monochrome Display Adapter )配套使用。

Page 280: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .彩色显示器 CD

彩色显示器 CRT有 R(红)、 G(绿)、 B(蓝)三色电子枪,三色视频信号分别控制三原色的亮暗,可以显示多种颜色。彩色显示器按分辨率的不同可以分为彩色显示器( CD )、增强彩色显示器( ECD )、视频图形彩色显示器( VCD )。彩色显示器与彩色图形适配器 CGA( Color Graphic Adapter )配套使用,可以工作在字符 / 数字和图形两种方式,具有80×25黑白或彩色字符方式(高分辨率:640×200 )、 40×25黑白或彩色字符方式(低分辨率: 320×200 )。增强彩色显示器与增强图形适配器 EGA( Enhanced Graphic Adapter )配套使用,分辨率为 640×350 。

Page 281: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

10.3.2 CRT控制器接口

1 .单色显示适配器( MDA)

MDA是 IBM 单色监视器的接口板,它支持256 个字符代码的显示,适合文字处理之类的应用,它没有彩色图形的功能,主要性能指标是: 80 × 25 个字符的屏幕格式,分辨率为 720×350, 9×14字符框,实际字符点阵为 7×9 。

Page 282: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .彩色图形适配器( CGA)

CGA 可产生黑白和彩色的字符和图形,具有合成视频接口 COMP VIO 及直接驱动接口( R、 G、B、 I、 HSYNC、 VSYNC )两种监视器接口,图形分辨率为 640×200或 320×200 ,字符显示的屏幕格式为 80×25或 40×25 ,字符点阵框为8×8 ,大写字母点阵为 7×7 ,小写字母点阵为5×7 ,彩色种类为 2~ 16 。此外,还具有光笔接口。 CGA的 VRAM 的容量有 16KB 。

Page 283: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 . EGA、 VGA图形显示适配器

增强型图形适配器 EGA 和影像图形阵列 VGA是 IBM-PC/AT、 PC386、 PC486 的标准配置图形接口板。它们与 MDA和 CGA保持兼容,但其分辨率、颜色、速度等性能均有显著的改进和提高。 EGA、 VGA的 VRAM 的容量有 256KB, EGA 的分辨率达到 640×350 ,其字符点阵有 8×8、 8×14、 9×16 等多种,可显示 218 种颜色,可同时显示的颜色有 256种。

Page 284: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .文字模式

CGA、 EGA和 VGA 的文字模式是相同的,对字符的 ASCII 码和属性进行操作。标准屏幕格式有 40×25和 80×25 两种,每个字符的数据由两个字节组成,一个字节为字符的 ASCII 码,一个字节为字符属性。

Page 285: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .图形模式

CGA在 320×200彩色图形方式,一个字节存放 4 个像素点,每个像素点占 2 位,以其 4 种编码来表示所需显示的 4 种颜色之一, 16KB 只能存放一屏图形点的信息;高分辨率方式下,需 VRAM的640×200=12.8104 位的容量才能显示一整屏,所以 VRAM 的每一位只能代表屏面的一个点, 0 表示黑色, 1 表示白色,只能作黑白显示。字符属性字节的低4 位为 R、 G、 B、 I 前景颜色数据,高 4 位存放字符闪烁属性 BL 及背景色 BR、 BG、 BB ,高低 4 位各16 种组合,则字符显示色及背景色都有 16 种颜色。 CGA 正是利用 VRAM 的不同配置,存放多种格式和颜色的数据。

Page 286: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

10.4 打印机接口

1 .打印机及打印控制原理

数据

选通信号

回答信号忙

接口

电路

输入控

制逻辑

打印

行缓

冲器

打印

行缓

冲器

字符

发生

地址

计数器

列 计数器

打印时序控制逻辑

ASCII

ASCII

字符的列信息

打印

至打印头

至走纸机构

打印字车

Page 287: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .打印机接口方法

打印机按照它们的外部接口特性分为:并行打印机和串行打印机,这两种打印机与 CPU的接口方法不同。串行打印机采用 RS-232C串行接口标准,由 CPU向打印机发送串行数据,经输入缓冲器和串并转换后进行数据打印。目前使用的大多是并行打印机,所以下面只讨论并行打印机的接口方法。

Page 288: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 . PC系列微机的打印机接口适配器

输入数据 缓冲器

输出数据 缓冲器

数据收发器

命令译码

状态寄

存器(1)

状态寄

存器(2)

控制寄存器

集电极驱动器

数据线

控制信号

状态信号

打 印

D7 ~

D0

DIR

AEN

A

9 ~A0

IOR

IOW

8

8

8

读数据

写数据

写控制

读状态

读控制

4

5

5

复位

IRQ

5

8

Page 289: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

10.5 鼠标器接口

鼠标器的基本工作原理是:当移动鼠标器时,它把移动距离及方向的信息变成脉冲信号送给计算机;计算机驱动程序再将脉冲信号转换成鼠标器光标的坐标数据,达到指示位置的目的,或者把各种不同的鼠标器移动翻译成能被当前应用程序所执行的动作。

Page 290: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 11 章 串行接口

11.1 串行通信的基本概念11.2 串行通信协议11.3 串行接口标准简述11.4 串行通信接口的设计11.5 可编程串行接口芯片8251A

Page 291: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.1 串行通信的基本概念

11.1.1 串行通信的特点( 1 )由于在一根传输线上既传输数据信息又传送控制联络信息,这就需要串行通信中的一系列约定,从而来识别在一根线上传送的信息流中,哪一部分是联络信号,哪一部分是数据信号。( 2 )串行通信的信息格式有异步和同步信息格式。( 3 )由于串行通信中的信息逻辑定义与 TTL 不兼容,故需要进行逻辑电平转换。( 4 )为降低通信线路的成本和简化通信设备,可以利用现有的信道,配备以适当的通信接口,便可在任何两点实现串行通信。

Page 292: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.1.2 串行通信传输方式

1 .信号的调制与解调

Page 293: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .线路传输方式① 单工传输方式

B站 A站

发送器 接收器

② 半双工传输方式

③ 全双工传输方式

发送器 接收器

发送器 接收器

④ 多工传输方式

Page 294: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.1.3 信息的检错与纠错

串行通信的最终目的是将发送端要发送的数据正确无误地传送到接收端,由于突发性干扰,引起误码是难免的,这将直接影响通信系统的可靠性,所以,通信差错控制能力是衡量一个通信系统的重要指标。通常,把如何发现传输中的错误,叫做检错;发现错误之后,如何消除和纠正错误,叫做纠错。在基本通信规程中一般采用奇偶校验或方阵码检错,以反馈重发方式纠错。在高级通信控制规程中一般采用循环冗余码CRC( Cycle Redundacy Code )检验,以自动纠错方式来纠错。

Page 295: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.1.4 传输速率与传送距离

1 .波特率

波特率是衡量通信线路基本电信号发送率的一种量度,它仅是电学上的量度单位,而不是信息的量度单位。换言之,波特率是指发送到通信线路上的电脉冲速率。

Page 296: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .发送 / 接收时钟

在发送数据时,发送器在发送时钟的有效沿(下降沿)作用下将移位寄存器的数据按位移位串行输出;在接收数据时,接收器在接收时钟的有效沿(上升沿)作用下对接收数据按位采样,并按位串行移入移位寄存器。可见,发送 / 接收时钟是对数据信号的每一位进行同步控制,而发送 / 接收时钟的快慢将直接影响通信设备发送 / 接收数据的速度。

Page 297: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.2 串行通信协议

11.2.1 异步通信协议1 .特点及传输格式

Page 298: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .异步传输的错误检测( 1 )奇偶错在通信线路上因噪声干扰而引起的某些数据位的改变,则会引起奇偶检验错。( 2 )溢出错在上一个字符还未被处理器读出之前,本次又接收到了一个字符,则会引起溢出错。如果处理器周期检测“接收数据就绪”的速率小于串行接口从通信线上接收字符的速率,就会引起溢出错。( 3 )帧格式错若接收方在停止位的位置上检测到一个空号(信息0 ),则会引起一个帧格式错。一般来说,帧格式错的原因较复杂,可能是双方协议的数据格式不匹配;或线路噪声改变了停止位的状态;或因时钟不匹配、不稳未能按照协议装配成一个完整的字符帧等等。

Page 299: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.2.2 同步通信协议

1 .面向字符的同步协议( 1 )特点与格式

SYN SYN SOH 标题 STX 数据块 ETB/ETX 块校验

1个数据帧

Page 300: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 2 )控制字符的定义

SYN 是同步字符( Synchronous Character ),每一帧开始处都有 SYN ,加一个 SYN 的称为单同步,加两个 SYN 的称为双同步。同步字符的作用是为了联络。在传送数据时,接收端不断检测,一旦出现同步字符,就知道是一帧开始了。STX( Start of Text )是文始字符,它标志着传送的正文(数据块)开始。数据块是被传送的正文内容,由多个字符组成。数据块后面是组终字符 ETB( End of Transmission Block )或文终字符 EXT( End of Text )。如果正文很长,需要把正文分成若干个分数据块分别在不同帧中发送时,这时在每个分数据块后面用组终字符 ETB ,而在最后一个分数据块后用文终字符 ETX 。

Page 301: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .面向比特的同步协议( 1 )特点与格式

① 同步数据链路控制规程 SDLC( Synchronous Data Link Control ),由 IBM公司制定。② 高级数据链路控制规程 HDLC( High Level Data Link Control ),由国际标准化组织ISO( International Standards Organization )制定。③ 先进数据通信规程 ADCCP( Advanced Data Communications Control Procedure ),由美国国家标准协会制定。

Page 302: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 2 )帧信息的分段

① SDLC/HDLC 的标志字符SDLC/HDLC协议规定,所有信息传输必须以一个标志符开始,且以同一个标志符结束。这个标志字符是01111110 ,称为标志场( Flag )。② 地址场和控制场在标志场之后,可以有一个地址场 A( Address )和一个控制场 C( Control )。地址场用来规定与之通信的次站的地址。控制场可规定若干个命令。③ 信息场(数据场)跟在控制场之后的是信息场 I( Information )。 I场包含有要传送的数据,并不是每一帧都必须有信息场。即数据场可为 0 ,当它为 0 时,则这一帧主要是控制命令。④ 帧校验场紧跟在信息场之后的是两字节的帧校验场,帧校验场称为 FC( Frame Check )或称为帧校验序列 FCS( Frame Check Sequence )。

Page 303: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 3 )实际应用时的几个技术问题

“① 0” 位插入 /删除技术 ② SDLC/HDLC异常结束 ③ HDLC的 3 种基本通信操作方式

④ 同步通信中的纠错与数据帧重发

Page 304: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.3 串行接口标准简述

11.3.1 EIA RS-232C 接口标准( 1 )连接器采用 DB-25( 25芯)和 DB-9( 9芯)插头插座,其中包括 RXD(接收)、 TXD(发送)和相应的控制信号线 DTR、 DSR、 RTS、 CTS 以及电源线、地线等。( 2 )电缆长度:RS-232C标准允许的连接电缆不超过 50英尺( 15.24m ),但若能保证电缆总电容小于 2500pF ,则电缆长度可超过限定值。( 3 )电气特性:在 TxD和 RxD 数据线上:逻辑 1(MARK) =- 3 ~ - 15V逻辑 0( SPACE) = +3 ~ +15V在控制线上:信号有效(接通, ON 状态,正电压) = +3 ~ +15V信号无效(断开, OFF 状态,负电压) = - 3 ~ -15V

Page 305: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.3.2 RS422、 RS423、 RS485 接口标准

( 1 )与 RS-232C兼容,即为了执行新标准,无需改变原来采用的 RS-232C标准的设备;( 2 )支持更高的传输速率;( 3 )支持更远的传送距离;( 4 )增加信号引脚数目;( 5 )改善接口的电气特性。

Page 306: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.4 串行通信接口的设计

11.4.1 串行通信接口的基本任务( 1 )进行串 / 并转换。由于计算机处理数据是并行的,而串行通信是一位一位依次顺序地传送数据。( 2 )实现串行数据格式化。如在异步通信方式下,接口电路能在发送时自动生成和接收时自动去掉起 /停位。在面向字符的同步方式下,接口能在数据块前面加 / 减同步字符。( 3 )可靠性校验。在发送时,接口电路自动生成奇偶校验位;在接收时,接口电路检查字符的奇偶校验位或其他校验码,以确定是否发生传送错误。( 4 )实施接口与数据通信设备( DCE )之间的联络控制。

Page 307: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.4.2 串行接口电路的组成

TXD

RXD

8251A

SG

TXC

RXC

EIA/

TTL

交换

EIA/

TTL

交换

波特率

发生器

波特率

发生器

TXD

RXD

8251A

SG

TXC

RXC

CPU

CPU

Page 308: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.5 可编程串行接口芯片 8251A

11.5.1 INTEL 8251A 的基本性能( 1 )可用于同步和异步传送、接收;( 2 )同步: 5~ 8 bit/字符,可内同步或外同步,能自动插入同步字符(只能面向字符);( 3 )异步: 5~ 8 bit/字符,时钟速率为波特率的1、 16、 64倍;( 4 )可自动产生、检测和处理中止字符,可产生 1、 1.5或 2个位的停止位;( 5 )波特率: 19.2kb/s(异步)、 64kb/s(同步);( 6 )完全双工,双缓冲发射 / 接收器;( 7 )错误检测:具有奇偶错、溢出错和帧错的检测能力;( 8 )全部输入 /输出与 TTL兼容, + 5V 供电, 28 只引脚。

Page 309: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.5.2 8251A 的内部逻辑与外部引脚

1 . 8251A的结构框图及工作原理

数据总线缓冲器

读/写 控制逻辑

调制控制

内部数据总线

发送缓冲器

发送控制

接收缓冲器

接收控制

TXD TXRDY TXEMPTY

SYNDET RXC

RXD RXRDY

RD

CLK

WR

C/D

CS

RESET

DSR RTS CTS

DTR

TXC

Page 310: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

① 数据总线缓冲器② 接收器③ 发送器④ 读 /写控制和调制控制⑤ 定时和通信速率

Page 311: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 8251A外部引脚信号说明

D2

RD RXRDY

C/D CS

TXC WR

D7

GND

D6

RXD

D5

D3

D4

1

8251

28

14 15

RXC

D0

VCC

RESET

RTS

D1

DTR

TXD CLK

DSR

CTS TXEMPTY

SYNDET/BD TXRDY

Page 312: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

11.5.3 8251A 的控制字与状态字

1 .工作方式字

作用:对 8251A 工作方式进行选择,是异步方式还是同步方式,并按照其工作方式指定帧数据格式。

Page 313: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .工作命令字

Page 314: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .状态字

8251A 执行命令进行数据传送后的状态字存放在状态寄存器中。 CPU 可通过读入 8251A 的状态字进行分析和判断,以决定下一步该怎么作。

Page 315: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 . 8251A的方式字和命令的使用

复位

异步方式控制字 单同步方式字

硬件 RESET或软件(操作字 D6=1)复位

双同步方式字

送同步字符

操作字 1(D6≠ 1)

方式字

操作字

复位

送同步字符

送同步字

操作字 2(D6≠ 1)

操作字(D6=1)

11.5.4 应用举例

Page 316: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 12 章 模拟量输入输出接口

12.1 概述12.2 模拟量输入/输出接口

Page 317: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

12.1 概述

被控对象

传感器

执行部件 D/A转换

A/D转换

徽机系统

功放

运放

Page 318: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

12.2 模拟量输入 / 输出接口

12.2.1 基本原理1 .数模转换器( DAC)的基本原理

a b c

Vref

2R

R R R 2R

d

I3 2R 2R

I2 I1 I0 2R

D0

20

D2 D3

21 22 23 I

Rf

Vo +

D1

Page 319: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . A/D转换的方法和原理

( 1 )逐次逼近式 ADC

启动信号 控制电路

比较器

8位 DAC

CLK 转换结束

逐次逼近 寄存器

缓冲寄存器

+

Vo

D7~D0

Vi

Page 320: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 2 )并行比较式 ADC

逻辑编码电路

b2

b0

b1

1/8Vref

2/8Vref

3/8Vref

4/8Vref

5/8Vref

6/8Vref

7/8Vref

R

R

R

R

R

R

R

R

A1

A2

A3

A4

A5

A6

A7

Vi Vref

Page 321: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

12.2.2 转换器主要参数指标

1 .分辨率 分辨率表示 ADC/DAC 对微小模拟信号的分辨能力。对于 DAC ,其分辨率指 D/A 转换器所能分辨最小量化信号的能力,这是对微小输入量变化的敏感程度的描述。对于 n 位二进制 D/A 转换器,其分辨能力为满量程输出电压的 1/2n 。对于 ADC ,其分辨率表示 A/D 转换器能够分辨最小量化信号的能力,与数据位有关,位数越多,分辨率越高。对于 n 位二进制的 A/D 转换器来说,其分辨最小量化信号的能力为 2n ,因此其分辨率为 2n 。但习惯上采用位数来表示分辨率,如 8 位、 10 位、 12 位、 16 位等。

Page 322: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .精度

该参数用于表明 A/D、 D/A 转换器的精确程度,它是指实际输出电压与理论值之间的误差,即每个输出电压接近理想值的程度,它与标准电源的精度和解码网络电阻的精度有关。

Page 323: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .转换时间

对于一个理想的 D/A或 A/D 转换器,当数字信号从一个二进制数变为另一个二进制数时,其对应的模拟信号电压,应立即从原来的电压跳转到新电压,但在实际的 D/A、 A/D转换器中,电路中的电容、电感或开关电路会引起电路的时间延迟。

Page 324: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .线性度

对于 D/A 转换器 , 理想的输出电压应严格正比于输入的数字量,故理想的转换特性是线性的。但因开关内阻和网络电阻偏差等因素的影响,实际输出特性并不是理想线性的。把实际转换特性偏离理想转换特性的最大值称为线性误差,有时又将它与满度值之比称为线性度。

Page 325: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

12.2.3 转换器选择要点

1 . D/A转换器选择要点

( 1 )数字输入特性( 2 )模拟量输出特性( 3 )锁存特性及转换控制( 4 )参考源

Page 326: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . A/D转换器选择要点

( 1 )分辨率和速度

A/D 转换器首先可以用两个参数来描述:分辨率和速度。分辨率以位( bit )来表示, n位 A/D 转换器将模拟信号分为 2n 个级,产生 2n 个单独的数字输出编码。 A/D转换器所需要的分辨率取决于系统的信噪比( SNR )和动态范围要求。

Page 327: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 2 )误差参数

分辨率确实表示了 A/D 转换器可以产生的数字输出编码的数量,但它并未示出这些编码是否真的对应正确的输入电压。诸如微分非线性度( Differential Nonlinearity, DNL )、积分非线性度( Integral Nonlinearity, INL )、偏差和满标度误差等误差参数描述了输出编码响应输入电压的精确程度。

Page 328: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

12.2.4 D/A 转换器与微机系统的连接

1 .无数据输入锁存器的 DAC的使用

D0 Rf

Vref

IOUT1

D7

模拟地

IOUT2

地址 译码器

Vo

Vref DAC

AB

- +

74LS273

D7

Q0 D0

CP

Q7

Y0

≥ 1 IOW

DB ~

Yj

Page 329: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .有数据输入寄存器的 DAC的使用

( 1 )主要性能参数:① 分辨率: 8 位② 转换时间: 1μs ③ 满刻度误差: ±1LSB ④ 单电源: +5V ~ +15V ⑤ 基准电压: 10V ~ +10V ⑥ 输入数据具有双缓冲功能⑦ 数据输入电平与 TTL 电平兼容

Page 330: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 2 )内部结构与外部引脚

DGND 10

VCC

AGND

20

锁存

3

12

11

Ioutl

Rfb

Ioutl

Vref 8

0

1 跟随

8位D/A 转换器

D Q 8位D/A 转换器

D Q

9

LE

LE XFER

WR1

WR2

CS

19

DI7

&

2

13

1

18

&

&

D Q 8位D/A 寄存器

D Q LE

DI6

DI0

ILE

17

Page 331: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 . D/A转换接口程序设计

Page 332: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

12.2.5 A/D 转换器与微机系统的连接

1 .输入模拟电压的连接

A/D 转换芯片的模拟输入电压往往既可以是单端的,也可以是差动的,属于这种类型的 A/D芯片常用 VIN()、 VIN( + )或IN()、 IN( + )一类符号表明模拟输入端。此时,如用单端输入的正信号时,则把 VIN()接地,输入模拟信号加到 VIN( + )端;如用单端输入的负信号时,则把 VIN( + )接地,信号加到 VIN()端;如果用差动输入,则模拟信号加在 VIN( + )和 VIN()端之间。

Page 333: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .数据输出线和系统总线的连接

一种方式是输出端具有可控的三态输出门,例如ADC0809 ,这种芯片的输出端可以直接和系统总线相连,由读信号控制三态门。当 A/D 转换结束后, CPU 通过执行一条输入指令产生读信号,将数据从 A/D 转换器读出。另一种方式是 A/D 转换器内部有三态门,但这种三态门不受外界信号的控制,而是由 A/D 转换电路在转换结束时自动接通的,例如 ADC570就是这样的芯片。此外,还有某些 A/D 转换器根本就没有三态输出门电路。在这种情况下, A/D 转换芯片的数据输出线就不能直接和系统数据总线相接,而必须通过附加的三态门作为缓冲器连接系统数据总线,实现数据传输。

Page 334: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .启动信号的供给

A/D 转换器要求的启动信号有两种形式:一种是电平启动信号,另一种是脉冲启动信号。电平启动信号的芯片如AD570、 AD571、 AD572 等,对这类 ADC芯片,要求在整个转换过程中启动信号均要保持有效,如果中途电平信号失效,将导致转换停止而得到错误的结果。因此,通常要通过并行接口或 D触发器来提供有效的电平信号。

Page 335: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .转换结束信号及 CPU读取转换数据的方式

( 1 )程序查询方式

在 CPU启动 A/D 转换后, CPU 不断用输入指令读取相应状态端口的信息,并不断查询 ADC 的结束信号 EOC ,一旦发现有效,则认为 ADC 完成转换,可用输入指令读取数据。图中,启动 A/D 转换和读取 A/D 转换数据公用一个 I/O端口,而 A/D 转换状态信息的读取则采用另外一个端口(仅占其中一位)。

Page 336: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 2 )中断方式

Page 337: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 3 )固定延迟程序方式(同步方式)

用这种方式,要预先掌握完成一次 A/D 转换所需的时间,然后在 CPU发出启动命令后,执行一个与 ADC 转换时间相同或稍大于转换时间的固定延时程序。此程序执行完后, A/D 转换也正好结束,于是 CPU 可读取数据。

Page 338: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 4 )采用 DMA 方式

A/D 变换的速度超过 CPU 的控制速度后, CPU无法再对 ADC 进行控制,这时可采用硬件逻辑电路来完成对 ADC 的控制。所谓转换结束信号已不是一次 A/D 变换结束的信号,而是一批 A/D转换的数据在硬件逻辑的控制下,存入高速缓存器后,通知系统 DMA 控制器而发出的 DMA请求信号,然后系统进入 DMA周期,在高速缓存区与系统 RAM 间进行 DMA 数据传送。

Page 339: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

( 5 )地线的连接

一类是模拟电路,如 D/A 转换电阻网络电路、运放等;另一类是数字电路,如 CPU 、译码器、门电路等。有时这两类电路在一个芯片内共存,如 ADC和 DAC 的内部既有数字电路,也有模拟电路。这两类芯片要用两组独立的电源供电,在连线时,把所有的“模拟地”连在一起,另把所有“数字地”连在一起。要特别注意,这两种“地”不应彼此相混地连接在一起。

Page 340: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(b)利用地址总线选择 (a)利用数据总线选择

地址

(不包括 AB2、 AB1、AB0)

地址

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

EOC

OE

START

ALE

ADDA

ADDB

ADDC

D7~D0

AB0

AB1

AB0

IOW ≥ 1 ≥ 1

地址 译码器

地址 译码器

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

EOC

OE

START

ALE

ADDA

ADDB

ADDC

D7~D0

DB0

DB1

DB0

IOW

Yi Yi

Page 341: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 . ADC0809和 CPU的接口设计举例

频率 750kHz

+5V

Vin0

Vin7

ADC0809

EOC CLK

GND

REF(- )

REF(+)

VCC

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

OE

START

ALE

ADDA

ADDB ADDC

D7~D0

DB0

IOR

IOW

DB

≥ 1

≥ 1

≥ 1

DB0

DB1 DB2

Y7

Y6

Y5

Y4

Y3

Y2 Y1

Y0

A

B

C

G2

G1

G3

74LS138

AB0

AB1

AB2 AEN

A3

A4

A5

A6

A7

A8

A9

&

&

Page 342: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

第 13 章 Pentium 的最新技术发展13.1 计算机的并行处理技术13.2 80X86微处理器13.3 80X86的工作模式13.4 80X86的特权级与保护功能13.5 程序转移与任务的切换

Page 343: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.1 计算机的并行处理技术

13.1.1 并行处理技术概述(1) 时间并行又称为时间重叠,在并行概念之中引入时间因素。在不增加重复设备的情况下,将整个任务的处理过程分割成多个在时间上相互错开的子过程 (子任务 ) 。 (2) 空间并行又称为资源重复,在并行概念中引入空间因素。以“数量取胜”为原则,即增加重复的设备,以求得多个任务的同时处理来大幅度提高计算机的处理速度。(3) 时间并行 + 空间并行指时间重叠和资源重复的综合应用,既采用时间并行性,又采用空间并行性。

Page 344: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.1.2 流水微处理器1 .流水微处理器的结构

算术逻辑运算

流水线 FIFO指令

队列

取指令

指令译码

计算操作数地址

取操作数

多模块交

叉存储器 Cache

指令部件

(指令 I+k+1)

(指令 I+k)

(指令 I+2)

(指令 I+1)

指令部件

(指令 I)

多级存储器体系 流水线方式微处理器

Page 345: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .流水微处理器的时空图

Page 346: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.1.3 现代微处理器的其他先进技术

1 .高速缓冲存储器技术

为了加快运算速度,普遍在 CPU 与常规主存储器之间增设了一级或两级高速小容量存储器( Cache )。将将要执行的指令和数据复制到缓存中,加快执行速度。

Page 347: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .分支预测和推测执行

动态执行是目前 CPU主要采用的先进技术之一。采用分支预测和动态执行的主要目的是为了提高 CPU 的运算速度。推测执行是依托于分支预测基础上的,在预测程序是否分支后所进行的处理也就是推测执行。

Page 348: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .乱序执行

CPU 根据各单元电路的空闲状态和各指令能否提前执行的具体情况进行分析后,将能提前执行的指令立即发送给相应电路执行。当然在各单元不按规定顺序执行完指令后还必须由相应电路再将运算结果重新按原来程序指定的指令顺序排列后才能返回程序。这种将各条指令不按顺序拆散后执行的运行方式就叫做乱序执行(也有叫做错序执行)技术。

Page 349: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 . CISC指令集加 RISC微结构

RISC 的指令简单, CPU 在每一周期的任务单纯,因此 CPU 结构简单,有利于流水作业。从 Pentium Pro开始, X86CPU 都采用 RISC 内核 + CISC到 RISC译码器的结构。

Page 350: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

5 .多媒体技术

当今多媒体信息处理对微机处理高速数据流提出了更新、更高的要求。为满足这一要求,在微处理器中加入了新的用于多媒体处理的指令和数据类型,支持单指令多数据,支持并行处理。

Page 351: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.2 80X86 微处理器

13.2.1 80X86 的发展过程

从结构上看, 80486 是将 80386微处理器及与其配套芯片集成在一块芯片上。具体地说, 80486芯片中集成了 80386 处理器、 80387 数字协处理器、 8KB 的高速缓存(Cache) 以及支持构成多微处理器的硬件。但是,从程序设计的角度看,其体系结构几乎没变,可以说是对 80386 的照搬。在相同的工作频率下,其处理速度比 80386 提高了 2~ 4倍。

Page 352: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.2.2 80X86 的内部结构

Page 353: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.2.3 80X86 的寄存器结构

Page 354: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1 .标志寄存器

Page 355: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .控制寄存器

4

Page 356: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .调试与测试寄存器

由 INTEL指定

由 INTEL指定

由 INTEL指定

由 INTEL指定

由 INTEL指定

由 INTEL指定

TLB命令寄存器

TLB命令寄存器

Page 357: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.2.4 80X86 的中断和异常

1 . 80X86的中断

中断是指与指令的执行无关的事件,通常是由外部事件 (例如 I/O 设备的请求 )所引起的对 CPU 的请求,它的发生与指令的执行是异步的。这里有熟悉的可屏蔽中断 INTR 和非屏蔽中断 NMI 。

Page 358: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 . 80X86的异常(1) 故障 (Fault)这类异常是由引起异常的指令执行之前报告的,因此当控制转移到异常处理程序时所保存的 CS和EIP(断点 )就是引起异常的指令的 CS和 EIP 。在80X86上,故障完全可以重启动。(2) 自陷 (Trap)这种异常是在引起异常的指令执行之后报告的,因而当控制转移到异常处理程序时所保留的断点是引起异常的指令的后一条 ( 下一条 ) 指令的 CS和EIP 。在这种情况下,引起异常的指令已经执行了,它的结果一般已反映在寄存器或内存中。(3) 夭折 (Abort)引起这种异常的情况是比较严重的,通常是由硬件故障或在系统表中的非法或不一致的值所引起的。

Page 359: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.3 80X86 的工作模式

13.3.1 80X86 的实地址模式1 .实地址模式的进入在处理器复位后,处理器内部的 CR0的 PE 位为 0 ,表示此时处理器工作在实地址模式。此时, CS 寄存器所对应的描述符寄存器中的基地址为0FFFF0000H ,段限制为 0FFFFH 。所以,复位后的启动地址应为基地址 +EIP ,即0FFFF0000H+0000FFF0H=0FFFFFFF0H 。

Page 360: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .实地址模式下段的概念

在实地址模式下,段的概念与前面 8088 所述是一样的。在那里,主存被分成段来进行管理,每段的长度限定为 64KB 。在 8086 中,物理地址为:物理地址 = 段寄存器的内容 ×16+ 偏移量

Page 361: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.3.2 80X86 的保护虚地址模式

Page 362: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1 .保护虚地址模式下的寻址机构

(1) 分段寻址机构

段描述符

段基地址

段界限

访问权限

偏移量 段选择符

31/15 47/31

段基地址

存储器操作数

段界限

选择的段

48/32位指针

0

(大到 4GB)

+

Page 363: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(2) 分页寻址机构

物理存储器

目录

页表 4KB

CR3

4B

4B

选择器 偏移量

虚拟地址 目录号4

页索引号4

4KB

段管理

部件

目录号 页索引号 偏移量 线性地址

31 22 21 12 11 0

+

+

+

Page 364: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .描述符与描述符表

(1) 全局描述符表 GDT (Global Descriptor Table)GDT含有系统中每一个任务都可以访问的段的描述符,一般包括操作系统使用的代码段、数据段和堆栈段、各任务状态段、系统中所有的局部描述符表的描述符等。(2) 局部描述符表 LDT (Local Descriptor Table)局部描述符表包含了一个任务的专用描述符。通常,操作系统为每个任务建立一个 LDT。 LDT可以包含代码段、数据段、堆栈段、任务门和调用门的描述符。

Page 365: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(3) 中断描述符表 IDT

Page 366: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

(4) 描述符

Page 367: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .保护虚地址模式下的存储器寻址

Page 368: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.3.3 80X86 的虚拟 8086 模式与系统管理模式

1 .虚拟 8086模式当系统加电、复位后, CPU 自动进入实地址模式。实地址模式的主要目的在于对系统初始化,以便使系统转向保护模式或虚拟 8086模式。虚拟 8086模式是为了运行 16 位的 8086 程序而设置的,它可以在保护模式和虚拟 8086模式间重复而迅速地相互切换。有了虚拟 8086模式就可以使 Pentium、 80486、 80386 程序与 8086、 80286 的大量的 16 位软件并行运行。

Page 369: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .系统管理模式① 使 SMI# 为低电平,进行系统管理请求。② 等待总线周期完成, CPU送出 SMIACT# (System Manage Action) 信号,对 SMI#请求作出响应。

③ CPU保存状态到 SMRAM ,产生SMBASE+0FFFFH启动地址,加电或复位后SMBASE=30000H 。

④ CPU 转向系统管理模式 SMM (System Manage Mode)环境下执行程序。这是一组CPU 进入 SMM 必然要执行的代码。

⑤ CPU跳到 SMBASE+8000H ,执行 SMI 处理程序,完成系统管理功能。⑥ 执行返回指令 RSM ,返回请求前的状态。同时,使信号 SMIACT#无效。

Page 370: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.4 80X86 的特权级与保护功能

13.4.1 特权级与保护原则

1 .特权级(1)描述符特权级 DPL (Descriptor Privilege Level)(2) 当前特权级 CPL (Current Privilege Level)(3) 请求特权级 RPL (Requested Privilege Level)

Page 371: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .特权级的保护原则

(1)读写数据段的原则(2) 装入数据段寄存器的原则(3) 代码段寄存器的装入原则(4) I/O 访问时的特权级原则

Page 372: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.4.2 80X86 的保护功能

1 .段的读写权限保护有的段只读,不允许修改,如代码段;而有的数据段也可能是只读的;还有的代码段是不能进行读操作的。违反这些规定将产生异常中断。2 .存在性检查在程序访问其他段时,要利用其选择符获得段描述符,进而对其存在与否进行检查。若是不存在,必产生异常中断。3 .段属性保护对段属性进行检查,防止不按预定的用途错误地使用段。例如,选择符装入时,只有代码段选择符才能装入 CS ;只有可写数据段才能装入 SS 等。一旦错误地装入,必产生异常中断。

Page 373: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

4 .任务间的保护每个任务都使用各自定义的专用局部描述符,使用各自的虚拟地址空间,以防止任务间的相互破坏。5 .段限制检查后面将会看到,每一段都有自己的限制范围,超越限制的访问必须避免。因此,在访问某一段时,必须进行段限制检查。

Page 374: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.5 程序转移与任务的切换

13.5.1 任务内的控制转移

(1)段内转移(2) 同一特权级内的段间转移(3) 特权级间的段间转移

Page 375: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

1 .段内转移

最简单的一种情况就是段内转移。因为在转移前后,段、特权级等均不改变,故只要利用 JMP或 CALL 指令就可实现。如前所述,段内转移不改变CS ,只改变 IP或 EIP 。

Page 376: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .同一特权级的段间转移

Page 377: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

3 .特权级间的段间转移

Page 378: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

13.5.2 任务间的控制转移

1 .用 JMP或 CALL指令直接访问新任务的任务状态段

选择符

Page 379: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹

2 .用 JMP或 CALL指令访问任务门

Page 380: 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹