微机原理CU内部结构寄存器组存储器组织_第1页
微机原理CU内部结构寄存器组存储器组织_第2页
微机原理CU内部结构寄存器组存储器组织_第3页
微机原理CU内部结构寄存器组存储器组织_第4页
微机原理CU内部结构寄存器组存储器组织_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

第二部分8086/8088微处理器

一、8086/8088CPU的内部结构二、8086/8088的内部寄存器三、8086/8088的存储器组织

四、微处理器的指令系统五、8086/8088的引脚及工作摸式六、时序与总线周期

本部分学习微处理器的内部结构、指令系统、引脚及功能、操作时序和总线周期等。1控制总线数据总线地址总线内部数据总线暂存器累加器ALU标志寄存器指令寄存指令译码时序和控制逻辑通用寄存器组地址寄存器组地址总线控制数据总线控制一、8086/8088CPU的内部结构算术逻辑单元(运算器)寄存器组指令处理单元(控制器)8位微处理器的内部结构216位微处理器也具有以上结构中的基本单元,但更为复杂。以8088为例讲解16位微处理器的功能结构。8088是8086的简化版本。8088/8086的功能结构3

AH

ALBH

BL

CL

CH

DH

DLSPBPDISI通用寄存器

CSDSSSES

IP内部通信寄存器总线控制逻辑1234AXBXCXDX数据总线暂存寄存器ALU标志寄存器外部总线指令队列16位执行控制电路执行单元地址加法器20位16位

段寄存器指令指针(EU)总线接口单元(BIU)48088的编程结构从功能分成两个单元总线接口单元BIU(BusInterfaceUnit)——管理8088与系统总线的接口,负责CPU对存储器和外设进行访问执行单元EU(ExecutionUnit)——负责指令的译码、执行和数据的运算两个单元相互独立,分别完成各自操作两个单元可以并行执行,实现指令取指和执行的流水线操作5并行操作的意义EU执行指令的同时,BIU可以继续读取后续指令,并存入指令队列(firstinfirstout)。这叫做“指令预取”。8位的CPU没有指令预取功能,执行指令前必须等待“取指”操作完成。取指操作是CPU最频繁的操作。这种操作方式节省了CPU大量的取指等待时间。“指令流水线”。6二、8088寄存器结构 8088共有8个的通用寄存器,1个标志寄存器,4个段寄存器和1个指令指针寄存器。

1、通用寄存器①数据寄存器 共AX、BX、CX、DX四个,每个寄存器即可作为16位寄存器,又可拆分为两个8位寄存器,此时记为AH、AL、BH、BL等。

AX(AH、AL):累加器accumulator

BX(BH、BL):基址寄存器base

CX(CH、CL):计数寄存器counter

DX(DH、DL):数据寄存器data7 ②指针和变址寄存器 共BP、SP、SI、DI四个BP:基址指针寄存器BasePointer,默认表示堆栈段基地址; SP:堆栈指针寄存器StackPointer,指示栈顶 SI:源变址寄存器SourceIndex DI:目的变址寄存器DestinationIndex

8

标志寄存器(FR:FlagRegister)是一个十六位的寄存器,但只利用了其中的9位:六个条件标志和三个控制标志。

FR的格式

CF

PF

AF

ZF

SF

TFIFDFOF0123456789101112131415校验进位

