《微型计算机原理与接口技术》第2章 微处理器与总线-20130906-0整理-final_第1页
《微型计算机原理与接口技术》第2章 微处理器与总线-20130906-0整理-final_第2页
《微型计算机原理与接口技术》第2章 微处理器与总线-20130906-0整理-final_第3页
《微型计算机原理与接口技术》第2章 微处理器与总线-20130906-0整理-final_第4页
《微型计算机原理与接口技术》第2章 微处理器与总线-20130906-0整理-final_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章微处理器与总线韦耿wei_geng@163.com河海大学计算机与信息学院1主要内容:

(1)微型机的基本结构;

(2)8088(8086)微处理器的工作

原理、引线及结构;

(3)总线的一般概念。

22.1微型机的基本结构微机系统的基本组成微型机的工作原理3☆

微机系统的组成4微处理器、微型计算机和微型计算机系统三者之间有什么不同?(1)三者不同,微处理器是微型计算机的一个组成部分,而微型计算机又是微型计算机系统的一个组成部分。(2)微处理器:运算器、控制器及寄存器组;

微型计算机:由微处理器、存储器、输入/

输出接口电路和系统总线构成的裸机系统;

微型计算机系统:微型计算机、系统软件和外设。5微型计算机的系统结构框图总线结构6微型计算机的结构

微处理器(CPU)存储器输入/输出接口总线1.硬件系统71)微处理器微处理器简称CPU,是计算机的核心,主要包括:

运算器控制器寄存器组8☆

运算器算术逻辑单元ALU:加法器:加、减、乘、除逻辑运算功能部件:与、或、非、异或通用或专用寄存器组:

提供操作数和暂存中间运算结果及结果特征内部总线:数据传输通道9

组成:

程序计数器、指令寄存器﹑指令译码器、时序控制部件,微操作控制部件功能:1、指令控制2、时序控制3、操作控制4、处理对异常情况及某些外部请求☆

控制器10☆

寄存器组

CPU内部的若干个存储单元;分为专用寄存器和通用寄存器;

专用寄存器:其作用是固定的,如SP、FLAGS。

通用寄存器:如AX﹑BX等由程序员规定其用途。112)存储器定义:存储器又叫内存或主存,是微型计算机的存储和记忆部件。作用:存放计算机工作过程中需要操作的数据和当前执行的程序。12☆注意区分:内存单元的地址和内容地址:每个单元都对应一个编号,以实现对单元内容的寻址内存单元的内容:内存单元中存放的信息

1011011038F04H内存地址单元内容13☆指标:内存容量内存所含存储单元的个数,以字节为单位内存容量的大小依CPU的寻址范围而定(即CPU地址信号线的位数)14☆内存操作读:将内存单元的内容取入CPU,原单元内容不改变写:CPU将信息放入内存单元,单元中原来的内容被覆盖15存储器读操作过程CPU读地址05H内存单元中的内容的过程(1)(2)(3)16存储器读操作过程CPU把00100110B写入地址为08H的单元(1)(2)(3)17☆内存储器的分类

随机存取存储器(RAM)按工作方式可分为只读存储器(ROM)183)输入/输出接口输入/输出接口是微型计算机的重要组成部分接口是CPU与外部设备间的桥梁CPUI/O接口外设19☆

接口的分类:

串行接口输入接口并行接口输出接口20☆接口的功能数据缓冲寄存信号电平或类型的转换实现主机与外设间的运行匹配214)总线总线:是一组信号线的集合,是在计算机系统各部件之间传输地址、数据和控制信息公共通路。内部总线:位于芯片内部的总线。系统总线:连接微处理器与存储器、输入输出接口,用以构成完整的微型计算机的总线(外部总线)。分类:数据总线、地址总线和控制总线。22数据总线:用于传送数据信息,实现微处理器、存储器和I/O接口之间的数据交换。数据总线是双向总线,数据可在两个方向上传输。

地址总线:用于发送内存地址和I/O接口的地址,是单项总线。

控制总线:则传送各种控制信号和状态信号,使微型计算机各部件协调工作。每一根是单向的,但整体是双向的。232.软件系统软件:为运行、管理和维护计算机系统或为实现某一功能而编写的各种程序的总和及其相关资料。系统软件应用软件操作系统系统实用程序软件编译程序汇编程序数据库调试程序工具软件24☆

程序设计语言机器语言:计算机直接执行的二进制形式的程序。汇编语言:助记符语言表示的程序。高级语言:不依赖于具体机型的程序设计语言。25☆微型计算机系统结构

