第2章 微处理器结构(1)_第1页
第2章 微处理器结构(1)_第2页
第2章 微处理器结构(1)_第3页
第2章 微处理器结构(1)_第4页
第2章 微处理器结构(1)_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章 微型计算机的组成及微处理器微型计算机的组成及微处理器结构结构教学目的及要求教学目的及要求 掌握微型计算机系统的组成及主要技术性能指标 掌握8086CPU的功能结构; 掌握状态标志和控制标志的意义; 掌握8086CPU的存储器组织及存储器管理; 掌握逻辑地址和物理地址; 理解8086的地址数据引脚和读写控制引脚; 掌握最小工作模式的典型配置; 理解并掌握总线的时序运算器运算器 控制器控制器 寄存器组寄存器组 内存储器内存储器 总线总线输入输出输入输出接口电路接口电路外部设备外部设备 软件软件微处理器微处理器微型计算微型计算机机微型计算机系统微型计算机系统2.1 微型计算机系统的组成

2、微型计算机系统的组成微机系统微型计算机系统软件:OS、汇编、编译等外设:打印机、键盘、CRT等微处理器系统总线:AB、CB、DB存贮器:ROM、RAMI/O接口:串/并行接口等ALU累加器、寄存器控制器一、一、 微处理器微处理器CPU在内部结构上包含下面这些部分: 算术逻辑部件; 累加器和通用寄存器组; 程序计数器(指令指针)、指令寄存器和译码器; 时序和控制部件。CPU功能: 可以进行算术和逻辑运算 可保存较少量数据 能对指令进行译码并执行规定的动作 能和存储器、外设交换数据 提供整个系统所需要的定时和控制 可以响应其他部件发来的中断请求CPU的基本性能指标:1 1、主频、主频主频单位MHZ

3、(兆赫兹)指令执行单位(MIPS:每秒运行多少百万条指令)2 2、存储容量、存储容量3 3、字长、字长 字长是指微处理器内部一次能够并行处理二进制代码的位数。字长与微处理器内部寄存器以及CPU内部总线宽度是一致的,.4 4、外部设备的扩展能力、外部设备的扩展能力5 5、软件配置能力、软件配置能力二、微型计算机二、微型计算机微型计算机由CPU、存储器、输入输出接口电路和系统总线构成。1、内部存储器:按照读写方式的不同,分为ROM和RAM两种类型;2、输入/输出接口电路是外围设备与微型计算机之间的连接电路,在两者之间进行信息交换的过程中,起暂存、缓冲、类型变换及时序匹配的作用;3、总线是CPU与其

4、它各功能部件之间进行信息传输的通道,按所传送信息的不同类型,可分为:地址总线AB:传送地址信息数据总线DB :传送数据信息控制总线CB :传送控制信息三、微型计算机三、微型计算机系统系统以微型计算机为主体,配上系统软件和外设之后,就成了微型计算机系统。系统软件系统软件是使用、管理计算机本身的软件。软件软件应用软件应用软件是为解决某个实际问题而编制的程序。外设外设:打印机、键盘、显示器等等。一、一、8086CPU的内部结构的内部结构 8086CPU是典型的16位微处理器,它具有16位的内部数据总线和16位的外部数据总线。 8086CPU的内部结构框图如下所示。2.2 8086CPU的功能结构的功

5、能结构8086CPU8086CPU内部结构框图内部结构框图 从大的结构和功能上讲,8086可分为两个部分,即 执行单元(EU,Execution Unit) 总线接口单元(BIU,Bus Interface Unit) EUBIU地址加法器专用寄存器组指令流队列总线控制电路通用寄存器组算数逻辑运算单元ALU标志寄存器FREU控制器8086CPU EU和BIU是两个相互独立的部分,可并行操作,从而使8086取指部分与执行部分分开。 在一条指令的执行过程中可以取出下一条(或多条)指令,指令在指令队列中排队; 在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU

