第1节 8086微处理器内部基本结构_第1页
第1节 8086微处理器内部基本结构_第2页
第1节 8086微处理器内部基本结构_第3页
第1节 8086微处理器内部基本结构_第4页
第1节 8086微处理器内部基本结构_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第2章8086CPU结构2.18086微处理器内部基本结构2.28086总线的工作周期2.38086微处理器外部基本引脚与工作模式2.48086微处理器的存储器组织2.58086微处理器的时序2.6Intel80x86系列微处理器简介2.7例题解析8086和8088CPU的区别:8086和8088CPU的内部基本相同,但它们的外部性能是有区别的。8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。8086和8088CPU的内部都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同。然而,由于8088要比8086有较多的外部存取操作,所以,对相同的程序,它将执行得较慢。这两种微处理器都封装在相同的40脚双列直插组件(DIP:DoubleIn-linePackage)中。2.18086微处理器内部基本结构2.1.18086/8088CPU的内部结构8086CPU芯片16位字长双列直插式40根引脚下一页2.18086微处理器内部基本结构2.1.18086/8088CPU的内部结构两个部件可以并行执行,实现指令取指和执行的流水线操作8086/8088的内部结构,按功能划分,可分成两个部件总线接口部件BIU(businterfaceunit,BIU)执行部件EU(executionunit,EU)两个部件相互独立(类似于左右手),分别完成各自操作管理8086与系统总线的接口,负责CPU对存储器和外设进行访问负责指令的译码、执行和数据的运算1234内部暂存器

IP

ES

SSDSCS控制电路外部总线控制电路∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列执行部件(EU)总线接口部件(BIU)16位20位16位8位段寄存器8088的内部结构返回AH

ALBHBLCHCLDHDLSPBPDISICSDSSSESIP内部寄存器暂存寄存器标志执行部分控制电路

123456输入/输出控制电路外部总线指令队列缓冲器Σ地址加法器20位16位8位16位ALU执行部件EU总线接口部件BIU