冯•诺依曼结构哈佛结构26冯•诺依曼机的特点:将计算过程描述为由许多条指令按一定顺序组成的程序,并放在存储器保存指令按其在存储器中存放的顺序执行由控制器控制整个程序和数据的存取以及程序的执行以运算器为核心,所有的执行都经过运算器27冯•诺依曼计算机结构28每台计算机都有各种类型的机器指令,这些指令按照一定的规则存放在存储器中,在中央控制系统的统一控制下,按一定顺序依次取出执行,这就是冯诺依曼的核心原理,即存储程序的工作原理。冯•诺依曼计算机的核心原理29存储程序:是指把程序和数据送到具有记忆能力的存储器中保存起来,计算机工作时只要给出程序中第一条指令的地址,控制器就可依据存储程序的指令顺序地、周而复始地取出指令、分析指令、执行指令,直到执行完全部指令为止。30●指令:一条基本操作命令称为一条机器指令。指令是对计算机发出的一条条工作命令,命令它执行规定的操作。机器指令必须满足两个条件:a、机器指令的形式必须是计算机能够理解的,必须使用二进制数字编码形式表示。b、机器指令规定的操作必须是计算机能够执行的。必须有硬件支持。●指令系统:应用于某种CPU的机器指令及其使用规则的集合。指令系统决定了计算机的能力,也影响着计算机的结构。●程序:是实现某种任务的指令序列。31●程序中的指令必须采用二进制编码,和数据一样进行存储。●程序中的指令必须属于执行程序的计算机的指令系统。32微型计算机的工作过程计算机执行程序示意图33指令执行的两个基本阶段●取指令阶段由一系列相同的操作组成。取指令阶段的时间总是相等的。●执行指令阶段由不同的事件顺序组成,它取决于被执行指令的类型。微机工作过程就是不断地取指令和执行指令的过程。34一个程序工作的例子例:求5+4=?计算步骤:一个计算步骤完成一个基本操作(如取数、加法、存数、打印输出等)计算程序:是由完成某一特定任务的一组指令所组成。指令必须提供的信息:

a、执行什么样的操作b、参与操作的对象即数据是什么或地址是什么。注意区分:

a、存储单元的地址

b、存储单元的内容35指令在内存中的存放形式

36在微机中a、所有操作都是用二进制代码进行编码的;b、数据用二进制表示,且存放在存储器的预定地址的存储单元中。

本例编码后00000100:取数操作的操作码,地址:0000010100000010:加法操作地址:0000011100000101:存数操作地址:0000100100001000:打印输出操作,地址:0000101100000101:原始数据“5”,地址:0000000100000100:原始数据“4”,地址:0000001037

计算机执行指令的过程

38(1)执行程序时,给程序计数器PC赋以第一条指令的地址05H,就进入第一条指令的取指阶段,具体过程如下:①将PC的内容05H送至地址寄存器AR。②当PC的内容可靠地送入地址寄存器AR后,PC的内容加1变为06H。③地址寄存器AR把地址号05H通过地址总线AB送至存储器。经地址译码器译码,选中05H号单元。④CPU给出读命令至存储器。⑤将05H单元的内容04H()(指令操作码)读至数据总线DB上。39⑥读出的内容04H经过数据总线DB送至数据寄存器DR。⑦因是取指阶段,取出的为指令操作码,故DR将其送至指令寄存器IR,然后经过译码分析发出执行这条指令的各种控制信号。(2)取指阶段完成后,转入了执行第一条指令的阶段。经过译码分析,知道这是一条从内存单元取操作数的指令,接下去要先从指令的第二字节获取操作数地址,然后再从中读取数据。①PC的内容06H送至地址寄存器AR。40取指令操作数地址示意图41②当PC的内容可靠地送入地址寄存器AR后,PC的内容加1变为07H。③地址寄存器AR把地址号06H通过地址总线AB送至存储器。经地址译码器译码,选中06H号单元。④CPU给出读命令至存储器。⑤所选中的06H单元的内容01H(操作数地址)读至数据总线DB上。⑥读出的内容01H经过数据总线DB送至数据寄存器DR。⑦因读出的01H为操作数地址,所以在控制器的控制下将DR内容送往地址寄存器AR422.28088/8086微处理器主要内容:8088CPU外部引线及功能8088CPU的内部结构和特点各内部寄存器的功能8088的工作时序438088和8086的异同不相同:(1)外部数据总线位数的差别:

8086CPU有16位,在一个总线周期内可输入/输出一个字(16位数据),系统处理数据/对中断响应的速度快;

8088CPU有8位,准16位处理器。(2)指令队列容量的差别:

8086CPU的指令队列可容纳6个字节,且在每个总线周期中从存储器中取出2个字节的指令代码填入指令队列,这可提高取指操作和其它操作的并行率,从而提高系统工作速度;

8088指令队列只能容纳4个字节,且在每个总线周期中只能取一个字节的指令代码,从而增长了总线取指令的时间,在一定条件下可能影响取指令操作和其它操作的并行率。

448088和8086的异同不相同:(3)引脚特性的差别:两种CPU的引脚功能是相同的,但有以下几点不同:

a.AD15~AD0的定义不同:在8086中都定义为地址/数据复用总线;而在8088中,由于只需用8条数据总线,因此,对应予8086的AD15~AD8这8条引脚,只作地址线使用。

b.34号引脚的定义不同:在8086中定义为BHE信号;而在8088中定义为SS0,它与DT/R,IO/M一起用作最小方式下的周期状态信号。

c.28号引脚的相位不同:在8086中为M/IO;而在8088中被倒相,改为IO/M,以便与8080/8085系统的总线结构兼容。

458088和8086的异同相同:(1)类似的体系结构;(2)内部结构基本相同;(3)执行部件EU完全相同;(4)指令系统及寻址能力,程序的编制及设计方法都相同;所以两种CPU完全兼容。

