1第2章8086微处理器体系结构23◆执行部件(EU):由ALU、通用寄存器组、标志寄存器及操作控制器电路组成。◆总线接口部件(BIU):由段寄存器、指令指针IP、指令队列缓冲器、地址加法器等功能部件组成。形成对外总线,与存储器、I/O接口电路进行数据传输。41.总线接口部件BIU构成部件:(1)段寄存器:存放段地址。存放当前被执行的程序④所用操作数的段地址:附加段ES①程序的段地址:代码段CS②所用操作数的段地址:数据段DS③所用堆栈操作数的段地址:堆栈段SS5(2)指令指针寄存器IP:存放将要执行的下一条指令的偏移量,与CS联合形成下一条指令的物理地址。(3)地址加法器(20位):按以下算式计算存储单元的物理地址:物理地址=段地址*10H+偏移地址(4)指令队列缓冲器(6B):在EU不使用总线时,BIU从存储器中读取指令填充指令队列缓冲器。(5)输入输出控制电路:是处理器与外部总线的接口。根据地址码经数据总线进行操作数或指令代码的传输。6(1)算术逻辑运算部件(ALU):功能:完成算术运算、逻辑运算及数据传送操作。(2)寄存器组:①4个16位通用的数据寄存器:AX、BX、CX、DX,可分为两个8位的寄存器AL、AH、BL、BH、CL、CH、DL、DH②SP:用来指出堆栈的顶部偏移地址。③BP:在间接寻址时作为基地址寄存器。④DI:在间接寻址时作为地址寄存器或变址寄存器。⑤SI:在间接寻址时作为地址寄存器或变址寄存器。在字符串处理指令中,作为源变址寄存器。2.执行部件(EU)7实模式下标志寄存器有9个标志位:6个状态标志位,3个控制标志位状态标志位反映算术或逻辑运算后结果的状态:CF——进位标志,运算结果最高位产生进位或借位CF=1PF——奇偶标志,结果低8位中1的个数为偶数,CF=1AF——辅助进位标志,低4位产生进位置1,用于十进制数运算调整ZF——零标志,结果为0置1SF——符号标志,与运算结果的最高位相同OF——溢出标志,可以用来判断有符号整数补码运算结果的正确性FLAGSOFDFIFTFSFZFAFPFCF015(3)标志寄存器在EU中设置有一个16位的标志寄存器FR,用来记录程序执行时的状态。8控制标志用于控制CPU的操作,由程序设置或清除:DF——方向标志,控制数据串操作指令的步进方向STD将DF置1,使串操作过程中地址自动递减CLD将DF清0,使串操作过程中地址自动递增IF——中断允许标志,控制可屏蔽中断STI将IF置1,允许CPU接受可屏蔽中断请求CLI将IF清0,禁止CPU接受可屏蔽中断请求TF——陷阱标志,为调试程序而设将TF置1,CPU处于单步工作方式将TF清0,CPU正常执行程序FLAGS015OFDFIFTFSFZFAFPFCF标志寄存器9例:82A0H+8265HOF=1,SF=0,AF=0,CF=1结果0505H5678H-0DCBAH=79BEHOF=0,SF=0,AF=1,CF=1103.BIU与EU的重叠操作◆8086由EU与BIU两个独立的功能部件组成,它们的操作有并行性。◆EU与BIU的流水线操作:EU与BIU可独立工作,BIU在保证EU与片外传送操作数前提下,可进行指令预取,与EU可重叠操作。◆8086指令队列出现2个空字节,且EU未占总线,BIU自动取指令填充队列。112.2.28086/8088微处理器的存储器管理8088/8086CPU有20条地址总线,有220=1MB个存储单元。在机器内部用20位无符号二进制数来表示存储单元地址。8086/8088把1M主存空间划分为若干段。每个段最大长度为64K(即65536)。段地址存放在段寄存器CS、DS、SS、ES中。12在8086/8088微处理器中,描述存储器地址的三个相关术语:物理地址、偏移地址、逻辑地址①物理地址:是由8086/8088芯片地址引线送出的20位地址②偏移地址:某个存储单元相对于该段首地址的差值,用16位二进制代码。③逻辑地址:是在程序中对存储器地址的一种表示方法:逻辑地址=段地址:偏移地址物理地址的形成:物理地址=段基地址×10H+偏移量13例:8086/8088某主存单元的逻辑地址是:1234H:000AH,求其物理地址。答:则此单元的物理地址为:1234H×10H+000AH=12340H+000AH=1234AH14逻辑地址和物理地址访问存储器的操作数类型不同,使用的段寄存器和段内偏移量的来源也不同。实模式下,缺省的段寄存器和偏移地址的结合方式:CSIP指令SSSP堆栈操作SSBP存取堆栈内的数据DSBX、SI、DI或指令中存取数据段的的局给出的8/16位数据部数据ESDI串操作的目标操作数段寄存器偏移地址操作类型15逻辑地址和物理地址MOVAX,FFFFMOVDS,AXMOVAL,[0010]物理地址:FFFF00010100000+MOVAX,FFFFMOVDS,AXMOVAL,[FFFF]物理地址:FFFF0FFFF10FFEF+物理地址10000~10FFEF超出了实模式1MB寻址空间范围16堆栈操作堆栈是按照“先进后出”原则,实模式下堆栈的大小最大为64KB堆栈由堆栈段寄存器SS和堆栈指针寄存器SP来寻址,SS给出堆栈段的段基址,SP指向当前栈顶——段基址到栈顶的偏移量栈底为堆栈空间的高地址单元,栈顶为低地址单元。实模式下,堆栈操作以字为单位。•数据进栈,栈顶向低地址方向浮动,高位字节存入高地址单元,低位字节存入低地址单元17•数据出栈,栈顶向高地址方向浮动,低位字节弹到目的操作数的低位,高位字节弹到目的操作数的高低位