已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
地址线20根,所表示的地址范围(寻址范围)为220210210102410241K1K1MB,数据总线16根,一次传送16位数据16位微处理器,第2章8086微处理器,2.18086微处理器的内部结构,2.1.18086基本组成8086CPU由总线接口部件BIU(BusInterfaceUnit)和指令执行部件EU(ExecutionUnit)两个独立的功能部件组成。其内部结构框图如图2.1所示。,算术逻辑单元(ALU)可完成16位或8位的二进制运算。暂存寄存器(16位)用来暂存参加运算的操作数。经ALU运算后的结果特征置入标志寄存器中保存。EU控制器负责从BIU的指令队列中取指令,并对指令译码,根据指令要求向EU内部各部件发出控制命令以完成各条指令的功能。,1.指令执行部件EU其主要功能是执行指令。,2.总线接口部件BIU总线接口部件主要由地址加法器、专用寄存器组、指令队列缓冲器和总线控制电路等部件组成,其主要功能是形成访问存储器的物理地址,负责与外部(存储器或I/O接口)打交道。,()地址加法器(16位)将两个16位的逻辑地址转换为20位的物理地址,以达到可寻址1M字节的存储空间。,2.指令队列缓冲器(6字节)可存放6字节的指令代码,一般情况下应保证指令队列中总是填满指令,使得EU可源源不断地得到执行的指令。3.总线控制电路将8086CPU的内部总线与外部总线相连,是8086CPU与外部交换数据的必经之路。CPU正是通过这些总线与外部世界取得联系,形成8086微型计算机系统。,EU和BIU这两个功能部件相互独立地工作,并在大多数情况下,能使大部分的取指令和执行指令操作重叠进行,所以大大减少了等待取指令所需的时间,提高了微处理器的利用率和整个系统的执行速度。,2.1.28086内部寄存器8086CPU中有14个16位的寄存器,如图2.3所示。,1.通用寄存器组图2.3中8个通用寄存器可分为两组,一组是数据寄存器,另一组是地址指针和变址寄存器。(1)数据寄存器通用寄存器AX、BX、CX和DX称为数据寄存器,可用来存放16位的数据或地址。也可把它们当作八个8位寄存器(AH、AL、BH、BL、CH、CL、DH、DL)来使用,这时只能存放8位数据,而不能用来存放地址。,(2)地址指针和变址寄存器包括SP、BP、SI、DI四个16位寄存器。它们更经常的用途是在段内寻址时提供偏移地址。其中:SP称为堆栈指针寄存器,用来指示栈顶的偏移地址;BP称为基址指针寄存器,可作为堆栈区中的一个基地址以便访问堆栈;SI(源变址寄存器)和DI(目的变址寄存器)一般与DS联用,用来确定数据段中某一存储单元的地址。,表2.1通用寄存器的特殊用途,2.段寄存器组代码段寄存器CS,数据段寄存器DS,附加数据段寄存器ES,堆栈段寄存器SS。,由于8086CPU可直接寻址的存储器空间是1M字节,直接寻址需要20位地址码,而所有的内部寄存器都是16位的,用这些寄存器只能直接寻址64K字节。为此把1M字节的存储空间分成许多逻辑段,每段最长为64k字节,这些逻辑段可在整个存储空间中浮动。于是用段寄存器给定各个逻辑段的首地址的高16位,被称为段地址。段寄存器CS、DS、ES、SS分别用来存放当前代码段、数据段、附加数据段、堆栈段的段地址。,分别用来存放当前代码段、数据段、附加数据段、堆栈段的段地址。,3.控制寄存器组(1)指令指针寄存器IP(InstructionPointer)用来存放将要取出的下一条指令在代码段中的偏移地址。注意:IP一般与CS联用,表示代码段中要处理的指令的逻辑地址。IP和CS由系统执行,用户一般是不能使用或修改的。,(2)标志寄存器FLAGS状态标志位6个(CF、PF、AF、ZF、SF和OF)用来表示运算结果的状态,控制标志位(IF、DF和TF),用来控制CPU的操作,,现将各标志位的定义说明如下:(1)CF(CarryFlag)进位标志位。如果做加法时最高位(字节操作是D7位,字操作是D15位)产生进位或做减法时最高位产生借位,则CF=1,否则CF=0。(2)PF(ParityFlag)奇偶标志位。如果操作结果的低八位中含有偶数个1,则PF=1,否则PF=0。(3)AF(AuxiliaryCarryFlag)辅助进位标志位。如果做加法时D3位有进位或做减法时D3位有借位,则AF=1,否则AF=0。,(4)ZF(ZeroFlag)零标志位。如果运算结果各位都为零,则ZF=1,否则ZF=0。(5)SF(SignFlag)符号标志位。如果运算结果的最高位(字节操作是D7,字操作是D15)为1,则SF=1,否则SF=0。(6)OF(OverflowFlag)溢出标志位。在加或减运算中结果超出8位或16位有符号数所能表示的数值范围时,产生溢出,OF=1,否则OF=0。,注意(1)OF位的求法为OF=C7C6(MOD28)OF=C15C14(MOD216)(2)有符号数和无符号数的溢出问题:判断的标志OF和CF,举例说明,假设有如下两个8位二进制数进行相加,根据结果判断将影响8086CPU中PSW的各个状态位的情况。,00001110(0EH),01111000(78H),+,10000110(86H),ZF=0,CF=0,PF=0,AF=1,SF=1,OF=1,(7)IF(InterruptFlag)中断标志位。可用指令设置。当IF=1时,CPU可响应可屏蔽中断请求;IF=0,CPU不响应可屏蔽中断请求。(8)TF(TrapFlag)单步标志位。假如TF=1,则CPU处于单步工作方式。在这种工作方式下,CPU每执行完一条指令就自动产生一次内部中断。在调试程序DEBUG中,T命令就是利用这种中断。(9)DF(DirectionFlag)方向标志位。在串处理指令中,若DF=0,表示串处理指令地址指针自动增量,即串操作由低地址向高地址进行;DF=1,表示地址指针自动减量,即串操作由高地址向低地址进行。DF标志位可通过指令预置。,2.1.38086存储器管理1.存储器的基本结构存储器是有一个个字节组成的。如图所示。,字节,00000H,00001H,00002H,FFFFFH,地址,内容(8bit),20bit,物理地址(PA),2.存储器的分段,8086微处理器有20根地址线,可访问存储器的最大容量为1M字节。而8086内部所有的寄存器都只有16位,只能寻址64K字节。因此在8086系统中,把整个存储空间分成许多逻辑段,每个逻辑段的容量64K字节,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以相互重叠(完全重叠或部分重叠)。,第0段,第1段,第n-1段,分段,(段之间不重叠),存储器,第0段,第1段,第n-1段,分段,(段之间重叠),存储器,重叠,在8086存储空间中,各逻辑段的起始地址必须是能被16整除的地址,即段的起始地址的低4位二进制码必须是0。一个段的起始地址的高16位被称为该段的段地址,把它存放在相应的段寄存器中,而段内的相对地址可用系统中的16位通用寄存器来存放,被称为偏移地址。,即存储单元的逻辑地址为:段地址:偏移地址,若已知当前有效的代码段、数据段、附加数据段和堆栈段的段地址分别为1055H、250AH、8FFBH和EFF0H,那么它们在存储器中的分布情况如图2.5所示。每个段可以独立地占用64K存储区。,各个逻辑段也可以允许重叠。例如,如果代码段中的程序占有8KB(2000H)存储区,数据段占有2KB(800H)存储区,堆栈段占有256个字节的存储区。此时分段情况如图2.6所示。由图可知,代码段的区域本可为02000H11FFFH(64KB),由于程序区只需要8KB,所以程序区结束后的地址就可作为数据段的起始地址(04000H)。注意,这里所谓的重叠只是指每个区段的大小允许根据实际情况分配,而不一定非要占有64KB的最大段空间。,3.存储器中的逻辑地址和物理地址采用分段结构的存储器中,任何一个逻辑地址由段地址和偏移地址两个部分构成。它们都是无符号的16位二进制数(逻辑地址记为:段地址:偏移地址)。任何一个存储单元对应一个20位的物理地址,它是由逻辑地址变换得来的。当CPU需要访问存储器时,必须完成如下的地址运算:物理地址(PA)=段地址10H+偏移地址(EA)这是在CPU的总线接口部件BIU的地址加法器中完成的,其操作过程如图2.7所示。,0000,如果访问存储器要求读/写操作数,则通常由数据段寄存器DS给出段地址(必要时可修改为CS、ES或SS),而其偏移地址要由CPU的指令执行部件根据指令中所给定的寻址方式来进行计算,通常将这样计算得到的偏移地址称为有效地址(EA)。但如果所采用的寻址方式是通过基址指针BP寻址,则段地址要由堆栈段寄存器SS提供(必要时可以修改为CS、DS或ES)。,如果对存储器中的堆栈进行操作,则段地址来源于堆栈段寄存器SS,偏移地址来源于堆栈指针SP。,如果执行的是串处理指令,当取源串时,段地址由数据段寄存器DS提供(必要时可修改为CS、ES和SS),偏移地址必须由源变址寄存器SI提供。当取目标串时,段地址必须由附加段寄存器ES提供,偏移地址必须由目标变址寄存器DI提供。,以上这些是系统内部约定,程序设计过程中必须遵守这些约定,如表2.2所示。,2.18086微处理器的内部结构,回顾,1.8086CPU的内部逻辑结构,2.8086CPU的内部寄存器组(1)数据寄存器:AX,BX,CX,DX(16位)AH,AL,BH,BL,CH,CL,DH,DL(8位)(2)指针与变址寄存器:SP,BP,SI,DI其中,SP,BP主要针对堆栈段SI,DI主要针对数据段(内存)注意:如果访问内存,则偏移地址一般存放在BX,SI,DI中;而如果访问I/O接口,则端口地址只能放在DX中。,(3)标志寄存器:6个状态位CF,OF,AF,SF,ZF,PF3个控制位IF,DF,TF,(4)段寄存器:CS,DS,SS,ES,注意:逻辑地址段地址:偏移地址所以,段地址只能存放在段寄存器中,而偏移地址一般存放在SP,BP,BX,SI,DI中。而段寄存器与存放偏移地址寄存器之间存在着默认的对应关系,即:SP,BP对应SSSI,DI对应DS,3.8086CPU的存储器管理(1)8086CPU的地址线有20根,所以,其访问存储器空间大小为1MB;(2)存储器分段每个逻辑段最大为64KB;每个逻辑段的第一个字节的物理地址的低4位为0;每个逻辑段的段地址为其第一个字节的物理地址的高16位;每个逻辑段中的一个字节的存储单元的地址一般用偏移地址(EA)来表示。逻辑段的起始地址的偏移地址为0000H;段内其他单元的偏移地址实际上就是该单元偏离起始地址的偏移值,等于该单元的物理地址与起始物理地址之差。,(3)逻辑地址:是用户程序所用到的地址。,汇编语言源程序:datasegmentdataendsstacksegmentstackendsextrasegmentextraendscodesegmentcodeends,逻辑空间,MOVAX,DS:SI,逻辑地址:是用户程序所用到的地址。,汇编语言源程序:datasegmentdataendsstacksegmentstackendsextrasegmentextraendscodesegmentcodeends,逻辑空间,MOVAX,DS:SI,物理空间,第2章8086微处理器,2.0CPU内部结构概述,2.18086CPU内部结构,2.1.18086CPU内部基本组成,2.1.28086CPU内部寄存器,2.1.38086CPU存储器管理,2.18086微处理器的内部结构,总之,汇编程序一般将源程序分成四个逻辑段,即代码段、数据段、堆栈段和附加段。,1、代码段寄存器CS(CodeSegment)存放代码段的段基地址。2、数据段寄存器DS(DataSegment)存放数据段的段基地址。3、堆栈段寄存器SS(StackSegment)存放堆栈段的段基地址。4、附加数据段寄存器ES(ExtraSegment)存放附加段的段基地址。,2.18086微处理器的内部结构,通常代码段用来存放可执行的指令,该逻辑段是必不可少的;数据段和附加数据段用来存放参加运算的操作数和运算结果;堆栈段用作程序执行中需要使用的堆栈,即在存储器中开辟的堆栈区。如果程序量或数据量很大,超过64K字节,那么可定义多个代码段、数据段、附加数据段和堆栈段,只是在4个段寄存器中存放的应该是当前使用的逻辑段的段地址,必要时可修改这些段寄存器的内容,以扩大程序的规模。,段250AH,250A0H,250AFH,0000H,000FH,物理地址(PA),偏移地址(EA),段内各单元的偏移地址(也称相对地址),第0段,第1段,第n1段,要求:1、段地址的二进制编码长度为16位。2、段的第一个单元的物理地址(20bit)的低4位必须是0。3、段地址就等于第一个单元的物理地址的高16位。4、段地址的取值范围为0000HFFFF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英语系2009论文格式要求
- 00-1-江苏理工学院外国语学院学术类毕业论文写作规范及格式细则-20250406
- 汉语言文学实习报告范文4
- 现金管理开题报告(五)
- 毕业论文基本格式
- 本科生毕业论文的撰写基本规范标准-图文
- 2025年导师对选题报告的评语
- 管理信息系统在工程项目中的运用
- 的论文格式标准
- 雨课堂学堂在线学堂云安装工程计量与计价西华大学单元测试考核答案
- 2025河南城发环保能源有限公司下属项目公司校园招聘110人笔试历年常考点试题专练附带答案详解2套试卷
- 澳大利亚淡水龙虾养殖技术与投资分析
- 2025新疆天泽工程管理有限公司及所属公司部分岗位社会招聘27人笔试历年参考题库附带答案详解
- 2025年肺功能万里行试题及答案
- 年度培训总结及明年培训计划
- 人教版三年级英语上册期中检测卷及答案(附听力材料)
- 2024年全国住房城乡建设行业职业技能大赛钢筋工技术文件
- 新消防法考试题库(100)题
- 地基下沉注浆加固专项方案
- 公路隧道养护培训知识课件
- 中国资源循环集团25年社招政治素质测试及职业素质测试考试必刷题
评论
0/150
提交评论