461.8088/8086的指令流水线执行程序时,CPU重复执行:(1)从存储器取出下一条指令;(2)指令译码(或指令分析);(3)如果指令需要,从存储器读取操作数;(4)执行指令(包括算术逻辑运算、I/O操作、数据传送、控制转移等);(5)如果需要,将结果写入存储器。8088/8086CPU的特点执行单元(EU)和总线接口单元(BIU)47●指令执行部件EU:负责执行指令●总线接口部件BIU:负责取指令、取操作数和写结果。执行1执行2存结果取指2取指1执行3取数取数取指3忙碌忙碌忙碌忙碌忙碌忙碌EUBIUBUS48EU和BIU并行操作的实现:BIU内部的指令队列指令队列的作用:使得8086/8088的EU和BIU能够并行的工作,从而减少了CPU为取指令而等待的时间,提高了CPU的执行效率和运行速度,另外也降低了对存储器存取速度的要求49指令流水线技术一般情况下,CPU执行完一条指令就可以立即执行下一条指令,称为流水线技术,减少了CPU为取指令而等待的时间,从而提高了CPU的效率。502.内存的分段管理技术8086/8088CPU的内部是16位,产生216=64K个地址。如何提高寻址能力?如何实现对更大(如220)空间的寻址?——分段管理方法8088/8086CPU的特点51分段管理方法将内存空间分为多个逻辑段,每个逻辑段最大为64K个单元,段内每个单元的地址码(偏移地址或相对地址)长度为16位,满足其16位内部结构的要求;再为每个段设置段地址(也称段基地址),以区分不同的逻辑段。内存单元的地址为段地址和段内偏移地址。段寄存器:专门存放段地址地址寄存器:专门存放偏移地址8088/8086CPU的特点523.支持多处理器系统有最小模式和最大模式两种工作模式。最小模式:单处理机系统,CPU直接产生系统控制总线信号。最大模式:多处理器模式,总线控制器提供所有总线控制信号和命令信号8088/8086CPU的特点53

总结:8088/8086CPU的特点

●采用并行流水线工作方式通过设置指令预取队列实现●对内存空间实行分段管理:将内存分为4个段并设置地址段寄存器,以实现对1MB空间的寻址●支持多处理器系统548088工作模式:最小模式和最大模式。(1)最小模式:MN/MX=1单处理机模式;

控制信号较少,一般可不必接总线控制;

只包括一个处理器8088;

系统总线由8088的引线直接引出形成。(2)最大模式:MN/MX=0

多处理机模式;

控制信号多,须通过总线控制器与总线相连;

处理器8088和其他的处理器;

系统总线由8088和总线控制器共同产生。8088的外部引脚和功能55引脚定义的方法可大致分为:每个引脚只传送一种信息(RD等)引脚电平的高低不同的信号(IO/M等)CPU工作于不同方式有不同的名称和定义(WR/LOCK等)分时复用引脚(AD7~AD0等);引脚的输入和输出分别传送不同的信息(RQ/GT等)。5612345678910111213141516171819204039383736353433323130292827262524232221

GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC+5VAD15A16/S3A17/S4A18/S5A19/S6BHE/S7

MN/MXRDHOLDHLDAWRM/IO

DT/RDENALEINTATESTREADYRESET80868086

CPU引脚12345678910111213141516171819204039383736353433323130292827262524232221

GND

A14A13A12A11A10A9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC+5VA15A16/S3A17/S4A18/S5A19/S6SS0

MN/MXRDHOLDHLDAWRM/IO

DT/RDENALEINTATESTREADYRESET80888088CPU引脚57主要引线(最小模式)8088是工作在最小还是最大模式由MN/MX端状态决定。MN/MX=0工作于最大模式,反之工作于最小模式。AD7~AD0:低8位地址和数据信号分时复用。在传送地址信号时为单向,传送数据信号时为双向。A19~A16:高4位地址信号,分时复用。A15~A8:输出8位地址信号。58主要的控制和状态信号WR:写信号RD:读信号IO/M:为“0”表示访问内存为“1”表示访问接口DEN:低电平有效时,允许进行读/写操作RESET:复位信号59[例]:当WR=1,RD=0,IO/M=0时,表示CPU当前正在进行读存储器操作60READY信号:T1T2T3TwaitT461中断请求和响应信号INTR:可屏蔽中断请求输入端NMI:非屏蔽中断请求输入端INTA:中断响应输出端62总线保持信号HOLD:总线保持请求信号输入端。当CPU以外的其他设备要求占用总线时,通过该引脚向CPU发出请求HLDA:总线保持响应信号输出端。CPU对HOLD信号的响应信号638088CPU的功能结构8088内部由两部分组成:执行单元(EU)总线接口单元(BIU)648088处理器内部结构65执行单元功能指令的执行从指令队列中取指令代码译码在ALU中完成数据的运算运算结果的特征保存在标志寄存器FLAGS中。66执行单元包括

运算器8个通用寄存器1个标志寄存器

EU部分控制电路67总线接口单元功能:从内存中取指令到指令预取队列负责与内存或输入/输出接口之间的数据传送在执行转移程序时,BIU使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。68总线接口单元包括

段寄存器指令指针寄存器指令队列