6、的利用率和整个运行速度。 取指取指取指取指取指取指取指取指得到数据得到数据等待等待执行执行执行执行执行执行执行执行EU:BIU:对于8080与8085及较早的8位微处理器: 程序执行由取指令和执行指令的循环来完成的,每条指令执行完后CPU必须等待到下条指令取出来后才能执行。取指取指执行执行取指取指执行执行.取指取指执行执行时间坐标时间坐标8086/80888086/8088微处理器微处理器: : BIUBIU和和EUEU分开,取指和执行可以重迭,分开,取指和执行可以重迭, 大大减少了等待取指所需的时间,提高大大减少了等待取指所需的时间,提高CPUCPU的的利用率。利用率。 8086的指令队列为

7、6个字节。在EU执行指令的同时,BIU从内存中取下面1条或几条指令,取来的指令就依次放在指令队列中。它们采用 “先进先出”的原则,按顺序存放,并按顺序取到 EU 中去执行。 其操作将遵循下列原则:(1)取指时,每当指令队列缓冲器中存满1条指令后,EU就立即开始执行。(2)指令队列缓冲器中只要空出2个指令字节时,BIU便自动执行取指操作,直到填满为止。(3)在EU执行指令的过程中,指令需要对存储器或IO设备存取数据时,BIU将在执行完现行取指的存储器周期后的下一个存储器周期,对指定的内存单元或IO设备进行存取操作,交换的数据经BIU由EU进行处理。 (4)当 EU执行完转移、调用和返回指令时,则

8、要清除指令队列缓冲器,并要求BIU从新的地址重新开始取指令,新取的第1条指令将直接经指令队列送到EU 去执行,随后取来的指令将填人指令队列缓冲器。由于BIU与EU是分开并独立工作的,因此,在一般情况下,CPU 执行完1条指令后就可以立即执行下1条指令,而不需要像以往8位CPU那样重复地进行先取指令和后执行指令的串行操作。16位CPU这种并行重叠操作的特点,提高了总线的信息传输效率和整个系统的执行速度。二、二、8086CPU的寄存器结构的寄存器结构内部结构?内部结构?1、通用寄存器(1 1)数据寄存器)数据寄存器 AXAX、BXBX、CXCX、DX DX 作为通用寄存器作为通用寄存器。用来暂存计

9、算过程中所用到的操作数,结果或其它信息。 访问形式:可以用16位的访问;或者可以用字节(8位)形式访问。它们的高8位记作 : AH 、BH 、CH 、DH 。它们的低8位记作 : AL 、BL 、CL 、DL 。AX(Accumulator)作为累加器。 它是算术运算的主要寄存器,所有I/O指令都使用这一寄存器与外部设备交换数据。 例:IN AL, 20H OUT 30H ,AXBX Base 用作基址寄存器使用。 在计算内存储器地址时,经常用来存放基址。 例:MOV AX, BX+03HCXCount可以作计数寄存器使用。 在循环LOOP指令和串处理指令中用作隐含计数器。 例:MOV CX

10、, 200HAGAIN:LOOP AGAIN ;(CX)-1(CX),结果0转AGAINDXData可以作为数据寄存器使用。 一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;对某些I/O操作DX可用来存放I/O的端口地址。 例:MUL BX ; (AX)(BX)(DX)(AX)(2 2)指针寄存器()指针寄存器(SPSP、BP BP ) SP(stack pointer)堆栈指针寄存器 用来指示栈顶的偏移地址, 必须与SS段寄存器联合使用确定实际地址。 BP(base pointer)基址指针寄存器 可以与SS寄存器联合使用来确定堆栈段中某一存

11、储器单元地址。(3 3)变址寄存器)变址寄存器( (SI SI 、 DI) DI)SISource Index Register 源变址寄存器。DIDestination Index 目的变址寄存器。使用场合:常用于变址寻址。 一般与DS联用,用来确定数据段中某一存储单元的地址, SI 、DI具有自动增量和自动减量功能. 例:MOV AX, SI2 2、段寄存器、段寄存器段寄存器: 4个16位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换使用。 CS Code Segment Register 代码段寄存器 用来存放当前代码段基地址(程序一般放在代码段)。 DS Data