辅助进位零标志方向标志溢出标志2、标志寄存器(PSW:programstateword)中断标志陷阱标志符号标志9进位标志CF(CarryFlag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0。例如(以8位运算为例,8088中为16位):3AH+7CH=B6H 没有进位:CF=0AAH+7CH=(1)26H 有进位:CF=110溢出标标志OF(OverflowFlag))若算术术运算算的结结果有有溢出出,则则OF=1;;否则OF==0。。例如::问题::什么是是溢出出?溢出和和进位位有什什么区区别??处理器器怎么么处理理,程程序员员如何何运用用?如何判判断是是否溢溢出??P30找答案案11什么是是溢出出处理器器内部部以补补码表表示有符号号数8位表达达的整整数范范围是是:++127~-12816位表达达的范范围是是:++32767~-32768如果运运算结结果超超出这这个范范围,,就产产生了了溢出出有溢出出,说说明有有符号号数的的运算算结果果不正正确12溢出和和进位位的对对比例1:3AH+7CH=B6H无符号号数运运算::58+124=182范围内内,无无进位位有符号号数运运算::58+124=182范围外外,有有溢出出例2:AAH+7CH=(1)26H无符号号数运运算::170+124=294范围外外,有有进位位有符号号数运运算::--86+124=28范围内内,无无溢出出13处理器对两个个操作数进行行运算时,按按照无符号数数求得结果,,并相应设置置进位标志CF;同时,根据据是否超出有有符号数的范范围设置溢出出标志OF应该利用哪个个标志,则由程序员来来决定。也就是说,,如果将参加运运算的操作数数认为是无符符号数,就应应该关心进位位;认为是有有符号数,则则要注意是否否溢出。14全零标志ZF(ZeroFlag))若运算结果为为全0,则ZF=1,否则ZF=0。例如:3AH+7CH=B6H结果不是零::ZF=086H+7CH=00H结果是全零::ZF=115符号标志SF(SignFlag))运算结果最高高位为1,则则SF=1;否则SF=0。例如:3AH+7CH=B6H最高位D7=1:SF=186H+7CH=00H最高位D7=0:SF=0有符号数利用用最高有效位位(MSB)来表示它的符符号。所以,,运算结果的的MSB与符号标志SF相一致。(1)16奇偶标志PF(ParityFlag)当运算结果最低字节中“1”的个数数为零或偶数数时,PF=1;否则PF=0(奇校验)。例如:3AH+7CH=B6H=10110110B,结果中有5个个1,是奇数,则PF=0注意:PF标志仅反映最低8位中“1”的个个数是偶或奇奇,即使是进进行16位字字操作。17辅助进位标志志AF(AuxiliaryCarryFlag)运算时D3位(低半字节节)有进位或或借位时,AF=1;否则AF=0。这个标志主要要由处理器内内部使用,用用于十进制算算术运算的调调整,用户一一般不必关心心。18方向标志DF(DirectionFlag)用于串操作指令中,控制地址址的变化方向向:设置DF=0,串操作后存储储器地址自动动增量(增址址);设置DF=1,串操作后存储储器地址自动动减量(减址址)。串:存储器中中一序列字或或字节单元串操作——对序列字或字字节单元中的的内容进行某某种操作,,比如:将一一个字符串从从源区传送到到目的区。。MOVS———串传送指令CMPS———串比较指令SCAS———串扫描指令LODS———装入串指令STOS———存储串指令19中断允许标志志IF(Interrupt-enableFlag)用于控制外部部可屏蔽中断断是否可以被被处理器响应应:设置IF=1,则允许中断;设置IF=0,则禁止中断。CLI指令复位中断断标志:IF=0STI指令置位中断断标志:IF=120陷阱标志TF(TrapFlag)用于控制处理理器是否进入入单步执行方式:设置TF=0,处理器正常工工作;设置TF=1,处理器每执行行一条指令就就中断一次,,中断编号为为1(称称单步中断),TF也被称为单步标志。单步执行和单步调试利用单步中断断可对程序进进行逐条指令令的调试。这种逐条指令令调试程序的的方法就是单步调试。21OF111512DF10IF9TF8SF7ZF65AF43PF21CF0控制反映结果状态反应运算过程223、段寄存器(CS、DS、、SS、ES)在8088可寻址的1MB内存空间中,,可以存在四四种分工不同同的逻辑段::代码段、数据段、堆栈段和附加段。段寄存器即是是存放各个逻辑段段首地址的寄寄存器。?为什么要分段段23存储器的分段段管理8088有20条地址线线,最大可寻址空空间为220=1MB,可寻址的地址址范围为00000H~FFFFFH该地址称物理地址硬件用20位的物理地址来对存储单元元进行寻址24存储器的分段段管理由于8088中的地址寄寄存器都是16位的,用用户不能直接接使用20位位的物理地址址,编程时需需要使用逻辑地址来寻址存储单单元。逻辑地址由两个16位位数构成,其其形式为:段的起始地址址:段内的偏移地地址(16位段地地址):(16位偏偏移量)分隔符物理地址14700H逻辑地址1460H:100H25地址加法器将16位的逻逻辑地址转换换为20位的的物理地址,,具体操作过程为:先将段寄寄存器提供的的16位段地地址左移四位位,低位补0,恢复为20位地址,然然后与由各种种寻址方式提提供的16位位偏移地址相加,即得到20位的物理地址。逻辑地址26物理地址:20位逻辑地址:段段基基址((段寄存器器的内容)16位偏移地址(字字节距离)16位段基址16位偏移地址16位物理地址20位0000+逻辑地址27存储器的分段段管理逻辑地址的表表示——段地地址:偏移地地址地址偏移量((xxxxH))段首(xxxx0H)低址段尾某逻辑段某寻址单元28段地址说明逻辑段在在存储器中的的起始位置,,为模16地地址:xxxx0H,省略低4位后后,可用1个个16位数来来表示,该地地址可被存放放在不同的段寄存器CS/SS/DS/ES中。偏移地址说明寻址单元元距离段首的的偏移量,因因每段长度不不超过64KB,所以偏移地址址也可用1个个16位数来来表示。存储器的分段段管理29存储器的分段段管理一个存储单元元可以拥有多多个逻辑地址,但只可能拥拥有一个唯一一的物理地址。逻辑地址1460:100、1380:F00物理地址14700H14700H30如何分配各个个逻辑段程序的指令序序列必须安排排在代码段;程序使用的堆堆栈一定在堆栈段;程序中的数据据默认是安排排在数据段,,也经常安排排在附加段,,尤其是串操操作的目的区区必须是附加段。数据的存放比比较灵活,实实际上可以存存放在任何一一种逻辑段中中。程序中如何指明数据据所在的逻辑辑段呢?31段跨越前缀指指令没有指明时,,一般的数据据访问在DS段;若使用BP访问存储器,,则在SS段。默认的情况允允许改变,需需要使用段跨跨越前缀指令令,8088指令系统中共共有4个:CS:——代码段超越,,使用代码段段的数据SS:——堆栈段超越,,使用堆栈段段的数据DS:——数据段超越,,使用数据段段的数据ES:——附加段超越,,使用附加段段的数据32段超越的例子子没有段超越的的指令实例::MOVAX,[2000H];AX←DS:[2000H],;从默认的DS数据段取出数数据采用段超越前前缀的指令实实例:MOVAX,ES:[2000H];AX←ES:[2000H],;从指定的ES附加段取出数数据33IP(InstructionPointer)中存放即将要执行的的指令的有效地址,IP具有自增量功能。在每取取出一条指令令后,IP自增一,指令令指针指向下下一条指令。。4、指令指针寄存存器(IP)34总结一下:通用寄存器8AX/BX/CX/DXBP/SPDI/SI指令指针寄存存器1IP标志寄存器1PSW段寄存器4CS/SS/DS/ES掌握通用寄存存器的作用熟悉PSW中各个标志的的含义切实理解存储器组织和存储空间分段段的概念358088的寄存器组36堆栈的概念堆栈(Stack))是主存中一个个特殊的区域域。它采用先进后出FILO(FirstInLastOut)或后进先出LIFO(LastInFirstOut)的原则进行存存取操作,而而不是随机存存取操作方式式。堆栈指针———它指示栈顶顶位置,在8086/8086中,栈顶由SS和SP共同指示,即即SS:SP。堆栈操作处理器自动维维持(子程序序调用时的断断点处理)用户操作(PUSH/POP指令)37三、8088/8086的存储储器结构存储器是计算机存储储信息的地方方。掌握数据据存储格式,以及存储器器的分段管理对以后的汇编编程序设计非非常重要你能区别寄存器、存储器(主存)、外存(包括硬盘、光光盘、磁带等等存储介质)吗?38寄存器、内存存储器和外存存储器的区别别寄存器是微处理器(CPU)内部暂存数据的存储单元,,以名称表示示,例如:AX,BX..….等存储器也就是平时所所说的主存,也叫内存,可直接与CPU进行数据交换换。主存利用用地址区别外存主要指用来长久保存数据的外部存存储介质,常常见的有硬盘盘、光盘、磁磁带、U盘等。外存的的数据只能通通过主存间接地与CPU交换数据程序及其数据据可以长久存存放在外存,,在运行需要要时才进入主主存392.58086/8088的存储储器结构数据的存储格格式计算机中表示示信息的单位位有:位(bit)、字节(byte)、、字(word)、、双字(doubleword)等在存储器中,,信息的存储储单位是:字节;即每个个存储单元的的内容是一个个字节。40信息的表示单单位最低有效位LSB(LeastSignificantBit)):指数据的最低低位,即D0位;最高有效位MSB(MostSignificantBit)::指数据的最高高位,对应字字节、字、双双字分别指D7、D15、D31位。41存储单元及其其存储内容每个存储单元元都有一个编编号——存储储器地址例如:图2.3(下页)中,,0002H单元存放有一一个数据34H,表示为[0002H]=34H如何存储一个个字或双字呢呢?小端方式42图2.38088的的存储格式00000H00001H00002H00003H00004H00005H34H12H56H78H00006HD7D0低地址址双字D0D31字D0D15字节D0D7LSBMSB43多字节节数据据在存存储器器中占占据多个连连续的的存储储单元元:存放时时,低字节节存于低地址址,高字节节存于高地址址;多字节节数据据占据据的地地址空空间用用它的的低地址址来表示示。例如::图2.3中,2号““字””单元元:[0002H]=1234H2号“双双字””单元元:[0002H]=78561234H80x86处理器器的““低对低低、高高对高高”的存存储形形式,,被称称为““小端方方式((littleendian)”。相对应应还存存在““大端端方式式(BigEndian)”。。44地址对对齐同一个个存储储器地地址可可以表表示::字节节单元元地址址、字字单元元地址址、双双字单单元地地址等等等((视指指令的的具体体情况况)。。将字单元安安排在在偶地址址(xx……xx0B)),将双字单元安安排在在模4地地址(xx……xx00B)的做法法,被被称为为“地址对对齐(Align)””。对于地地址不不对齐齐的数数据,,处理理器访访问时时,需需要付付出额额外的的访问问时间间。要要取得得较高高的存存取速速度,,应该该将数数据的的地址址对齐齐。45段寄存存器的的使用用规定定(表2.1)存储器器访问问方式式默默认段段寄存存器段段超越越偏偏移地地址取指令令CS无IP堆栈操操作SS无SP一般数数据访访问DSCS/ES/SS有效地地址EA下列特特殊情情况除除外串操作作的源源操作作数DSCS/ES/SSSI串操作作的目目的操操作数数ES无DIBP基址的的寻址址方式式SSCS/DS/ES有效地地址EA46程序分分段的的图例例(图2.4)8088对逻辑辑段的的要求求是::只能从从模16地址开开始一一个段段,即即段地地址低低4位位均为为0,,为xxxx0H形式;;省略略最低低四位位0,即可可用16位的段段寄存存器存存储。。每段最最大不不超过过64KB。8088对每个段段不要要求必必须是是64KB,不要要求各各段之之间完完全分分开、、即可可以重重叠。。图2.4a是各自自独立立段的的分配配示例例图2.4b是相互互重叠叠段的的分配配示例例1MB空间最最多能能分成成多少少个段段?1MB空间最最少能能分成成多少少个段段?471MB空间间的分分段1MB空间最最多能能分成成多少少个逻逻辑段段?每隔16个个存储储单元元就可可以开开始一一个段段,所所以1MB最多可可以有有:220÷16=216=64K个段1MB空间最最少能能分成成多少少个逻逻辑段段?每隔64K个存储储单元元开始始一个个段,,所以以1MB最少可可以有有:220÷216=16个段48图2.4a各个逻逻辑段段独立的实例例49图2.4b各个逻逻辑段重叠叠的实例例502.2节的的总结结8088有8个个8位位通用用寄存存器、、8个个16位通通用寄寄存器器8088有6个个状态态标志志和3个控控制标标志8088将1MB存储空空间分分段管管理,,有4个段段寄存存器,,对应应4种种逻辑辑段8088有4个个段超超越前前缀指指令,,用于于明确确指定定数据据所在在的逻逻辑段段。51第2章:作作业习题2(第57页)):2.1,2.3,2.4,2.5,2.652539、静夜夜四无无邻,,荒居居旧业业贫。。。12月月-2212月月-22Thursday,December8,202210、雨雨中中黄黄叶叶树树,,灯灯下下白白头头人人。。。。15:26:3915:26:3915:2612/8/20223:26:39PM11、以以我我独独沈沈久久,,愧愧君君相相见见频频。。。。12月月-2215:26:3915:26Dec-2208-Dec-2212、故人江江海别,,几度隔隔山川。。。15:26:3915:26:3915:26Thursday,December8,202213、乍见翻疑梦梦,相悲各问问年。。12月-2212月-2215:26:3915:26:39December8,202214、他乡生白发发,旧国见青青山。。08十二月月20223:26:39下午15:26:3912月-2215、比不了得得就不比,,得不到的的就不要。。。。十二月223:26下下午12月-2215:26December8,202216、行动出出成果,,工作出出财富。。。2022/12/815:26:3915:26:3908December202217、做前,,能够环环视四周周;做时时,你只只能或者者最好沿沿着以脚脚为起点点的射线线向前。。。3:26:39下午午3:26下午午15:26:3912月-229、没有有失败败,只只有暂暂时停停止成成功!!。12月月-2212月月-22Thursday,December8,202210、很多多事情情努力力了未未必有有结果果,但但是不不努力力却什什么改改变也也没有有。。。15:26:3915:26:3915:2612/8/20223:26:39PM11、成功就是是日复一日日那一点点点小小努力力的积累。。。12月-2215:26:3915:26Dec-2208-Dec-2212、世间成事事,不求其其绝对圆满满,留一份份不足,可可得无限完完美。。15:26:3915:26:3915:26Thursday,December8,202213、不知香积寺寺,数里入云云峰。。12月-2212月-2215:26:3915:26:39December8,202214、意志坚强的的人能把世界界放在手中像像泥块一样任任意揉捏。08十十二二月20223:26:39下下午15:26:3912

温馨提示

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

评论

0/150

提交评论