地址加法器总线控制逻辑电路698088的指令执行过程708088的内部寄存器含14个16位寄存器,按功能可分为三类8个通用寄存器4个段寄存器2个控制寄存器718088的内部寄存器72通用寄存器数据寄存器(AX,BX,CX,DX)地址指针寄存器(SP,BP)变址寄存器(SI,DI)73数据寄存器8088含4个16位数据寄存器,它们又可分为8个8位寄存器,即:AXAH,ALBXBH,BLCXCH,CLDXDH,DL74数据寄存器特有的习惯用法AX:累加器。所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中BX:基址寄存器。在间接寻址中用于存放基地址;CX:计数寄存器。用于在循环或串操作指令中存放计数值DX:数据寄存器。在间接寻址的I/O指令中存放I/O端口地址;在32位乘除法运算时,存放高16位数75地址指针寄存器SP:堆栈指针寄存器,其内容为栈顶的偏移地址BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址堆栈(Stack)是主存中一个特殊的区域,采用“先进后出”或“后进先出”存取操作方式,用8088/8086形成的微机系统中,堆栈区域被称为堆栈段76BX与BP在应用上的区别作为通用寄存器,二者均可用于存放数据作为基址寄存器,用BX表示所寻找的数据在数据段;用BP则表示数据在堆栈段77变址寄存器SI:源变址寄存器DI:目标变址寄存器用途:常用于指令的间接寻址或变址寻址。在串操作指令中,分别用SI、DI存放源操作数及目标操作数的偏移地址。现在不必完全理解,以后会详细展开78段寄存器用于存放相应逻辑段的段基地址

CS:代码段寄存器。代码段存放指令代码

DS:数据段寄存器

ES:附加段寄存器

SS:堆栈段寄存器:指示堆栈区域的位置存放操作数79控制寄存器(1)IP:指令指针寄存器,其内容为下一条要执行指令的偏移地址FLAGS:标志寄存器,存放运算结果的特征6个状态标志位(CF,SF,AF,PF,OF,ZF)3个控制标志位(IF,TF,DF)80标志寄存器FLAGS中存放的9个标志位:状态标志:用来表示运算结果的特征(CF、PF、AF、ZF、SF和OF)

;控制标志:用来控制CPU的操作(IF、DF和TF)。(1)CF(CarryFlag)进位标志位。CF=1,表示本次运算中最高位(第7位或第15位)有进位(加法运算时)或有借位(减法运算时)。无符号数加/减:若CF=1,表示结果超出了数据范围。有符号数运算:CF对运算结果没有直接意义。81(2)PF(ParityFlag)奇偶标志位。PF=1:本次运算结果的低八位中有偶数个1;

PF=0:表示有奇数1。PF可以用来进行奇偶校验,或者用来生成奇偶校验位。(3)AF(AuxiliaryCarryFlag)辅助进位标志位。

AF=1,表示8位运算结果(限使用AL寄存器)中低4位向高4位有进位(加法运算时)或有借位(减法运算时)。这个标志位只在BCD数运算中起作用。82(4)ZF(ZeroFlag)零标志位。ZF=1,表示运算结果为0(各位全为0),否则ZF=0。(5)SF(SignFlag)符号标志位。SF=1,表示运算结果的最高位(第7位或第15位)为1,否则SF=0。(6)OF(OverflowFlag)溢出标志位。OF=1表示二个用补码表示的有符号数的加法或减法结果超出了该字长所能表示的范围。例如,进行8位运算时,OF=1表示运算结果大于+127或小于-128,此时不能得到正确的运算结果。OF标志对无符号数的运算结果没有意义。

溢出标志位是根据操作数的符号及其变化情况设置的。例如,加法运算时,两个操作数符号相同,而结果的符号与之相反,则OF=1;否则OF=0。83(7)IF(InterruptFlag)中断允许标志位。IF=1,表示允许CPU响应可屏蔽中断。IF标志可通过STI指令置位(置1),也可通过CLI指令复位(清零)。(8)DF(DirectionFlag)方向标志位。在串操作指令中,若DF=0,表示串操作指令执行后地址指针自动增量,串操作由低地址向高地址进行;DF=1,表示地址指针自动减量,串操作由高地址向低地址进行。DF标志位可通过STD指令置位,也可通过CLD指令复位。(9)TF(TrapFlag)单步标志位。TF=1,控制CPU进入单步工作方式。在这种工作方式下,CPU每执行完一条指令就会自动产生一次内部中断,这在程序调试过程中很有用。84例:若AL=3BH,AH=7DH,指出AL和AH中的内容相加、相减后,标志CF,AF,PF,SF,OF和ZF的状态。(1)(AL)+(AH)由运算结果可知:CF=C7(D7位上的进位)=0(无进位);AF=C3(D3位上的进位)=1(有辅助进位);PF=1(运算结果有4个1);SF=D7=1(运算结果符号位为1);OF=C7⊕C6=0⊕1=1(有溢出);ZF=0(运算结果不为0)。85由运算结果可知:CF=1(有借位);AF=1(有辅助进位);PF=1(运算结果中有6个1);SF=1(符号位为1);OF=0(无溢出);ZF=0(运算结果不为0)。运算产生的标志位由程序员根据需要选择使用。例如,如果参加运算的两个数是有符号数(用补码表示),他可以用OF判断结果是否产生溢出,这时他不必关心CF的状态;如果参加运算的两个数是无符号数,他可以用CF判断结果是否超出范围,无需关心OF的状态。(2)(AL)-(AH)86①指令指针寄存器IPIP(InstructionPointer)为指令指针寄存器,指示主存储器指令的位置随着指令的执行,IP将自动修改以指示下一条指令所在的存储器位置IP寄存器是一个专用寄存器IP寄存器与CS段寄存器联合使用以确定下一条指令的存储单元地址控制寄存器(2)(续)87②标志寄存器FLAGS标志(Flag)用于反映指令执行结果或控制指令执行形式8088处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器)