通用寄存器返回本节8086的内部结构1.执行部件EUEU的组成①算术逻辑运算单元ALU(Arithmetic[ə'riθmətik]

LogicalUnit)它包括4个16位的数据寄存器AX、BX、CX、DX和4个16位指针与变址寄存器SP、BP与SI、DI。1个16位的寄存器,用来反映CPU运算的状态特征和存放某些控制标志。④数据暂存寄存器它负责从BIU的指令队列缓冲器中取指令,并对指令译码,根据指令要求向EU内部各部件发出控制命令,以完成各条指令规定的功能。它是1个16位的运算器,可用于8位、16位二进制算术和逻辑运算,也可按指令的寻址方式计算寻址存储器所需的16位偏移量。②通用寄存器组(Generalregister)③标志寄存器FR(FlagRegister)它协助ALU完成运算,暂存参加运算的数据。⑤EU控制电路返回2.总线接口部件BIU的组成总线接口单元BIU由1个20位地址加法器、4个16位段寄存器、1个16位指令指针IP、指令队列缓冲器和总线控制逻辑电路等组成。8086的指令队列由6个字节构成,8088的指令队列由4个字节构成。地址加法器将16位的段寄存器内容左移4位,与16位偏移地址相加,形成20位的物理地址。指令指针IP用来存放下一条要执行指令在代码段中的偏移地址。当EU正在执行指令且不需占用总线时,BIU会自动地进行预取指令操作,将所取得的指令按先后次序存入1个6字节的指令队列寄存器,该队列寄存器按“先进先出”的方式工作,并按顺序取到EU中执行。④总线控制逻辑电路①地址加法器(Addressadder)和段寄存器(Segmentregister

)②16位指令指针IP(Instructionpointer)③指令队列(Instructionqueue)缓冲器返回将内部总线和外部总线相连8086CPU内部寄存器如图2.2所示。(Generalregister)2.1.28086CPU寄存器结构﹜控制寄存器数据寄存器数据寄存器用来存放计算的结果和操作数每个寄存器又有它们各自的专用目的:AX:基址寄存器,常用来做基址指针,指向一批连续存放操作数的基地址。计数器(counter),作为循环和串操作等指令中的隐含计数器。DX:数据寄存器,用来存放外设端口的地址,或双字长数据的高16位。CX:BX:16位累加器,用于算术、逻辑运算以及与外设传送信息等;AL:8位累加器(accumulator)。变址寄存器变址寄存器常用于存储器寻址时,提供内存的偏移地址SI是源变址寄存器(sourceindex)DI是目的变址寄存器(destinationindex)在串操作类指令中,SI和DI具有特别的功能指针寄存器指针寄存器用于寻址内存堆栈内的数据SP(栈顶指针)(stackpointer)为堆栈指针寄存器,指示栈顶的偏移地址。SP不能再用于其他目的,具有专用性BP(basepointer)为基址指针寄存器,表示数据在堆栈段中的基地址SP/BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址指令指针寄存器IP(Instructionpointer)指令指针寄存器IP,指示代码段中指令的偏移地址它与代码段寄存器CS联用,确定下一条指令的物理地址计算机通过CS:IP寄存器来取指,从而控制指令序列的执行流程IP寄存器是一个专用寄存器,用户不能直接访问。指令指针寄存器IP(Instructionpointer)CS(codesegment)——16位代码段寄存器;DS(datasegment)——16位数据段寄存器;ES(extrasegment)——16位附加段寄存器;SS(stacksegment)——16位堆栈段寄存器。4个段地址寄存器(Segmentregister

IP指向下一次要取出的指令地址。在目标程序运行时,IP的内容由微处理器硬件自动设置,程序不能直接访问IP,但一些指令却可改变IP的值,如转移指令、子程序调用指令等。实模式存储器寻址时物理地址的计算方法OF111512DF10IF9TF8SF7ZF65AF43PF21CF0控制反映结果状态反应运算过程/结果标志寄存器FR(Flagregister)、FLAGS、PSW(programstatusword)标志(Flag)用于反映指令执行结果或控制指令执行形式。8086处理器中各种常用的标志形成了一个16位的标志寄存器FLAGS(也称程序状态字PSW寄存器)。标志的作用反映了当前运算和操作结果的状态条件,可作为控制程序转移与否的依据。标志分成两类:状态标志:OF

CF

SF

ZF

PF

AF用户根据需要用指令进行设置,用于控制处理器的具体工作方式。记录程序运行结果的状态信息,许多指令的执行都将自动地改变它。控制标志:DF

IF

TF(系统标志)溢出标志OF(OverflowFlag)若算术运算的结果有溢出,则OF=1;否则OF=0。例如:3AH+7CH=产生溢出:OF=1AAH+7CH=没有溢出:OF=0问题:什么是溢出?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?如何判断是否溢出?B6H(设字长为8位!)数的表示范围:带符号数字节运算:-128~+127字运算:无符号数-32768~+32767字节运算:0~+255字运算:0~+6553526H00111010B10110110B01111100B+=10101010B+01111100B100100110B进位,丢掉十进制二进制十六进制十进制十六进制n=8n=16+127011111117F+327677FFF+126011111107E+327667FFE......……...+20000001002+20002+10000000101+100010000000000000000-111111111FF-1FFFF-211111110FE-2FFFE......……...-1261000001082-327668002-1271000000181-327678001-1281000000080-327688000n位二进制补码的表示数范围:

-2n-1≤N≤2n-1-1无符号整数的表示数范围:0≤N≤2n-1符号标志SF(SignFlag)运算结果最高位为1,则SF=1;否则SF=0。例如:3AH+7CH=B6H最高位D7=1:SF=184H+7CH=00H最高位D7=0:SF=0有符号数利用最高有效位(MSB)(MostSignificantBit)来表示它的符号。所以,运算结果的MSB与符号标志SF相一致。进位标志CF(CarryFlag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0。例如(以8位运算为例):3AH+7CH没有进位:CF=0AAH+7CH有进位:CF=100111010B10110110B01111100B+==B6H10101010B+01111100B100100110B=26H奇偶标志PF(ParityFlag)当运算结果低字节中“1”的个数为零或偶数时,PF=1;否则PF=0(奇校验)。例如:3AH+7CH=B6H=10110110B,结果中有5个1,是奇数,则PF=0PF仅反映低8位中“1”的个数是偶或奇,即使是进行16位字操作。注意:零标志位ZF(zeroFlag)若算术运算的结果为0,则ZF=1;否则ZF=0。例如:3AH+(-3AH)=0结果为0:ZF=1AAH+7CH结果非0:ZF=010101010B+01111100B100100110B进位,丢掉=26H辅助进位标志AF(Auxiliary[ɔ:g'ziljəri]CarryFlag)运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=0。例如:3AH+7CH=B6HD3向前有进位:AF=1用于十进制算术运算的调整,用户一般不必关心。方向标志DF(DirectionFlag)用于串操作指令中,控制地址的变化方向:设置DF=0,串操作后存储器地址自动增量(增址);设置DF=1,串操作后存储器地址自动减量(减址)。STD指令置位方向标志:DF=1CLD指令复位方向标志:DF=000111010B10110110B01111100B+=中断允许标志IF(Interrupt-enableFlag)用于控制外部可屏蔽中断是否可以被处理器响应:设置IF=1,则允许中断;设置IF=0,则禁止中断。CLI指令复位中断标志:IF=0STI指令置位中断标志:IF=1陷阱标志TF(TrapFlag)用于控制处理器是否进入单步执行方式:设置TF=0,处理器正常工作;设置TF=1,处理器每执行一条指令就中断一次,中断编号为1(称单步中断)TF

也被称为单步标志。单步执行和单步调试这种逐条指令调试程序的方法就是单步调试。利用单步中断可对程序进行逐条指令的调试。无符号数:5+10=15CF=0有符号数:(+5)+(+10)=+15OF=00000010100001010+00001111①无符号数:8+251=3CF=1有符号数:OF=0②0000100011111011+000000111(+8)+(-5)=+3无符号数:8+124=132CF=0有符号数:(+8)+(+124)=-124OF=1无符号数:135+245=124有符号数:OF=1CF=1(-121)+(-11)=+1240000100001111100+10000100③1000011111110101+011111001④CF的一般作用是判断无符号数的溢出,计算机溢出对无符号数来说,用CF判断即可。CF=1,表示溢出。难点:C

温馨提示

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

最新文档

评论

0/150

提交评论