《第2章 8086微处理器结构.ppt》由会员分享,可在线阅读,更多相关《第2章 8086微处理器结构.ppt(39页珍藏版)》请在三一办公上搜索。
1、第2章 8086微处理器结构,8086微处理器的功能结构,8086CPU的内部结构 8086CPU的内部寄存器 8086CPU的存储器和I/O端口,CPU的内部结构,3、控制器,8086 CPU的内部结构,8086 CPU的内部结构,总线接口单元BIU的组成,16位指令指针寄存器IP-指向下一条要执行的指令,20位地址加法器一计算物理地址,将有关段寄存器内容(段的起始地址)左移4位后,与16位偏移地址相加,形成20位的物理地址,以对存储单元寻址。,IP用来存放下一条要执行指令在代码段中的偏移地址,只有与CS结合才能形成指向指令存放单元的物理地址,4个段寄存器CS,DS,SS,ES,6个字节指令
2、队列,总线控制电路:,处理器与外界联系的转接电路,包括20位地址总线,16位双向数据总线和控制总线,按照先进先出的原则,顺序将指令取到EU中,(任务),p31,执行部件EU,EU功能:负责指令的执行,EU组成:,是一个16位的运算器,用于8位、16位二进制算术和逻辑运算,也可以计算寻址存储器所需的16位偏移量,(1)算术逻辑运算单元ALU,是一个16位的寄存器,用来反映CPU运算状态特征和存放某些控制标志,(2)标志寄存器FLAGS。,执行部件EU,协助ALU完成运算,暂存参加运算的数据,(3)运算暂存器,(4)通用寄存器组,包括4个16位数据寄存器AX,BX,CX,DX和4个16位指针与变址
3、寄存器SP,BP,SI,DI,(5)EU控制电路,既可以做16位数据寄存器使用,也可以作为2个8位数据寄存器使用;即可存储数据也可放地址,(1)4个通用寄存器AX,BX,CX,DX,如:AH(高8位),AL(低8位);BH,BL-,AX也称累加器,CPU的许多指令都是通过累加器来执行的,一般在运算指令执行前,累加器中存放一个操作数,指令执行后由累加器保存结果,8086CPU的内部寄存器,AX作为16位累加器时进行字操作;作为8位累加器时进行字节操作,(2)4个段寄存器CS,DS,SS,ES,代码段寄存器CS;数据段寄存器DS;附加段寄存器ES;堆栈段寄存器SS,每个逻辑段的长度小于等于64KB
4、,4个16位段寄存器分别存放各个段的起始地址(段基址)寻址时还必须给出一个相对于分段寄存器值所指定的起始地址的偏移量(有效地址),根据段基址和偏移地址计算具体地址。,MOV A,08H,ADD A,14H,HLT;暂停指令,机器指令代码10000110 00001000,机器指令代码10001011 00010100,机器指令代码11110100,(3)地址指针和变址寄存器,参与地址运算的主要是地址指针和变址寄存器组中的4个寄存器SP,BP,SI,DI。一般用来存放偏移量(相对于段起始地址的距离)。,SP:堆栈指针寄存器(Stack Pointer)BP:基址指针寄存器(Stack Point
5、er)SI:源变址寄存器(Source Index)DI:目的变址寄存器(Destination Index),SP用于指出堆栈中当前栈顶的地址。入栈(PUSH)和出栈(POP)指令由SP给出栈顶的偏移地址。基址BP指出要处理的数据在堆栈中的基地址。,变址寄存器SI,DI用来存放当前数据段中某个单元的偏移量,(4)指令指针IP,IP用于存放CPU要执行指令的下一条指令的偏移地址。,标志寄存器FLAGS是16位寄存器,8086共使用了9个有效位,7位未用到。,每一位都是一个标志,(5)标志寄存器FLAGS,状态标志位:表示前面的操作执行后,ALU处于何种状态,可能会影响后面的操作。CF,PF,A
6、F,ZF,SF,OF,控制标志位:人为设置的,可以用专门的设置或删除指令,对某种功能起控制作用。DF,IF,TF,CF-进位标志位。当执行一个加法(或减法)运算时,使最高位产生进位(借位)时,CF=1;否则CF=0;在执行循环指令时也会受影响,PF-奇偶标志位。当标志位反应运算结果中1的个数是偶数 还是奇数。当指令执行结果的低8位中含偶数个1时 PF=1;否则PF=0,AF-辅助进位标志位。当执行一个加法(或减法)运算时,使结果的低4位向高4位产生进位(借位)时,AF=1;否则AF=0,ZF-零标志位。若当前的运行结果为零,则ZF=1;否则ZF=0,SF-符号标志位。它和运算结果的最高位相同,
7、OF-溢出标志位。当补码运算时有益处则OF=1;否则OF=0 即结果超出模值表示范围即为溢出,DF-方向标志位。用以指定字符串处理时的方向,当该DF=1 字符串操作过程中地址以从高到低顺递减。DF=0,字符串操作过程中地址以从低到高递增顺序处理,IF-中断允许标志位。用以控制8086是否允许接受外部中断 请求。若IF=1,8086能响应外部中断,IF=0不响应外 部中断,3个控制标志位(人为设置的),中断:计算机暂时停止它正在执行的程序,转而去执行请求中断的那个外设或事件的服务程序,待处理完毕后回到终止了的程序的过程,TF-跟踪标志位。当TF=“1”,CPU按照跟踪方式执行程序,(处于单步状态
8、),此时CPU每执行完一条指令就自动 产生一次内部中断。当该位复位后,CPU恢复正常工作 通常用于程序的调试过程中。,8086CPU的存储器和I/O端口,(1)8086的寄存器组织及其寻址,可寻址1M空间,在此空间以8位为一个字节顺序排列存放。,每一个字节用唯一一个地址码标示,为不带符号的整数。其地址范围位0-220-1,用十六进制表示00000H-FFFFFH,每一个字节用唯一一个地址码标示,为不带符号的整数。其地址范围位0-220-1,用十六进制表示00000H-FFFFFH,对于一个字,高8位字节放在高位地址,低8位字节放在低位地址,通常一个字节总位于偶地址,符合这种规则的字数据称为“规
9、则字”,规定将这个低位字节的地址作为这个字的地址,(2)分段结构和物理地址的形成,取指令时CPU会自动选择CS作为基地址;堆栈操作选择SS;存取操作数时选择DS或ES段,一个程序段可以使用一个逻辑段或多个逻辑段,物理地址形成:段基址(段起始地址高16位)和 偏移地址组成,(3)8086I/O端口,微机为每个端口分配一个地址,称为端口地址。一个端口通常为接口电路内部的一个寄存器或一组寄存器。,8086和外部设备之间由I/O接口电路来联系,每个I/O接口都有一个端口或几个端口。,小结,1.CPU两大组成部分及其功能,2.物理地址的计算方法,3.熟记各寄存器的名称及用途,4.8086的存储组织,8086CPU的字节寻址范围有多大?为什么?存储器为 什么分段?20位物理地址的形成过程是怎样的?,思考题,答:8086CPU的寻址范围1MB。因为在8086CPU地址线为20条,220=1024KB,即1MB。8086系统中,指令仅给出16位地址,与寻址地址有关的寄存器也只有16位长,因此寻址范围也只有64KB,为了寻址1MB,所以分成四个逻辑段。当CPU访问内存时,寄存器的内容(段基址)自动左移4位(二进制),与段内16位地址相加,形成20位物理地址。,
链接地址:https://www.31ppt.com/p-2823460.html