程序设计需要利用标志的状态88★标志寄存器-分类状态标志--用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它CFZFSFPFOFAF控制标志--可由程序根据需要用指令设置,用于控制处理器执行指令的方式DFIFTFOF111512DF10IF9TF8SF7ZF65AF43PF21CF0标志寄存器FLAGS89★进位标志CF(CarryFlag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=03AH+7CH=B6H,没有进位:CF=0AAH+7CH=(1)26H,有进位:CF=1OF111512DF10IF9TF8SF7ZF65AF43PF21CF090★零标志ZF(ZeroFlag)若运算结果为0,则ZF=1;否则ZF=03AH+7CH=B6H,结果不是零:ZF=084H+7CH=(1)00H,结果是零:ZF=1注意:ZF为1表示的结果是0OF111512DF10IF9TF8SF7ZF65AF43PF21CF091★符号标志SF(SignFlag)运算结果最高位为1,则SF=1;否则SF=03AH+7CH=B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0

有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态OF111512DF10IF9TF8SF7ZF65AF43PF21CF092★奇偶标志PF(ParityFlag)当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=03AH+7CH=B6H=10110110B结果中有5个“1”,是奇数:PF=0

PF标志仅反映最低8位中“1”的个数是

偶或奇,即使是进行16位字操作OF111512DF10IF9TF8SF7ZF65AF43PF21CF093★溢出标志OF(OverflowFlag)若算术运算的结果有溢出,则OF=1;否则OF=03AH+7CH=B6H,产生溢出:OF=1AAH+7CH=(1)26H,没有溢出:OF=0OF111512DF10IF9TF8SF7ZF65AF43PF21CF094★什么是溢出?处理器内部以补码表示有符号数8位表达的整数范围是:+127~-12816位表达的范围是:+32767~-32768如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确3AH+7CH=B6H,就是58+124=182,已经超出-128~+127范围,产生溢出,故OF=1;补码B6H表达真值是-74,显然运算结果也不正确

B6H=10110110B,最高位为1,作为有符号数是负数对B6H求反加1等于:01001001B+1=01001010B=4AH=74

所以,B6H表达有符号数的真值为-74?95★溢出和进位的区别溢出标志OF和进位标志CF是两个意义不同的标志进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确?96★溢出和进位的对比例1:3AH+7CH=B6H无符号数运算: 58+124=182

范围内(0~255),无进位有符号数运算: 58+124=182

范围外,有溢出例2:AAH+7CH=(1)26H无符号数运算: 170+124=294

范围外,有进位有符号数运算: -86+124=28

范围内,无溢出97★溢出和进位的应用场合处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出98★溢出的判断判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确其他情况下,则不会产生溢出例1:3AH+7CH=B6H 溢出例2:AAH+7CH 无溢出例3:3AH-7CH 无溢出例4:AAH-7CH=2DH 溢出99

★辅助进位标志AF(AuxiliaryCarryFlag)3AH+7CH=B6H,D3有进位:AF=1运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=0这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心OF111512DF10IF9TF8SF7ZF65AF43PF21CF0100★方向标志DF(DirectionFlag)用于串操作指令中,控制地址的变化方向:设置DF=0,存储器地址自动增加;设置DF=1,存储器地址自动减少CLD指令复位方向标志:DF=0STD指令置位方向标志:DF=1OF111512DF10IF9TF8SF7ZF65AF43PF21CF0101★中断允许标志IF(Interrupt-enableFlag)控制可屏蔽中断是否可以被处理器响应:设置IF=1,则允许中断;设置IF=0,则禁止中断CLI指令复位中断标志:IF=0STI指令置位中断标志:IF=1OF111512DF10IF9TF8SF7ZF65AF43PF21CF0102★陷阱标志TF(TrapFlag)用于控制处理器进入单步操作方式:设置TF=0,处理器正常工作;设置TF=1,处理器单步执行指令单步执行指令——处理器在每条指令执行结束时,便产生一个编号为1的内部中断这种内部中断称为单步中断所以TF也称为单步标志利用单步中断可对程序进行逐条指令的调试这种逐条指令调试程序的方法就是单步调试OF111512DF10IF9TF8SF7ZF65AF43PF21CF01031.物理地址和逻辑地址8086/8088CPU存储系统中,每个存储单元都有一个唯一的20位编号,从00000H–FFFFFH。16位机的寄存器为16位,分段后在用户编程时,采用逻辑地址表示物理地址,形式为:段基地址:段内偏移地址分隔符段首地址的高16位8088/8086的存储器组织104存储器物理地址的形成逻辑地址是程序中使用的地址,它由段基址和段内偏移值所组成,段基址与段内偏移值都为16位的二进制数。物理地址也叫实际地址或绝对地址,是CPU访问存储器时实际使用的地址,为20位地址。

物理地址=段基址×10H+段内偏移地址105106通过此例说明,每个内存单元有唯一的物理地址,但可由不同的段地址和偏移地址构成。物理地址相同,就选中同一单元DSESSSCSIP数据暂存器PSW标志寄存器执行部件控制电路指令译码器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组指令队列总线接口控制电路运算器地址加法器、、、指令1指令2指令3指令4、、、数据1数据2数据3、、、地址总线AB数据总线DB控制总线CB地址译码器地址12300H=00010010001100000000BA19A16A12A020根地址线:107例:设某存储单元的段基址为2000H,偏移地址是5678H。写出该单元的逻辑地址、物理地址,以及该单元所在段的首末单元物理地址。解:(1)该单元的逻辑地址表示为2000H:5678H

(2)该单元的物理地址是:PA=段基址×10H+偏移地址(EA)

=2000H×10H+5678H=25678H

(3)该单元所在段的首单元地址是:段基址×10H=20000H;

(4)该单元所在段的末单元地址是:段起始地址+FFFFH=2FFFFH。108物理地址的计算示意图109

[注意]一个物理地址对应多个逻辑地址.如01234H存储单元其逻辑地址可表示为:

0100H:0234H也可表示为:

0120H:0034H如图2-10示.110例已知CS=1055H,DS=250AHES=2EF0HSS=8FF0H某操作数偏移地址=0204H画出各段在内存中的分布、段首地址及操作数的物理地址10550H250A0H2EF00H8FF00HCSDSESSS111段与段之间可以:

◆重合◆重叠◆紧密连接◆间隔分开112分段(段加偏移)寻址的好处:允许程序在存储器内重定位(浮动)允许实模式下编写的程序在保护模式下运行

可重定位程序是一个不加修改就可以在任何存储区域中运行的程序。113段寄存器8086有4个16位段寄存器CS(代码段)指明代码段的起始地址SS(堆栈段)指明堆栈段的起始地址DS(数据段)指明数据段的起始地址ES(附加段)指明附加段的起始地址每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途图示114★代码段寄存器CS(CodeSegment)代码段用来存放程序的指令序列代码段寄存器CS存放代码段的段地址指令指针寄存器IP指示下条指令的偏移地址处理器利用CS:IP取得下一条要执行的指令115★堆栈段寄存器SS(StackSegment)堆栈段确定堆栈所在的主存区域堆栈段寄存器SS存放堆栈段的段地址堆栈指针寄存器SP指示堆栈栈顶的偏移地址处理器利用SS:SP操作堆栈顶的数据116★数据段寄存器DS(DataSegment)数据段存放运行程序所用的数据数据段寄存器DS存放数据段的段地址各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址处理器利用DS:EA存取数据段中的数据117★附加段寄存器ES(ExtraSegment)附加段是附加的数据段,也保存数据:附加段寄存器ES存放附加段的段地址各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址处理器利用ES:EA存取附加段中的数据串操作指令将附加段作为其目的操作数的存放区域118段寄存器的使用程序段:用来存放程序的指令代码;数据段/附加段:用来存放数据和运算结果;堆栈段:内存中一个特殊区域,用于传递参数、保存数据和状态信息。常用于响应中断或子程序调用。119★如何分配各个逻辑段程序的指令序列必须安排在代码段程序使用的堆栈一定在堆栈段程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段数据的存放比较灵活,实际上可以存放在任何一种逻辑段中120★段超越前缀指令没有指明时,一般的数据访问在DS段;使用BP访问主存,则在SS段默认的情况允许改变,需要使用段超越前缀指令;8088指令系统中有4个:CS: ;代码段超越,使用代码段的数据SS: ;堆栈段超越,使用堆栈段的数据DS: ;数据段超越,使用数据段的数据ES: ;附加段超越,使用附加段的数据示例1218086/8088对段寄存器使用的约定序号内存访问类型默认段寄存器可重设的段寄存器段内偏移地址来源1取指令CS无IP2堆栈操作SS无SP3串操作之源串DSES、SSSI4串操作之目标串ES无DI5BP用作基址寻址SSES、DS按寻址方式计算得有效地址6一般数据存取DSES、SS按寻址方式计算得有效地址122工作时序:表征CPU各引脚在时间上的工作关系CPU工作时序决定系统各部件间的同步和定时,描述CPU引脚如何实现总线操作。什么是总线操作?8088/8086CPU的工作时序123总线操作是指CPU通过总线对外的各种操作。8088的总线操作主要有:存储器读、I/O读操作存储器写、I/O写操作中断响应操作总线请求及响应操作CPU正在进行内部操作、并不进行实际对外操作的空闲状态Ti什么是总线周期?124时钟周期CPU的一切操作都是在系统主时钟CLK的控制下按节拍有序地进行的。系统主时钟一个周期信号(时钟脉冲)所持续的时间称为时钟周期(T),大小等于频率的倒数,是CPU的基本时间计量单位。如某CPU的主频f=5MHz,则时钟周期T=1/f=1/5MHz=200ns(1ns=10-9s)

125总线周期

CPU通过总线对存储器或I/O接口进行一次读/写操作的过程称为总线周期。为完成对存储器或I/O端口的一次访问,CPU需要先后发出存储器或I/O端口地址,发出读或者写操作命令,进行数据的传输。以上的每一个操作都需要延续一个或几个时钟周期。所以,一个总线周期由若干个时钟周期(T)组成。126指令周期CPU执行一条指令的时间(包括取指、译码、读写操作数到执行完成所需的全部时间)。一个指令周期由若干个总线周期组成。取指令需要一个或多个总线周期,如果指令的操作数来自内存,则需要另一个或多个总线周期取出操作数,如果要把结果写回内存,还要增加总线周期。因此,不同指令的指令周期长度各不相同。1278088的基本总线周期需要4个时钟周期(T1,T2,T3和T4)当需要延长总线周期时需要插入等待状态Tw何时有总线周期?128任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码.任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期只有执行IN指令才出现I/O读总线周期,执行OUT指令才出现I/O写总线周期CPU响应可屏蔽中断时生成中断响应总线周期如何实现同步?129关键问题:总线操作中如何实现时序同步?CPU总线周期采用同步时序:各部件都以系统时钟信号为基准当相互不能配合时,快速部件(CPU)插入等待状态等待慢速部件(I/O和存储器)CPU与外设接口常采用异步时序,它们通过应答联络信号实现同步操作130总线周期

总线周期总线周期指令周期M1(MachineCycle)(取指)M2(读存储器)M3(写存储器)时钟周期(T状态)

T1

T2T3T4T5T6T7T8T9

131132第4章:等待状态Tw的插入133例:8088CPU读存储器总线周期134(DS)=3000H,(BX)=500CH,(3500CH)=9AH

执行MOVAL,[BX]1.IO/M变低,

CPU将对内存进行操作2.A19~A0上出现地址信号

00110101000000001100

A19A15A11A7A3A03.ALE上出现正脉冲信号4.DT/R变低,数据收发器处于接受状态T1状态T1T2T3T4A19~A16/S6~S3IO/MA15~A8

AD7~AD0ALERDDT/RDENCLKS6~S3A7~A0

A19~A16

D7~D0135T1T2T3T4A19~A16/S6~S3IO/MA15~A8

AD7~AD0ALERDDT/RDENCLKS6~S3A7~A0

A19~A16

D7~D05.A19~A16上出现状态信号

0IF11S6S5S4S3使用DS

6.AD7~AD0变高阻态7.RD变低发给内存,CPU将进行读操作8.DEN变低允许数据收发器进行数据传送T2状态(DS)=3000H,(BX)=500CH,(3500CH)=9AH

执行

MOVAL,[BX]136T1T2T3T4A19~A16/S6~S3IO/MA15~A8

AD7~AD0ALERDDT/RDENCLKS6~S3A7~A0

A19~A16

D7~D0(DS)=3000H,(BX)=500CH,(3500CH)=9AH

执行MOVAL,[BX]T3状态9.AD7~AD0上出现数据信号

10011010AD7AD0

数据由3500CH内存单元送出137T1T2T3T4A19~A16/S6~S3IO/MA15~A8

AD7~AD0ALERDDT/RDENCLKS6~S3A7~A0

A19~A16

D7~D0(DS)=3000H,(BX)=500CH,(3500CH)=9AH

执行MOVAL,[BX]10.RD变高,

CPU从数据线上读数据,

将数据9AH读到AL中11.DEN变高,数据收发器与总线断开,

AD7~AD0变高阻态T4状态138简例:微处理器最基本的4种总线周期:(1)存储器读总线周期(2)存储器写总线周期(3)I/O读总线周期(4)I/O写总线周期139存储器写总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输出数据A19~A16S6~S3READY(高电平)IO/M*WR*T1状态——输出20位存储器地址A19~A0IO/M*输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号WR*和数据D7~D0T3和Tw状态——检测数据传送是否能够完成T4状态——完成数据传送140I/O写总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输出数据0000S6~S3READY(高电平)IO/M*WR*T1状态——输出16位I/O地址A15~A0IO/M*输出高电平,表示I/O操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号WR*和数据D7~D0T3和Tw状态——检测数据传送是否能够完成T4状态——完成数据传送141存储器读总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输入数据A19~A16S6~S3READY(高电平)IO/M*RD*T1状态——输出20位存储器地址A19~A0IO/M*输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号RD*T3和Tw状态——检测数据传送是否能够完成T4状态——前沿读取数据,完成数据传送142I/O读总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输入数据S6~S3READY(高电平)IO/M*RD*0000T1状态——输出16位I/O地址A15~A0IO/M*输出高电平,表示I/O操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号RD*T3和Tw状态——检测数据传送是否能够完成T4状态——前沿读取数据,完成数据传送143插入等待状态Tw同步时序通过插入等待状态,来使速度差别较大的两部分保持同步在读写总线周期中,判断是否插入Tw1.在T3的前沿检测READY引脚是否有效2.如果READY无效,在T3和T4之间插入一个等效于T3的Tw,转13.如果READY有效,执行完该T状态,进入T4状态144总线周期

T1T2T3T4TiTi

T1T2T3TwTwTwT4TiTi

总线周期总线周期若干个1~2个基本总线周期由4个T状态组成:T1、T2、T3、T4等待时钟周期Tw,在总线周期的T3和T4之间插入空闲时钟周期Ti,在两个总线周期之间插入动态145各种周期的动态演示146总线总线的基本概念和分类总线的工作方式常用系统总线标准147总线

是一组导线和相关的控制、驱动电路的集合。是计算机系统各部件之间传输地址、数据和控制信息的通道地址总线(AB)数据总线(DB)控制总线(CB)148(1)通用性

采用了总线标准可以为各模块的互连提供一个标准的界面,这个界面对于界面两端的模块来说是透明的,界面的任一方只需根据总线标准要求设计和实现接口的功能,而不用考虑另一方的接口方式,所以按总线标准设计的接口具有广泛的通用性。

总线的优点

149(2)便于用户的二次开发由于采用同样总线标准设计制造各种功能的模块板,各个模块板是挂在总线上的相互独立的模块,因此用户可以根据自己的需要选用现成的功能模块板,也可根据自己需要自行设计符合总线标准的模块板。这样节省硬件的重复性开发,也使得编写该模块的相应软件更容易,给调试和修改带来诸多方便,从而提高了效率,降低了成本。

150(3)便于系统的更新随着集成电路技术的发展,新的芯片不断产生,微机系统需要不断更新。采用统一标准的总线结构对于系统的更新就更加方便。(4)可不断提高系统的功能由于采用了标准总线,计算机的主要功能部分做成不同的模块板挂在总线上,这样就给系统提供了在原设计的基础上以最小的变动来跟随市场要求的可能性。只要根据新的要求,设计新的模块,插在总线上就可以了。151总线分类CPU总线系统总线外设总线片内总线片外总线按相对CPU的位置按层次结构152系统总线(1)ISA总线ISA总线是IBMPC/AT机上使用的总线,为80286CPU而设计的,又称为PCAT总线(2)EISA总线EISA总线是以Compag为代表的几个公司,为解决瓶颈现象,针对486微机而设计的。(3)PCI总线随着各种应用软件的发展,需要在微处理器与外部设备之间进行大量的高速的数据传输,以往的ISA总线,及以后发展的EISA总线都未能解决总线及高效率传输的问题。

153于是由Intel公司首先推出PCI总线,继而由多家公司联合建立、发展和推广了PCI总线。PCI总线解决了微处理器与外围设备之间的高速通道,总线的频率为33MHz,与CPU的时钟频率无关,总线宽度为32位,并可以扩展到64位,所以其带宽达到132Mb/s~264Mb/s。PCI总线与ISA、EISA总线完全兼容,尽管每台微型计算机系统的插槽数目有限,但PCI局部总线规格可以提供“共用插槽”,以便容纳一个PCI及一个ISA。PCI总线采用了一种独特的中间缓冲器的设计,把处理器子系统与外围设备分开,这样使得PCI的结构不受处理器种类的限制。154总线结构(从微机系统结构来划分)(面向系统的)

单总线结构CPUMM

I/OI/OI/O155●

优点

控制简单方便,扩充方便●

缺点系统总体传输的效率和速度受到限制。因为同一时刻只能在两个设备之间传送数据。

156多总线结构面向CPU的双总线结构面向主存的双总线结构双总线结构多总线结构157面向CPU的双总线结构存储总线:CPU与存储器之间的总线。存储器与I/O接口间无直接通道CPU

M

I/O

I/O

I/O158●优点提高了微机系统信息传送的效率和传送的速度。(双总线)●缺点由于外设与主存储器之间没有直接的通路,它们之间的信息交换都必须通过CPU才能进行中转,要求CPU化大量的时间来进行信息的输入输出处理,降低了CPU的工作效率。159面向存储器的双总线结构在单总线结构基础上增加一条CPU到存储器的高速总线CPUMI/O

I/OI/O160●优点提高微机系统信息传送的效率,减轻了总线的负担。●缺点硬件造价高。多总线结构:相见教材161总线的主要性能指标总线带宽(B/S):单位时间内总线上可传送的数据量总线位宽(bit):能同时传送的数据位数总线的工作频率(MHz),也称总线时钟频率总线带宽=(总线位宽/8)(工作频率/每个存取周期的时钟数)162总线技术1、总线的基本功能总线上部件的工作方式:

主控方式:部件工作于主控方式时可控制总线并启动信息传送。

从方式:部件工作于从方式时只能按主控部件的要求工作。

163总线传输需要解决的问题总线传输同步总线仲裁控制出错处理总线驱动1642、总线数据传输的同步方式源部件、目的部件数据在总线上传输时,送出数据的部件叫源部件,接受数据的部件叫目的部件。定时信号总线上的数据传送必须由定时信号控制,定时信号使源部件和目的部件之间的操作同步。定时方式同步定时方式、异步定时方式、半同步定时方式。165(1)同步定时方式总线上的数据传送用一个共同的时钟来同步双方的操作,发送和接收信号都在固定的时刻发出。数据源READY

ACK目的

t1

t2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论