3.8k likes | 4.04k Views
高等学校计算机系列教材 微机原理与接口技术(第二版) 倪继烈 刘新民 编著. 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段 159 号电子信息产业大厦 邮编: 610051 ) 策划编辑: 朱 丹 责任编辑: 朱 丹 主 页: www.uestcp.com.cn 电子邮箱: uestcp@uestcp.com.cn 发 行: 新华书店经销 印 刷: 电子科技大学出版社印刷厂
E N D
高等学校计算机系列教材 微机原理与接口技术(第二版) 倪继烈 刘新民 编著 出 版: 高等教育出版社 电子科技大学出版社(成都市一环路 东一段159号电子信息产业大厦 邮编:610051) 策划编辑: 朱 丹 责任编辑: 朱 丹 主 页: www.uestcp.com.cn 电子邮箱: uestcp@uestcp.com.cn 发 行: 新华书店经销 印 刷: 电子科技大学出版社印刷厂 成品尺寸: 185mm×260mm 印张 24.875 字数 604 千字 版 次: 2004年1月第二版 印 次: 2007年8月第五次印刷 书 号: ISBN 978-7-81065-326-8 定 价: 29.80 元 ■ 版权所有 侵权必究 ■ ◆ 邮购本书请与本社发行部联系。电话:(028)83202323 83256027 ◆ 本书如有缺页、破损、装订错误,请寄回印刷厂调换。 ◆ 课件下载在我社主页“下载专区”。
第1章 微型计算机基础知识 第2章 8086微处理器及其系统结构 第3章 8086CPU指令系统 第4章 汇编语言程序设计 第5章 内存储器与存储体系 第6章 输入/输出接口与总线技术 第7章 并行接口 第8章 中断与DMA技术 第9章 定时与计数技术 第10章 人机交互接口 第11章 串行接口 第12章 模拟量输入输出接口 第13章 Pentium的最新技术发展 目录
第1章 微型计算机基础知识 1.1 微型计算机发展过程 1.2 计算机中数据信息的表示方法 1.3 微型计算机系统的组成 1.4 微型计算机的工作过程
1.1 微型计算机发展过程 1.计算机的分类
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结构的微处理器上作简单的扩展,而是一种全新的设计,可以称为第五代微处理器的开端
1.2 计算机中数据信息的表示方法 1.2.1 数制及其转换 1.数制的基与权 (1)十进制(Decimal System):使用的数字符号为:0,1,…,9,共10个符号。因此,十进制数中各位的权是以10为底的幂。 (2)二进制(Binary System):使用的数字符号为:0和1,二进制数中各位的权是以2为底的幂 。
2.二进制数的特点 (1)数制简单、容易实现、工作可靠和 抗干扰能力强。 (2)运算规则简单。 (3)节省设备。 (4)可以使用逻辑代数这一数学工具对 计算机逻辑线路进行分析和综合,便于机器结构的简化。
3.数制之间的转换 在任一数制中的每一个数都可以用按权展开式的形式,表示如下: 式中,r为该记数制中的任一允许使用的数字符号,R为其基数。
(1)十进制数转换成二进制数 整数用“除2取余”,小数用“乘2取整”的方法。 (2)十六进制数转换为二进制数 不论是十六进制数的整数部分或小数部分,其转换方法是只要把每一位十六进制数用等值的四位二进制数代替便可。 (3)二进制数转换成十六进制数 整数部分由小数点向左每四位一组,小数部分由小数点向右每四位一组,不足四位的补0,然后用四位二进制数的等值十六进制数代替即可。
1.2.2 计算机中数的表示 1.数的符号表示法 用“0”表示正号“+”;用“1”表示负号“”。这种连正、负号也数字化的数,称为机器数,即计算机所能识别的数。而把这个数本身,即用“+”、“”号表示的数,称为真值。
2.原码、反码和补码 (1)原码 原码的编码规则如下:最高位为符号位,当符号位为0时,表示正数;当符号位为1时,表示负数。其余各数值位取原值不变。有符号数的这种表示法,称为原码表示法,其在计算机中的表示形式如下:
(2)反码 反码的编码规则如下: ① 对于正数(设字长为8位) 反码与原码编码相同。 ② 对于负数 编码规则如下:除符号位仍为“1”外,其余各数值位是“按位取反”。 ③ 反码的“0”,也有两种表示形式 [+0]反=0 0000000; [0]反=1 1111111
(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
3.原码、反码和补码之间的转换 正数原码、反码和补码的编码规则相同,不存在转换问题。 4.补码的加减法运算 (1)补码的加法运算 补码的加法时,不管两个数是正数还是负数,按补 码的和等于和的补码进行运算。 (2)补码的减法运算 补码减法运算时,按补码的差等于差的补码进行。
5.数的小数点表示法 (1)定点表示法 所谓定点表示法,是指由程序设计者人为约定,该程序中所有数的小数点固定在同一位置不变。这时,小数点的位置就不必用记号“.”表示出来了。一般的,各程序中约定的小数点的位置可以不同,其小数点可约定固定在任何数位之后,但常用下列两种形式: ① 定点纯小数:约定所有数的小数点的位置固定在符号位之后。 ② 定点纯整数:约定所有数的小数点的位置固定在最低数值位之后 。
(2)浮点表示法 在浮点表示法中,小数点的位置是浮动的。为了使小数点可以自由浮动,浮点数由两部分组成,即尾数部分与阶码部分。
1.2.3 计算机中的编码 1.字符编码 在计算机中,最常用的编码是ASCII (American Standard Code for Information Interchange)码。它用7位二进制数码对字符进行编码。 2.二进制编码的十进制数 在某些场合下,有时人们希望计算机能够直接对十进制数进行运算。这时就要用到二进制编码的十进制数,简称BCD(Binary-Coded Decimal)码。即在BCD(Binary-Coded Decimal)码中,每一位十进制数都用四位二进制编码来表示。
1.3 微型计算机系统的组成 1.3.1 计算机的基本结构和工作原理 1.计算机的基本结构
2.计算机的工作原理 计算机的工作方式取决于它的两个基本能力:一是能存储程序,二是能自动执行程序。计算机是利用内存来存放所要执行的程序的,而CPU则依次从内存中取出程序的每条指令,加以分析和执行,直到完成全部指令序列为止。这就是计算机存储程序控制方式的工作原理。
1.3.3 微处理器的组成 1.运算器
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)时序电路 计算机工作是周期性的,取指令、分析指令、执行指令……这一系列操作的顺序,都需要精确地定时,而不能有任何差错。
3.通用寄存器组RA 通用寄存器组RA通常由多个寄存器组成,是微处理器中一个重要部件。寄存器组主要用来暂存CPU执行程序时的常用数据或地址,以便减少微处理器芯片与外部的数据交换,从而可加快CPU的运行速度。因此,我们可以把这组寄存器看成是设置在CPU内部工作现场的一个小型、快速的“RAM存储器”。
1.3.4 微型计算机的组成 1.微型计算机的组成
2.总线结构 所谓总线,是微型计算机中的一组公用导线,是传输信息的公共通道。微处理器、存储器及其他设备都通过三态门连接在总线上。
1.4 微型计算机的工作过程 1.执行一条指令的过程 2.执行程序的过程 开始执行程序时,必须先给程序计数器PC赋以第一条指令的首地址00H,然后就进入第一条指令的取指令阶段。
第2章 8086微处理器及 其系统结构 2.1 8086 微处理器 2.2 总线周期与总线结构 2.3 8086总线操作时序
2.1 8086 微处理器 2.1.1 8086CPU的内部结构
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的各个部件实现特定的定时操作。
2.总线接口单元BIU (1)指令队列缓冲器 当执行单元EU正在执行指令中且不需要占用总线时,总线接口单元BIU会自动地进行预取下一条或几条指令操作,将所取得的指令按先后次序存入指令队列缓冲器中排队。 (2)地址加法器和段寄存器 地址加法器和段寄存器用于完成从16位段基址与16位段内偏移地址(由指令指定)两部分组成的存储器逻辑地址,到形成一个20位实际存储器地址(物理地址)的转换运算。 (3)指令指针寄存器IP(Instruction Point) 其功能相当于程序计数器PC,用于存放总线接口单元BIU将要取的下一条指令的段内偏移地址。 (4)总线控制电路与内部通信寄存器 总线控制电路用于产生外部总线操作时的相关控制信号。
2.1.2 8086CPU内部寄存器 1.段寄存器 (1)为什么要设置段寄存器 由于在8086系统中,需要用20位物理地址访问1MB的存储空间。但是8086CPU的内部结构以及内部数据的直接处理能力和寄存器都只有16位,故只能直接提供16位地址寻址64KB存储空间。那么如何用16位数据处理能力,实现20位地址的寻址呢?这里,用16位的段寄存器与16位的偏移(量)地址巧妙地解决了这一矛盾。即为了能够寻址1MB存储空间,在8086CPU中引入存储器地址空间分段的概念。
(2) 段寄存器的功能 8086的内部共有4个16位段寄存器,它们用于存放8086 CPU当前可以访问的4个逻辑段的基址。CPU可以从4个段寄存器给出的逻辑段中存取指令代码和数据。若要从别的段而不是当前可寻址的段中存取信息,首先,CPU必须通过程序改变对应的段寄存器的内容,将其设置成所要存取的段的基址。 (3) 信息的分段存储与段寄存器的关系 段寄存器的利用不仅使存储器地址空间扩大到1MB,而且为信息按特征分段存储和信息安全管理带来了方便。存储器中的信息可分为程序、数据和计算机的状态等信息。为了操作的方便,存储器可相应划分为:程序区,该区存储程序的指令代码;数据区,它存储原始数据、中间结果和最终结果;堆栈区,用以存储需要压入堆栈的数据或状态信息。段寄存器的分工是:代码段寄存器CS划定并控制着程序区;数据段寄存器DS和附加段寄存器ES控制着数据区;而堆栈段寄存器SS对应着堆栈存储区。
2.通用寄存器 (1) 数据寄存器 数据寄存器包括AX、BX、CX和DX 4个16位寄存器,它们中的每一个又可根据需要将高8位和低8位分成独立的两个8位寄存器来使用。 (2) 地址指针和变址寄存器① 设置地址指针和变址寄存器的目的 采用这种方法给出操作数的地址时,大大缩短了指令码的长度。还可以方便地通过修改寄存器的内容,达到修改地址的目的,提高了指令寻址的灵活性。 ② 地址指针和变址寄存器功能 地址指针和变址寄存器包括SP、BP、SI和DI。这组寄存器在功能上的共同点是,在对存储器操作数据寻址时,用于形成20位物理地址码的组成部分。
3.控制寄存器 (1) 指令指针寄存器IP
(2) 标志寄存器F 1)状态标志 状态标志是由CPU硬件电路根据最近一次运算结果而自动建立的可供用户测试的标志,它们反映最近一次ALU运算结果的特征。这些标志常常作为条件转移类指令中的测试条件,控制着程序的运行方向。 • CF(Carry Flag)进位标志 • PF(Parity Flag)奇偶标志 • AF(Auxiliary carry Flag)辅助进位标志 • ZF(Zero Flag)零标志 • SF(Sign Flag)符号标志 • OF(Overflow Flag)溢出标志
2)控制标志 ① DF(Direction Flag)方向标志 ② IF(Interrupt Enable Flag)中断允许标志 ③ TF(Trap Flag)陷阱标志或单步操作标志
1.地址/数据总线AD15~AD0 (双向、三态) 这是分时复用的存储器或I/O端口地址和数据总线。传送地址时三态输出,传送数据时可双向三态输入/输出。 2.地址/状态线A19/S6~A16/S3 (输出、三态) 这些引脚也是采用多路开关的分时输出线,在存储器操作的总线周期的第一个时钟周期(T1状态)时,输出20位地址的高4位(A19~A16),而在其他的时钟周期,输出状态信号。
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,均应接地。
2.2 总线周期与总线结构 2.2.1 8086的总线周期 1.总线周期
2.空闲状态TI (Idle State) 在两个总线周期之间,存在着BIU不执行任何操作的时钟周期,这些不起作用的时钟周期称为空闲状态,用TI 表示。 8086的总线周期中,除了空闲状态TI 以外,还有一种等待状态——TW。 3.等待状态TW (Wait State)
2.2.2 8086最小方式时的引脚功能和总线结构 1.8086最小方式时的引脚功能 (1) 地址锁存信号ALE (输出) (2) 数据允许信号(输出、三态) (3) 数据发送/接收信号DT/(输出、三态) (4) 输入输出/存储器信号M/(输出、三态) (5) 写控制信号(输出、三态) (6) 中断响应信号 (输出) (7) 保持请求信号HOLD (输入)与保持响应信号HLDA (输出)
2.8086最小方式时的系统总线结构 • 地址锁存 • 数据线驱动 • 最小方式时的系统总线结构
2.2.3 8086最大方式时的引脚功能和总线结构 1.8086最大方式时的引脚功能 • 总线操作类型状态(编码)信号S0、S1、S2(输出) • 队列状态信号QS1、QS0 (输出) • 总线封锁信号(输出、三态) • 总线请求/总线请求允许信号
2.3 8086总线操作时序 2.3.1 8086 CPU最小方式时的总线时序 1.学习时序的目的 (1) 深入理解微处理机的内部操作原理; (2) 了解时序有利于我们在编源程序时,适当选用指令,以缩短指令的存储空间和指令的执行时间; (3) 有助于更好地解决CPU与存储器以及各种外设之间的时序配合问题; (4) 当微型机用于实时控制时,必须估计CPU完成操作所需的时间,以便与控制过程相配合。
2.8086 CPU最小方式时总线周期时序 (1) 读总线周期时序