12、 Segment Register数据段寄存器 用来存放当前数据段寄存器基地址。 SS Stack Segment Register堆栈段寄存器, 用来存放识别当前堆栈段基地址。 ES Extra Segment Register附加段寄存器, 用来存放识别当前附加段基地址。3 3、控制寄存器、控制寄存器控制寄存器:IP 、FRIP Instruction Pointer 指令指针寄存器 用来存储代码段中的偏移地址; 程序运行过程中IP始终指向下一次要取出的指令偏移地址。FR Flag Register 标志寄存器 由状态标志、控制标志构成。只用了其中9位, 6位状态标志 , 3位控制标志。O

13、FOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCF0 015152 24 45 56 67 78 89 91010q状态标志状态标志: :用来记录程序中运行结果的状态信息作为后续条件转移指令的转移控制条件。状态标志包括6位:CF 、 PF 、 AF 、 ZF 、 SF 、 OF 。 CF(Carry Flag)进位标志 CF=1CF=1:记录运算时从最高有效位产生进位值。CF=0CF=0:记录运算时从最高有效位不产生进值。PF(Parity Flag)奇偶标志 PF=1PF=1: 结果操作数低8位中有偶数个1。PF=0PF=0: 结果操作数低8位中有奇数个1。用来

14、为机器中传送信息时可能产生的代码出现情况提供检验条件。AF(Auxiliary Carry Flag)辅助进位标志 AF=1AF=1:记录运算时第3位(半个字节)产生进位值。 AF=0AF=0:记录运算时第3位(半个字节)不产生进位值。 ZF(Zero Flag)零标志 ZF=1ZF=1:运算结果为0。 ZF=0ZF=0:运算结果不为0。SF(Sign Flag)符号标志 SF=1SF=1:记录运算结果的符号为负符号为负。SF=0SF=0:记录运算结果的符号为正符号为正。 OF(Overflow Flag)溢出标志(一般指补码溢出)OF=1OF=1:在运算过程中,如操作数超过了机器表示的范围称

15、为溢出。OF=0OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为不溢出。字节允许范围 -128+127,字运算范围 -32768+32767 。q 控制标志控制标志: : 对控制标志位进行设置后,对其后的操作起控制作用。 控制标志位包括3位: DF 、TF、IF。 方向标志 DF、中断标志IF、跟踪(陷阱)标志TF。 DF(Direction Flag)方向标志位 DF=1DF=1,每次串处理操作串处理操作后使变址寄存器SISI和和DIDI减量,使串处理从高地址向低地址方向处理。 DF=0DF=0,每次串处理操作串处理操作后使变址寄存器SISI和和DIDI增量,使串处理从低地址向高

16、地址方向处理。 DF方向标志位是在串处理指令中控制处理信息的方向用的。 IF(Interupt Flag)中断标志 位 IF=1, IF=1, 允许外部可屏蔽中断允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。 IF=0, IF=0, 关闭中断关闭中断。CPU禁止响应可屏蔽中断请求。 IF的状态对不可屏蔽中断和内部软中断没有影响。 TF(Trap Flag)跟踪(陷阱)标志位 TF=1TF=1 , ,每执行一条指令后,自动产生一次内部中断每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。 TF=0, CPUTF=0, CPU正常工作,

17、不产生陷阱正常工作,不产生陷阱。 由系统程序或用户程序根据需要用指令来设置的根据需要用指令来设置的。 由中央处理器,根据计算结果自动设置的根据计算结果自动设置的,机器提供了设置状态信息指令,必要时,程序员可以用这些指令来建立状态信息。总结:总结:1 10 00 00 01 11 10 01 10 00 00 01 10 01 10 00 00 00 01 11 10 00 01 10 00 00 00 01 11 10 00 01 1+ +0 01 11 11 11 10 01 10 01 10 01 10 01 10 01 10 0 标志: 最高位没有进位 CF=0低8位中1的个数为奇数个

