微机原理-第2章2.ppt

微机原理-第2章2.ppt

ID:48054209

大小:470.50 KB

页数:49页

时间:2020-01-12

上传者:U-2437
微机原理-第2章2.ppt_第1页
微机原理-第2章2.ppt_第2页
微机原理-第2章2.ppt_第3页
微机原理-第2章2.ppt_第4页
微机原理-第2章2.ppt_第5页
资源描述:

《微机原理-第2章2.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

本教案内容第2章8086CPU结构与功能微处理器的外部结构微处理器的内部结构微处理器的功能结构微处理器的寄存器组织微处理器的存储器和I/O组成 8086/8088CPU内部共有14个16位寄存器,用于提供运算,控制指令执行和对指令及操作数寻址。掌握每个寄存器的作用以及用法,是学好汇编语言程序设计的基础。14个寄存器按其用途可分为三大类:通用寄存器(8个)段寄存器(4个)控制寄存器(2个)2.4微处理器的寄存器组织 一.通用寄存器(8个)8个16位通用寄存器分为两组:地址指针和变址寄存器(4个)数据寄存器(4个)2.4微处理器的寄存器组织 存放数据16位8位DXDLDHCXCLCHBXBLBHAXALAH累加器Accumulator基址寄存器(地址寄存器)BaseRegister计数器CountRegister数据寄存器DataRegister1.数据寄存器(4个)2.4微处理器的寄存器组织 2.地址指针和变址寄存器(4个)均为16位,也能存放数据均为地址寄存器DISIBPSP堆栈指针寄存器StackPointer基址指针寄存器BasePointer源变址寄存器SourceIndex目的变址寄存器DestinationIndex2.4微处理器的寄存器组织 二.段寄存器堆栈信息数据(数值、字符等)代码(指令码)在微机系统的内存中通常存放着三类信息:指示CPU执行何种操作。程序处理的对象或结果。被保存的返回地址和中间结果等。代码段数据段堆栈段2.4微处理器的寄存器组织 8086/8088CPU有4个段寄存器。分别是:SSESDSCS代码段寄存器。指向当前的代码段,指令由此段取出。CodeSegment数据段寄存器。指向当前的数据段。DataSegment附加数据段寄存器。指向当前的附加数据段。ExtraSegment堆栈段寄存器。指向当前的堆栈段。StackSegment16位2.4微处理器的寄存器组织 指令指针寄存器相当于一般微处理器中的程序计数器(PC:ProgramCounter)。它始终指向CPU下一条要取指令所在存贮器单元的偏移地址(段地址由CS提供)。用户不能更改IP的值,只有CPU执行转移指令,子程序调用指令和子程序返回指令以及中断处理时,IP才作相应的改变。四.控制寄存器(2个)1.指令指针寄存器(IP:InstructionPointer)(16位)2.4微处理器的寄存器组织 标志寄存器相当于一般微处理器中的程序状态字寄存器(PSW)。16位,但有用的只有9位,其中:2.标志寄存器(FLAG)状态标志:CF,PF,AF,ZF,SF,OF,共6位控制标志:TF,IF,DF,共3位如下图所示:OFDFIFTFSFZFAFPFCF15141312111098765432102.4微处理器的寄存器组织 CF(CarryFlag)进位标志。如果加法时最高位(对字节操作是D7位,对字操作是D15位)产生进位或减法时最高位产生错位,则CF=1,否则CF=0。状态标志反映的是ALU运算后结果的状态AF(AuxiliaryCarryFlag)辅助进位标志。如果在加法时D3位有进位或减法时D3位有借位,则AF=1,否则AF=0。这个标志位用于实现BCD码算术运算结果的调整。2.4微处理器的寄存器组织 ZF(ZeroFlag)零标志位。如果运算结果各位都为零,则ZF=1,否则ZF=0。SF(SignFlag)符号标志。它总是和结果的最高位(字节操作时是D7,字操作时是D15)相同,因为在补码运算时最高位是符号位,所以运算结果为负时,SF=1,否则SF=0.2.4微处理器的寄存器组织 OF(OverflowFlag)溢出标志。在加或减运算中结果超出8位或者16位有符号数所能表示的数值范围(-128∽+127或-32768∽+32767)时,产生溢出,OF=1,否则OF=0。PF(ParityFlag)奇偶标志。如果操作结果的低8位中含有偶数个1,PF=1,否则PF=0。2.4微处理器的寄存器组织 例1:若CPU执行5439H+476AH加法运算指令:那么,指令执行后有:SF=1,ZF=0,PF=1,AF=1,CF=0,OF=10101010000111001B0100011101101010B1001101110100011B+2.4微处理器的寄存器组织 例2:若CPU执行543AH-FE00H减法运算指令;那么,指令执行后有:SF=0,ZF=0,PF=1,AF=0,CF=1,OF=00101010000111010B1111111000000000B0101011000111010B-2.4微处理器的寄存器组织 控制标志用来控制CPU的操作特征(运行状态)DF(DirectionFlag)方向控制标志。可由指令置1/清0CLD;DF=0在进行字符串操作时,CPU每执行一条串操作指令,对源或(与)目的操作数的地址会自动进行一次调整,其调整准则为0,自动递增。STD;DF=1DF=1,自动递减。2.4微处理器的寄存器组织 IF(InterruptEnableFlag)CLI;IF=0,CPU处于关中断状态。1时,CPU能响应外部可屏蔽中断请求;当IF=IF对外部非可屏蔽中断请求以及CPU内部的中断不起作用.可由指令置1/清0:外部可屏蔽中断允许标志。STI;IF=1,CPU处于开中断状态。0时,CPU不能响应外部可屏蔽中断请求。2.4微处理器的寄存器组织 TF(TrapFlag)陷井标志。没有专门的置1/清0指令。当TF=1时,CPU每执行完一条指令便自动产生一个内部中断(类型为1),转去执行一个中断服务程序,用户可以借助中断服务程序来检查每条指令执行的情况,称为单步工作方式,常用于程序的调试。2.4微处理器的寄存器组织 一.存储器地址空间和数据存储格式8086/8088的存储器都是以字节为单位组织的。有20条地址总线,字节(1MB)。每个字节对应一个唯一的地址,地址范围为0~-1(用16进制表示为00000~FFFFFH),如图所示。2.5微处理器的存储器和I/O组织 存储器二进制地址十六进制地址0000000000000000000000000000010000200003000000000000000000010000000000000000001100000000000000000010FFFFEFFFFF1111111111111111111111111111111111111110≈≈……2.5微处理器的存储器与I/O组织 存储器内两个连续的字节,定义为一个字,低字节(低8位)存放在低地址中,高字节(高8位)存放在高地址中。各位的编号方法是最低位(LSB)为位0,一个字节中,最高位(MAS)编号为位7;一个字中最高位的编号为位15。这些约定如图所示2.5微处理器的存储器与I/O组织 15141312111098765432107654321076543210(高字节)(低字节)地址=N+1字地址地址=N2.5微处理器的存储器与I/O组织 字数据在存储器中存放的格式如图所示字单元的地址一个字单元一个字节单元高字节低字节D15~D8D7~D0字数据在存储器中存放格式示意图2.5微处理器的存储器与I/O组织 8086/8088允许字从任何地址开始。字的地址是偶地址时,称字的存储是对准的,若字的地址是奇地址时,则称字的存储是未对准的。8086CPU数据总线16位,对于访问(读或写)字节的指令,需要一个总线周期。对于访问一个偶地址的字的指令,也只需要一个总线周期。而对于访问一个奇地址的字的指令,则需要两个总线周期(CPU自动完成)。2.5微处理器的存储器与I/O组织 8088CPU数据总线8位,无论是字,还是字节数据存取操作,也无论是偶地址的字,还是奇地址的字,每一个总线周期只能完成一个字节的数据存取操作。对字数据所组成的连续两个总线周期是由CPU自动完成的。2.5微处理器的存储器与I/O组织 从前面的介绍可知,二.存储器的分段和物理地址的形式1.为什么要分段8086/8088CPU有20条地址线(A19∽A0),能寻址外部存贮空间为=1MB,而在8088/8086CPU内部能向存贮器提供地址码的地址寄存器有六个,均为16位,所以用这六个16位地址寄存器任意一个给外部存贮器提供地址,只能提供=64K个地址,所以,对1MB地址寻址不完。这六个16位地址寄存器分别为:2.5微处理器的存储器与I/O组织 为了使8088/8086CPU能寻址到外部存贮器1MB空间中任何一个单元,8088/8086巧妙地采用了地址分段方法(将1MB空间分成若干个逻辑段),从而将寻址范围扩大到了1MB。基址寄存器DISIBPBX基址指针寄存器源变址寄存器堆栈指针寄存器目的变址寄存器指令指针寄存器SPIP2.5微处理器的存储器与I/O组织 1MB的存贮空间中,每个存贮单元的实际地址编码称为该单元的物理地址(用PA表示)。2.怎么分段各逻辑段的起始地址必须能被16整除,即一个段的起始地址(20位物理地址)的低4位二进制码必须是0。把1MB的存贮空间划分成若干个逻辑段,每段最多64KB。2.5微处理器的存储器与I/O组织 一个段的起始地址的高16位自然数为该段的段地址.显然,在1MB的存贮空间中,可以有个段地址.每个相邻的两个段地址之间相隔16个存贮单元。在一个段内的每个存贮单元,可以用相对于本段的起始地址的偏移量来表示,,这个偏移量称为段内偏移地址,也称为有效地址(EA)。段内偏移地址也用16位二进制编码表示.所以,在一个段内最多有=64K个偏移地址(即一个段最大为64KB)。2.5微处理器的存储器与I/O组织 在一个64KB的段内,每个偏移地址单元的段地址是相同的.所以段地址也称为段基址。由于相邻两个段地址只相隔16个单元,所以段与段之间大部分空间互相覆盖(重叠)。存贮器段的划分与段的覆盖示意图如下图所示。2.5微处理器的存储器与I/O组织 存贮器段的划分与段的覆盖示意图≈≈…………段0段1段2100201001010000000200001000000段地址2.5微处理器的存储器与I/O组织 段地址和段内偏移地址都是无符号的16位二进制数,常用4位十六进制数表示。这种方法表示的存贮器单元的地址称为逻辑地址。如下图所示。2.物理地址(PA)的形成逻辑地址的表示格式为:段地址:偏移地址2.5微处理器的存储器与I/O组织 …………XXXXXHXXXXH:XXXXH段地址:段内偏移地址逻辑地址20位物理地址2.5微处理器的存储器与I/O组织 其中段地址有段寄存器提供:一个存储单元用逻辑地址表示后,CPU对该单元的寻址就应提供两部分地址段地址段内有效地址CS——提供当前代码(程序)段的段地址DS——提供当前数据(程序)段的段地址ES——提供当前附加数据段的段地址SS——提供当前堆栈段的段地址2.5微处理器的存储器与I/O组织 ②段内偏移地址由下列地址寄存器提供:BXBPSIDICPU对存储器进行数据读/写操作时,由这些寄存器以某种寻址方式向存储器提供段内偏移地址。CPU取指令时,由IP提供所取指令代码所在单元的偏移地址。IPSP堆栈操作时,提供堆栈段的段内偏移地址2.5微处理器的存储器与I/O组织 已知某存储单元的逻辑地址,怎样求该单元的物理地址PA:物理地址=段地址*10H+段内偏移地址8086/8088CPU中的BIU单元用来完成物理地址的计算,其计算方法如图所示。2.5微处理器的存储器与I/O组织 ∑物理地址的形成19016位段基址16位段内偏移地址16位段基址000020位物理地址19015段寄存器015EA02.5微处理器的存储器与I/O组织 例1:某单元的逻辑地址为4B09H:5678H,则该存储单元的物理地址为:物理地址(PA)=段地址*10H+EA=4B09H*10H+5678H=4B090H+5678H=50708H2.5微处理器的存储器与I/O组织 例2:图中物理地址为00020H单元,其逻辑地址可以有:[0000H:0020H]+00000H0020H00020H(PA)(EA)(段地址16)[0001H:0010H]+00010H0010H00020H(PA)(EA)(段地址16)2.5微处理器的存储器与I/O组织 [0002H:0000H]+00020H0000H00020H(PA)(EA)(段地址16)由此可见,一个存储单元,若用不同的逻辑地址表示,其PA是唯一的。2.5微处理器的存储器与I/O组织 在访问存储器时,段地址总是由段寄存器提供的。8086/8088微处理器中有4个段寄存器(CS、DS、SS、ES),所以CPU可以通过这4个段寄存器来访问4个不同的段。用程序对段寄存器的内容进行修改,可实现访问所有的段。一般地,把段地址装入段寄存器的那些段(不超过4个)称为当前段。2.5微处理器的存储器与I/O组织 三.信息的分段存储与段寄存器的关系特别要指出的是,用户用8086/8088汇编语言编写程序时,要把程序中的不同信息安排在不同的段,也就是说,用户源程序汇编后在存储器中存放是按照不同的信息放在不同的逻辑段。而程序中的信息包括:数据信息程序(代码)信息堆栈信息2.5微处理器的存储器与I/O组织 其中,代码信息存放在代码段,其地址由CS:IP提供。堆栈信息存放在堆栈段,其地址由SS:SP提供。数据信息通常情况下,存放在数据段(段地址由DS提供),当然也可以存放在附加数据段(段地址由ES提供),其段内偏移地址依据寻址方式的不同来求得。2.5微处理器的存储器与I/O组织 8086/8088CPU各种类型访问存储器时,其地址成分的来源见下表所示。2.5微处理器的存储器与I/O组织 一个段最大空间为64KB,实际使用时,不一定能用到64KB。理论上分段时,相邻段之间大部分空间是相互重叠的,但实际上不会重叠。汇编程序对用户源程序汇编时,会将用户程序中不同信息段独立存放。如图所示。2.5微处理器的存储器与I/O组织 …………………………堆栈段信息数据段信息代码段信息CS:IPDS:依据寻址方式求得EASS:SP找到第一个能被16整除的地址开始安排数据段信息。找到第一个能被16整除的地址开始安排代码段信息。此单元地址必须能被16整除。2.5微处理器的存储器与I/O组织 一.我们已经说明,I/O设备包括与外界通信和存储大容量信息用的各种外部设备。由于这些外部设备的复杂性和多样性,特别是速度比CPU低得多,因此I/O设备不能直接和总线相连接。I/O接口是保证信息和数据在CPU和I/O设备之间正常传送的电路。2.5微处理器的存储器与I/O组织 二.8086/8088CPU共有20条地址线,对存储器和I/O端口的寻址采用独立编址的方式,其关系如下:I/O接口与CPU之间的通信是利用称为I/O端口的寄存器来完成的,一个I/O端口有一个唯一的I/O地址与之对应。2.5微处理器的存储器与I/O组织 A19A15A10A9A0A16地址总线全部用来给存储器编址,所以能寻址存储器空间。低16条用来给I/O编址,所以能寻址的I/O空间。PC系列机中,只用A9∽A010条地址线给I/O编址,所以PC机的I/O空间为。2.5微处理器的存储器与I/O组织 本章作业12346(1)(3)7(1)(4)9(2)(3)101113

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