第2章微处理器――内部结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章微处理器应重点掌握和理解的知识(1)重点掌握8086/8088CPU的内部结构特征及外部应用特征(2)重点掌握内部寄存器的构成及应用特点(3)重点掌握8086/8088系统中存储器的组织特点以及物理地址的计算方法(4)掌握8086/8088系统中I/O组织特点及端口的编址方式(5)掌握8086/8088CPU的最大最小两种工作模式(6)理解8086/8088CPU工作周期的相关概念以及CPU外部操作的典型工作时序8086/8088微处理器的编程结构8086/8088的存储器组织8086/8088的I/O组织8086/8088微处理器的引脚功能和工作模式8086/8088的典型时序分析2.18086/8088微处理器的编程结构主要内容:8086CPU的内部结构8086CPU的寄存器结构2.1.18086CPU的内部结构8086CPU是Intel系列的16位微处理器8086CPU和8088CPU内部结构基本相同,都由两大功能部件组成:执行部件(EU)总线接口部件(BIU)2.1.18086CPU的内部结构AXBXCXDX指令译码总线控制逻辑总线控制逻辑决定对内存或对I/O接口读或写控制寄存器是CPU内的组成部分,寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。指令:确定运算与操作数据:运算或读写操作的对象地址:标记和确定内存空间中具体的存储位置指令队列的设置使指令的取出与执行并行进行,以提高了程序的运行速度地址加法器的作用是根据段寄存器存放的段基地址与EU送出的16位偏移地址计算得到20位的实际地址8088CPU外部数据总线为8位、指令队列为4字节取指令、指令译码、产生并传送操作控制信号总线接口部件BIU的组成及功能20位物理地址加法器6字节指令队列缓冲器4个16位段寄存器(CS、DS、SS、ES)16位指令指针寄存器(IP)总线控制逻辑总线控制逻辑BIU是CPU与外部存储器及I/O部件的接口,负责完成CPU与存储器和I/O系统的数据交换(传输)算术逻辑单元(ALU)(运算器)8个通用寄存器运算寄存器(暂存器)1个标志寄存器(FR)EU控制电路执行部件EU的组成及功能取指令,指令译码执行指令,完成运算指令译码指令队列缓冲器是EU与BIU之间的“桥梁”!实现CPU的并行流水线处理操作组成8086的指令队列为6个字节8088的指令队列为4个字节指令队列缓冲器的指令存放状态顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令执行转移指令:立即清除指令队列中的内容,从新的地址取入指令,并立即送往执行单元,然后再从新单元开始重新填满队列8086CPU对指令的执行过程EU与BIU之间采用并行流水线方式BIU从内存取指令,送到指令队列缓冲器EU从BIU中的指令队列缓冲器中不断地取指令并执行指令,省去了访问内存取指令的时间,加快了程序运行速度EU需要内存操作数或存结果时:向BIU发请求,并提供有数据的效地址(16位)BIU计算出内存物理地址(20位),启动一个总线读/写周期,从指定的内存单元或I/O端口读/写数据2.1.28086CPU的寄存器结构包括14个16位的寄存器4个数据寄存器2个地址指针寄存器2个变址寄存器2个控制寄存器4个段寄存器D15D0D8D7数据寄存器指针寄存器变址寄存器控制寄存器段寄存器1.数据寄存器含4个16位寄存器:AX、BX、CX、DX常用来存放参与运算的操作数、中间结果和地址既可作为16位寄存器使用,也可分别作为2个独立的8位寄存器使用例如:若BX=1234H,则BH=12H,BL=34H;反之,若BH=56H,BL=78H,则BX=5678H•AX(Accumulator)(AH、AL)——累加寄存器•常用于数据运算或与外设交换数据•BX(Base)(BH、BL)——基址寄存器•在间接寻址中用于存放内存的基地址•CX(Count)(CH、CL)——计数寄存器•在循环、移位等操作中用于计数•DX(Data)(DH、DL)——数据寄存器•常用于数据的传送或配合AX进行双字节运算2.指针寄存器有两个:SP、BPSP:堆栈指针寄存器,存放当前堆栈段中栈顶的偏移地址BP:基址指针寄存器,存放位于堆栈段中的某个存储单元的偏移地址(基地址)SP和BP通常与SS搭配使用3.变址寄存器有两个:SI(源变址寄存器)、DI(目标变址寄存器)通常存放操作数在数据段内某个单元的偏移地址(也可作为一般数据寄存器使用,存放操作数或运算结果)与DS配合使用特定作用:在串操作中用SI存放源串的偏移地址用DI存放目标串的偏移地址4.段寄存器4个16位段寄存器,用于存放各逻辑段的段基地址;不可互换使用CS(CodeSegment):代码段寄存器用于存放当前执行程序所在段的段基地址DS(DataSegment):数据段寄存器用于存放当前使用数据所在段的段基地址ES(ExtraSegment):附加段寄存器用于存放当前附加数据段的段基地址SS(StackSegment):堆栈段寄存器用于存放当前堆栈段的段基地址IP寄存器——指令指针寄存器,存放下一次要取出执行的指令的偏移地址(类似程序计数器PC)执行部件EU每取走1条指令,BIU自动将IP的值修改为下一条要执行指令的地址。当执行转移指令、调用指令时,BIU将转移的目标地址装入IP。与CS结合使用构成指令物理地址用户不能直接更新它,只能由系统自动更新5.指令指针寄存器部分寄存器一般用途示意代码段段基地址CS某指令地址IP数据段或附加数据段段基地址DS或ES某数据地址DI某数据地址SI堆栈段段基地址SS堆栈顶地址SP栈内某数据地址BP6.标志寄存器FR(FLAGS)——状态标志寄存器,16位用途:反映指令执行结果的特征或控制CPU的工作状态只用了9位6个状态标志位(也称为条件码)----自动寄存ALU运算结果的特征信息3个控制标志----寄存CPU的工作状态信息(可由用户设置或改变)标志寄存器图示溢出标志位OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0方向标志DF位用来决定在“数据串操作”指令执行时的步进方向;DF=1表示由高字节向低字节方向进行—称为递减方式中断允许标志IF位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断请求,以及CPU内部产生的中断请求;IF=1表示开中断状态控制标志TF位用来控制CPU是正常(TF=0)执行,还是单步(TF=1)执行符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。对于有符号数就反映运算结果的正负号。运算结果为正数时,SF的值为0零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1在运算过程中,如果发生低4位向高4位的进位或借位时,辅助进位标志AF的值将被置为1奇偶标志PF用于标志运算结果的低8位中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,此时其值为1标志寄存器置位问题状态标志位的置1或置0由ALU运算的结果自动置位(但CF可用专门指令设置或改变)控制标志位需要在程序中用专门的指令设置状态标志位设置举例(右图):以8位系统为例。运算对标志位的影响的例运算对标志位的影响的例2.2存储器及I/O端口的组织与管理主要内容:数据存储格式存储器的分段物理地址的形成存储器结构8086/8088系统中,存储器按字节(8位)编址,即一个存储单元存放一个字节的数据存储单元编号,称为地址8086/8088系统每个存储单元的地址均为20位(但一般用5个十六进制数书写,如12C50H)1.字数据的存储存储在一个存储单元中的数据称为字节数据(8位)字节数据的存储:按顺序存放其存储单元的地址,叫做该字节数据的存储地址需要存储在相邻两个存储单元中的数据称为一个“字”,叫做字数据(16位)字数据的存储:字的低字节存于低地址单元,字的高字节存于高地址单元存放该字数据低字节的存储单元的地址,叫做该字数据的存储地址,即字地址。1.字数据的存储存储单元地址存储内容•存储内容的表示:(00A22H)=3CH存储单元地址3CH……0DH3AH……5EH32H…低字节高字节00A22H00B06H00B07H03A03H03A04H问:字数据325EH的地址是?(00B06H)=3A0DH字数据字的地址字的规则存放与非规则存放若一个字从偶数地址开始存放,则称为“规则存放”,该字也称为“规则字”若一个字从奇数地址开始存放,则称为“非规则存放”,该字称为“非规则字”存取“规则字”与“非规则字”,其操作过程不同(即所使用的总线周期数不同):存取1个规则字用1个总线周期,非规则字用2个总线周期字的存储举例例2.1图2.5中,字单元00200H和字节单元00200H存放的内容是什么?字数据5678H的存储地址是什么?说明字1234H和5678H是否为规则存放(是否为规则字)?2.存储器的分段为什么需要分段?(1)8086CPU有20根地址线,每个存储单元有20位的物理地址,CPU可寻址220=1MB个存储单元(内存空间)(2)CPU的寄存器、ALU都是16位,送出的也只能是16位的地址数据。最多能直接寻址216=64KB个单元就是说:16位的寄存器和ALU不能直接存放和处理20位的地址数据,因此8086CPU对1MB的存储器引入了存储器分段以及相应段基址的概念存储器的逻辑段程序员在编制程序时把存储器划分成段,又称为逻辑段(形式上的段)一个程序分为:代码段、数据段、堆栈段等每个逻辑段长度≤64KB(实际使用时根据需要来确定段大小)逻辑段的划分原则上不受限制,逻辑段可在整个1MB存储空间内浮动,各段之间可连续、可分开、可部分重叠、还可完全重叠段基址与段起始地址段起始地址:每个段第一个存储单元的物理地址规定:段起始地址必须能被16整除,即其20位物理地址中的低4位为0000段基地址(简称“段基址”):段起始地址的高16位。例如:某段的段起始地址为12340H,则该段的段基址为1234H段基址被存入段寄存器(CS、DS、SS、ES)存储器段的分配和相应段寄存器的关系(示例)每段最大64KB,最小16B0200H0400H0480HCSDSSS┆8KB代码存储器2KB数据256B堆栈02000H04000H04800H段寄存器代码段段起始地址偏移地址、逻辑地址在段内,某个存储单元距离该段起始地址的字节单元个数,称为该存储单元的偏移地址(段内偏移量、段内地址)或有效地址EA偏移地址是16位的,可以放在寄存器如SI等中存储单元可以由段基址和段内偏移地址来定位,形式为“段基址:偏移地址”——逻辑地址给出逻辑地址就可确定存储单元的位置若段的划分不同,同一个单元的逻辑地址会不同!每个存储单元在存储器中的位置可以用逻辑地址表示,也可以用物理地址表示。段起始地址、段基址、偏移地址、逻辑地址(小结)60002H12H60000H0000段基址(16位)段起始地址(20位)××ו••×××偏移地址=0002H00H低4位一定为060002H单元的逻辑地址可写为:6000H:0002H物理地址=段基址×10H+偏移地址存储单元实际地址来自CS,DS,SS,ES之一由基变地址或指针寄存器以及其他的指令寻址方式得到(20位)(16位)(16位)3.物理地址的形成CPU访问存储器时,必须先确定所要访问的存储单元的物理地址。由逻辑地址(即段基地址和偏移地址)通过计算得到注意:段基址×10H=段起始地址(20位)例如:某指令在代码段中的段基址CS=3000H,段内偏移地址IP=5F62H,则该指令所在存储单元的物理地址为:CS×1

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功