18、PF=0;第三位向第四位无进位 AF=0;运算结果本身0 ZF=0运算结果最高位为0 SF=0; 次高位向最高位没有进位 ,最高位向前没有进位 OF=0。例1:执行两个数的加法,分析对标志位的影响。三、存储器结构三、存储器结构1 1、数据在存储器中的存储情况、数据在存储器中的存储情况 数据在存储器中按字节为单位进行存储,即将存储器空间按字节地址号顺序排列,称为按字节编址。 8086CPU共有20根地址线,故能寻址1M的存储空间。即寻址范围为0 ,习惯上用十六进制表示,即为:00000HFFFFFH00000HFFFFFH。1-220存储单元地址:按照字节编址存储单元地址:按照字节编址实际应用中

19、,8086的一个变量或操作的数据,可以是一个字节、一个字或者一个双字等。字节数据(Byte)1Byte=8bit字数据(Word)1Word=2Byte=16bit一个字存入存储器占有相继的二个单元:一个字存入存储器占有相继的二个单元: 低位字节存入低地址,高位字节存入高地址低位字节存入低地址,高位字节存入高地址。 字单元的地址采用它的低地址来表示字单元的地址采用它的低地址来表示。例:字单元:(0004H)=1234H, 字节单元:(0004H)=34H34H34H12H12H1EH1EH2FH2FH0000H0000H0001H0001H0002H0002H0003H0003H0004H00

20、04H0005H0005H0006H0006H.1234H1234H1235H1235H1236H1236H.2 2、存储器的分段结构、存储器的分段结构 8086有20条地址总线,寻址能力为220=1M字节用16进制数表示1M字节的地址范围应为00000HFFFFFH。CPU中的寄存器是16位的,寻址能力只有216 =64KB。20位地址无法用16位寄存器表示,必须分段。段内地址16位,每个段的大小最大可达64KB;实际可以根据需要来确定段大小,可以是1,100,1000,在64K范围内的任意字节数。每个小段首地址特征:最低4位为0,高16位为段寄存器内容。在1M字节的地址空间,共有64K64

21、K个小段其首地址为:0000 0H0001 0H4123 0H4124 0HFFFE 0HFFFF 0H3 3、2020位物理地址形成的形成与计算位物理地址形成的形成与计算物理地址:物理地址: 在在1 1M M字节存储器里,字节存储器里,每个存储单元都有一个唯一的每个存储单元都有一个唯一的2020位地位地址作为该存储单元的物理地址。址作为该存储单元的物理地址。 CPU访问存储器时,必须先确定所要访问的存储单元的物理地址才能取出(或存入)该单元中的内容。 2020位物理地址形成:位物理地址形成:由由1616位段地址和位段地址和1616位偏移地址组成。位偏移地址组成。 只取段起始地址高16位值,即

22、段寄存器内容。 指在段内某内存单元物理地址相对段起始地址的字节数。把段地址左移把段地址左移4 4位再加上偏移地址值形成物理地址,写成:位再加上偏移地址值形成物理地址,写成: 物理地址物理地址= 16= 16d d 段地址段地址+ +偏移地址偏移地址。 但可由不同的段地址和不同但可由不同的段地址和不同的偏移地址组成。的偏移地址组成。16位段地址16位段地址0000000016位偏移地址16位偏移地址0 015150 0151520位物理地址20位物理地址0 01919+ + 逻辑地址:逻辑地址:由段基址和段内偏移地址组成的地址(如由段基址和段内偏移地址组成的地址(如CS:IPCS:IP), , 段基址和段内偏移地址都是段基址和段内偏移地址都是1616位的无符号二进制数,位的无符号二进制数, 在程序设计时使用。在程

温馨提示

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

最新文档

评论

0/150

提交评论