《哈工大威海计算机学院计算机组成原理.ppt》由会员分享,可在线阅读,更多相关《哈工大威海计算机学院计算机组成原理.ppt(21页珍藏版)》请在三一办公上搜索。
1、8086/8088 在组成结构上分为:总线接口部件(BIU)执行部件(EU)总线接口部件负责取指令,执行部件负责执行指令,从而构成了一个“两段的流水线”。,取指令1,执行指令1,取指令2,执行指令2,取指令3,执行指令3,2023/11/12,通用寄存器组,AX,BX,CX,DX,外部总线,内部总线,地址加法器,2023/11/12,8086/8088 的 分 段 存 储 结 构,存储器为什么要分段呢?16位微处理器,常规上管理216=64KB的存储空间这样的存储空间满足不了应用的要求。用什么方法来扩大呢?将正常管理的64KB存储空间定义为一个段让微处理器能够管理多个这样的段通过分段存储结构,
2、8086/8088能够管理1MB的存储空间。,2023/11/12,8086/8088的分段存储结构,存储器分段后如何来管理呢?每个段的起始地址称为:段基址或段地址每个段内的地址称为:段内偏移地址一个物理存储单元就可以通过“段地址:偏移地址”来唯一确定了如何管理“段地址”和“偏移地址”呢?设置多个段基址寄存器设置多个偏移地址寄存器都有哪些“段基址寄存器”和“偏移地址寄存器”呢?,2023/11/12,依照用途的不同,可分为如下段,8086/8088的分段存储结构,存储程序(指令)代码。其段基址存放于CS寄存器,段内偏移地址存放于IP寄存器,存储程序定义的变量。段基址存放于DS寄存器,段内偏移地
3、址存放于SI、DI或BX寄存器,管理系统堆栈。段基址存放于SS寄存器,段内偏移地址存放于SP或BP寄存器,存储经过处理的中间变量。段基址存放于ES寄存器,段内偏移地址存放于SI、DI或BX寄存器,2023/11/12,8086/8088 的分段存储结构,由段基址和相对于该段的偏移地址共同描述的地址 逻辑地址,例如:5000H:2000H,20根地址线所表示的地址 物理地址,2023/11/12,0 0 0 0,段 地 址,如何根据16位的段地址和16位的段内偏移地址来计算20位的物理地址呢?,19 4 3 0,段地址左移四位,20 位 的 物 理 地 址,8086/8088 的分段存储结构,2
4、023/11/12,物理地址的计算方法,段地址左移四位,再加上偏移地址,就得到20位的物理地址。,2023/11/12,Intel 80 x86系列微处理器,8086/8088的标志分为两类:状态标志和控制标志。状态标志表示前面操作执行后,算术逻辑单元所处的状态,这些状态常作为后继指令执行的条件。状态标志有6个,分别是符号标志SF、零标志ZF、奇偶标志PF、进位标志CF、辅助进位标志AF和溢出标志OF。控制标志有3个,分别是方向标志DF、中断标志IF和陷阱标志TF。,2023/11/12,3.4 Intel 80 x86系列微处理器,状态标志,(1)符号标志SF。与计算结果的最高位相同,表示计
5、算结果的正/负。0表示正,1表示负。(2)零标志ZF。若计算结果为零,则ZF=1,否则=0。(3)奇偶标志PF。若计算结果的低8位中1的个数为偶数,则PF=1,否则=0。(4)进位标志CF。若执行的加法运算在最高位产生进位,或者执行的减法运算引起最高位产生借位,则CF=1,否则=0。此外,带进位的循环移位也可能会改变CF。可以用指令STC将CF置1,用指令CLC将CF清0,用指令CMC将CF取反。,2023/11/12,3.4 Intel 80 x86系列微处理器,状态标志,(5)辅助进位标志AF。若执行加法运算时第3位向第4位进位(即低半字节向高半字节),或者执行减法运算时第3位从第4位借位
6、,则AF=1,否则=0。(6)溢出标志OF。若计算过程产生溢出,则OF=1,否则=0。溢出是指字节运算的结果超出了128+127的范围,或者字运算的结果超出了32768+32767的范围。在进行加法运算时,每当次高位向最高位有进位而最高位没有向前进位,或者最高位向前进位而次高位没有向最高位进位,则ALU置OF为1。,2023/11/12,3.4 Intel 80 x86系列微处理器,控制标志,(1)方向标志DF。这是控制串操作指令的标志。若DF=0,则串操作过程中地址将不断增值,否则不断减值。可用指令STD将DF置1,用指令CLD将DF清0。(2)中断标志IF。这是控制可屏蔽中断的标志。如果I
7、F=0,则8086/8088对可屏蔽中断请求不能做出响应,否则可以响应可屏蔽中断请求。可用指令STI将IF置1,用指令CLI将IF清0。“将IF置1”称为“开中断”,“将IF清0”称为“关中断”,2023/11/12,3.4 Intel 80 x86系列微处理器,控制标志,(3)陷阱标志TF。这是控制8086/8088是否进入单步执行状态的标志。若TF=1,则8086/8088进入单步执行状态或跟踪方式执行指令状态,即每条指令执行完后,微处理器暂停(进入陷阱),显示处理器内部各寄存器的值。进入单步执行状态便于程序的调试。如果TF=0,则连续执行指令。,标志寄存器FR有16位,9个标志位的定义如
8、下,未定义的7位保留,2023/11/12,3.4 Intel 80 x86系列微处理器,溢出标志OF(Over flow flag)OV(1)NV(0)方向标志DF(Direction flag)DN(1)UP(0)中断标志IF(Interrupt flag)EI(1)DI(0)符号标志SF(Sign flag)NG(1)PL(0)零标志ZF(Zero flag)ZR(1)NZ(0)辅助标志AF(Auxiliary carry flag)AC(1)NA(0)奇偶标志PF(Parity flag)PE(1)PO(0)进位标志CF(Carry flag)CY(1)NC(0),标志寄存器FR有16
9、位,9个标志位的定义如下,未定义的7位保留,2023/11/12,在Debug状态下,标志寄存器每位的状态含义,AX,BX,CX,DX,8086/8088 的寄存器组,作为累加器用,在加法运算中参与运算,结果存于累加器中;所有的I/O指令都隐含地使用AX与外部设备传送信息。,作为通用寄存器使用在采用基址寻址方式时,用作基址寄存器,作为通用寄存器使用;常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数器。,作为通用寄存器使用;在一些指令中,通常用它来存放数据,所以又称为数据寄存器;在做双字长运算时,将DX和AX组合在一起存放双字长数,用DX存放高位字。,2023/11/12,S
10、P是一个专门为堆栈设置的寄存器。,堆栈(Stack),后进先出(Last In First Out,LIFO)例如:子弹匣,注意与队列(Queue)的区别,先进先出(First In First Out,FIFO)例如:排队乘车,2023/11/12,对堆栈的操作只有两种:压入PUSH 弹出POP,90FFCH90FFDH90FFEH90FFFH91000H,对堆栈的操作总是针对栈顶单元进行的,栈顶单元的偏移地址总是由堆栈指示器(Stack Pointer,SP)给出,堆栈段的段地址由SS指示。,2023/11/12,55,AA,执行 PUSH AX 操作,执行 PUSH AX 操作之前,对压入指令而言,只需说明把谁压入即可。例如:PUSH AX,堆 栈 操 作 示 意 图,0FFEH,2023/11/12,堆 栈 操 作 示 意 图,执行 POP AX 操作,执行 POP AX 操作之前,对弹出指令而言,只需说明弹出到哪儿即可。例如:POP AX,AA,55,1000H,2023/11/12,8086的引脚,ADi表示地址总线与数据总线复用同一个引脚,Ai/Si表示地址总线与控制总线复用同一个引脚。这叫做总线复用。,地址锁存信号输出,2023/11/12,8088的引脚,8位的数据总线,NMI非屏蔽中断请求信号输入,INTR可屏蔽中断请求信号输入,2023/11/12,