微机原理与单片机应用课件:第4章1-2 8086(8088)微处理器_第1页
微机原理与单片机应用课件:第4章1-2 8086(8088)微处理器_第2页
微机原理与单片机应用课件:第4章1-2 8086(8088)微处理器_第3页
微机原理与单片机应用课件:第4章1-2 8086(8088)微处理器_第4页
微机原理与单片机应用课件:第4章1-2 8086(8088)微处理器_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 16位微处理器4.1 16位微处理器概述 计算机发展至今已经历了四代,第四代是大规计算机发展至今已经历了四代,第四代是大规模集成电路发展后的产物,由于微电子技术的发展,模集成电路发展后的产物,由于微电子技术的发展,已使得结构复杂,功能强大的计算机中央处理器已使得结构复杂,功能强大的计算机中央处理器CPU集成在一个芯片上,构成了所谓的微处理器集成在一个芯片上,构成了所谓的微处理器MPU 4004/800880808088/80868038680486PentiumCore Duo80186/802864.2.1 8086/8088 CPU的结构 8086 CPU从功能上可分为两部分: 总

2、线接口部件(bus interface unit, BIU) 执行部件(execution unit, EU)4.2 8086/8088微处理器AH ALBH BLCH CLDH DL SP BP DI SI通通用用寄寄存存器器运算寄存器运算寄存器ALU标志寄存器标志寄存器EU控制系统控制系统1 2 3 4 5 6 CS DS SS ES IP内部寄存器内部寄存器总线总线控制控制逻辑逻辑地址加地址加法器法器20位地址总线位地址总线16位数据总线位数据总线8位位指令队列缓冲器指令队列缓冲器外外部部总总线线执行单元执行单元(EU)总线接口单元总线接口单元(BIU)8086CPU8086CPU结构图

3、结构图AXBXCXDX16位位专专用用寄寄存存器器内部总线4 4.2.1 .2.1 执行单元执行单元 EUEU 功能:负责指令的执行。功能:负责指令的执行。(1)从指令队列中取出指令。)从指令队列中取出指令。(2)对指令进行译码,发出相应的控制信号。)对指令进行译码,发出相应的控制信号。(3)接收由总线接口单元送来的数据或发送数据至接口。)接收由总线接口单元送来的数据或发送数据至接口。(4)利用内部寄存器和)利用内部寄存器和ALU进行数据处理。进行数据处理。4 4.2.1 .2.1 总线接口单元总线接口单元 BIUBIU 功能:功能: 负责负责CPUCPU与存储器、与存储器、I/OI/O端端口

4、之间的数据传送。口之间的数据传送。(1 1)取指令送到指令队列。)取指令送到指令队列。(2 2)CPUCPU执行指令时,到指定的位置取数据,并将其送至指令执行指令时,到指定的位置取数据,并将其送至指令 要求的位置单元中。要求的位置单元中。指令队列缓冲器:在执行指令的同时,从内存中取下一条或者下几条指令,并放入指令队列缓冲器中。CPU执行完一条指令后,可以立即执行下一条指令(流水线技术),而无需轮番取指令和执行指令,从而提高CPU效率。每当8086的指令队列中有2个空字节,8088指令队列中有1个空字节时,总线接口单元就会自动取指令至队列中。 当队列已满,执行单元又不使用总线时,总线接口单元进入

5、空闲状态。 执行转移指令、调用指令、返回指令时,先清空队列内容,再将要执行的指令放入队列中。4.2.2 8086/8088的寄存器的寄存器2 2个控制寄存器:个控制寄存器: IP, FIP, F(或(或FRFR)4 4个段寄存器:个段寄存器:CS, DS, SS, ESCS, DS, SS, ES8 8个通用寄存器:个通用寄存器:AXAX,BXBX,CXCX,DX, DX, SP,BP,SI,DISP,BP,SI,DI(1616位位 )AHALBHBLCHCLDHDLSPBPSIDIIPF或FRCSDSSSESAXBXCXDX累加器(accumulator)基址寄存器(base registe

6、r)计数寄存器(count register)数据寄存器(data register)堆栈指示器(stack point)基址指示器(base point)源变址寄存器(source index)目的变址寄存器(destination index)代码段寄存器(code segment)数据段寄存器(data segment)堆栈段寄存器(stack segment)附加段寄存器(extra segment)指令指示器(instruction point)状态标志寄存器(status flags)寄存器专门用途AX,AL在乘法、除法指令中,作累加器;在输入、输出指令中,作数据寄存器AH在非压缩

7、BCD数调整指令中,作目的寄存器;在LAHF(SAHF)指令中,作目的(源)寄存器AL在BCD数运算指令和调整指令中,作累加器;在XLAT指令中,作数据表的位移量BX作间址和基址寄存器CX在循环控制指令和串操作指令中,作计数器CL在移位指令中,作移位位数计数器DX在输入、输出指令中,作间址寄存器;在乘法、除法指令中,作辅助累加器BP作间址和基址寄存器SP作堆栈指示器SI作间址和变址寄存器;在串操作指令中,作源字符串的间址或变址寄存器DI作间址和变址寄存器;在串操作指令中,作目的字符串的间址或变址寄存器OUT DX,ALMOV AX,3456HADD AL,AHDAAMOV AL, 200MOV

8、 BL, 4MUL BLMOV CX,10L1:LOOP L1MOV AX, 1234hPUSH AXPOP DX 关于标志寄存器F(或FR) 标志寄存器的格式及各位的含义标志寄存器的格式及各位的含义1514131211109876543210OF DF IF TF SF ZFAFPFCF状态标志方向标志中断标志跟踪标志Trace Flag控制标志进位标志奇偶标志半进位标志零标志符号标志溢出标志n状态标志:表示前面的操作执行后,算术逻辑部件处于怎样一种状态。例如,是否产生了进位,是否发生了溢出等等。程序中,可以通过对某个状态标志的测试,决定后面的走向及操作。(1) 状态标志:例如: STATE

9、: IN AL, 0DAH; TEST AL,02H; JZ STATE零标志ZF(Zero Flag) 若运算结果为0,则ZF1;否则ZF0。这两条指令执行后,ZF1。例1:MOV AL,4 SUB AL,4例2:XOR AX,AX 执行后,ZF也一定为1。进位标志CF(Carry Flag) 它反映: 加法时,最高位(字节操作时的D7位,字操作时的D15位)是否有进位产生。 减法时,最高位(字节操作时的D7位,字操作时的D15位)是否有借位产生。例:(AH)=10000001 (AL)=10000000执行:ADD AL, AH 10000001+)10000000 00000001 CF

10、=1奇偶标志PF(Parity Flag) 若运算结果低8位中“1”的个数为偶数,则PF1;否则PF0。n例:MOV AL,2n ADD AL,1 ; 00000011n 执行后,PF位为1 辅助进位AF(AUXILIARY CARRY FLAG) 反映8位量的低四位(或16位量的低位字节)向高位有无进位(借位)情况,有则AF=1,无则AF=0。AF位一般用于BCD运算例: 1001 1001 或 10010001 00011011 +) 0010 1010 +) 01100010 00100001 1100 0011 11110011 00111100 有进位AF=1 无进位AF=0符号标志

11、SF(SIGN FLAG) 反映带符号数运算结果的符号位情况,当数据用补码表示时,运算结果最高位为0 表示正数,最高位为1 表示负数 SF与运算结果的最高位相同,刚好可以用来表示该数的正负 SF=1 负数 SF=0 正数 溢出标志OF(overflow flag) 主要用来反映带符号数运算是否超过机器能表示的数值范围,超过OF=1带符号数(补码表示负数) 00000000-01111111 (0 - +127) 10000000-111111111(-128 -1)即一个字节带符号数表示范围为-128127同样,二个字节带符号表示为-3276832767溢出标志OF(overflow flag

12、)例: 00011010 (1AH=26) +) 01010110 (56H=86) 01110000 (70H=112)CF=0:这两个数如作为无符号数相加 ,则没有进位(不超过255)OF=0:如作为带符号数相加,也没有溢出(26+86=112均没有超过)为什么?溢出标志OF(overflow flag)例: 01011010 (5AH=90) +) 01010110 (56H=86) 10110000 (B0=176) 把该两数作无符号数看,则两数相加正好无进位 CF=0若把该两数当作带符号数,则两数相加,无法再用位二进制带符号数表示(-128127),则肯定要溢出从计算结果也可以看出,

13、两个正数相加,结果得一负数,(B0H=-80)则结果肯定溢出了(不正确)超出一个字节表示的范围 OF=1如何知道?(2)控制计算机CPU的标志 方向标志DF(DIRECTION FLAG)在作字符串操作(例如使用MOVSB指令)时,每执行一条操作指令,源、目的地址会自动调整n当DF设为=0时(用CLD指令)串操作过程地址会不断增加n当DF设为=1时(用STD指令)串操作过程地址会不断减少(2)控制计算机CPU的标志 中断允许标志IF(Interrupt enable Flag)用于设置系统是否允许响应外部的可屏蔽中断。nIF=1表示允许响应,用STI指令nIF=0表示不允许,用CLI指令(2)

14、控制计算机CPU的标志跟踪标志TF(陷阱标志)TRAP FALGnTF=1时,微处理每执行完一条指令便会自动产生一个内部中断,转去执行一个内部中断服务子程序,用来检查每条指令的执行情况,称为“单步执行”方式,常用于程序的调试。nTF=0时,CPU正常执行程序。标志寄存器F(FR)标志寄存器的格式及各位的含义标志寄存器的格式及各位的含义1514131211109876543210OFDFIFTFSFZFAFPFCF状态标志方向标志中断标志跟踪标志Trace Flag控制标志进位标志奇偶标志半进位标志零标志符号标志溢出标志关于段寄存器为什么需要段寄存器?它与8086/8088的存储结构有关AH A

15、LBH BLCH CLDH DL SP BP DI SI通通用用寄寄存存器器运算寄存器运算寄存器ALU标志寄存器标志寄存器EU控制系统控制系统1 2 3 4 5 6 CS DS SS ES IP内部寄存器内部寄存器总线总线控制控制逻辑逻辑地址加地址加法器法器20位地址总线位地址总线16位数据总线位数据总线8位位指令队列缓冲器指令队列缓冲器外外部部总总线线执行单元执行单元(EU)总线接口单元总线接口单元(BIU)8086CPU8086CPU结构图结构图AXBXCXDX16位位专专用用寄寄存存器器内部总线16位代码段寄存器16位数据段寄存器16位堆栈段寄存器16位指令寄存器IP20位的地址加法器1

16、6位附加段寄存器关于关于 8088与与8086的区别的区别 8086和8088本质上是相同的,其内部采用16位结构。两者EU完全一样,BIU略有不同:8086指令队列指令队列6字节,字节,8088指令队列指令队列4字节字节8086是真正的是真正的16位位CPU,内部数据总线是,内部数据总线是16位的,同位的,同BIU相连的外部数据总线也是相连的外部数据总线也是16位位8088是准是准16 位位CPU,内部数据总线是,内部数据总线是16位的。同位的。同BIU相连的外部数据总线却是相连的外部数据总线却是8位的,在处理一个外位的,在处理一个外部部16位数据时,位数据时,8088需要两步操作而需要两步

17、操作而8086只需要一只需要一步。步。8086和和8088 CPU的内部都采用的内部都采用16位字进行操作及存位字进行操作及存储寻址,两者软件完全兼容,程序执行也完全相同。储寻址,两者软件完全兼容,程序执行也完全相同。然而,由于然而,由于8088要比要比8086有较多的外部存取操作,有较多的外部存取操作,所以,对相同的程序,它执行得较慢。所以,对相同的程序,它执行得较慢。IBM Portable PC 5155Model:model 68Introduced:February 1984Price:US $4225.Weight:30 poundsCPU:Intel 8088 4.77MHzRA

18、M:256K, 640K maxDisplay:9-inch amber displayCGA graphics, 80 X 25 textStorage:Two 360KB 5.25-inch disk drivesPorts:1 parallel, 1 serial, CGA videoOS:IBM PC-DOS Version 2.10 (disk) 第一台个人电脑数据与指令的存储与访问地址地址内内 容容0(00H)00000100B(4)1(01H)10000000B(128)2(02H)00010001B(17) 255(FFH)00001111B (15) 4 4.2.3 .2.3

19、 存储器结构存储器结构4 4.2.3 .2.3 存储器结构存储器结构 由于由于8086/80888086/8088有有2020条地址线,可以寻址条地址线,可以寻址2 22020(1M1M)字节,)字节,CPUCPU送到地址总线(送到地址总线(ABAB)上的)上的2020位的地址称为位的地址称为物理地址。物理地址。 物理地址.60000H 60001H 60002H 60003H 60004H.12HF0H1BH08H FFH存储器分段并辅以地址偏移量存储器分段并辅以地址偏移量4 4.2.3 .2.3 存储器结构存储器结构 8086/8088CPU8086/8088CPU把把1M1M字节的存储器

20、空间划分为任字节的存储器空间划分为任意的一些存储段,一个存储段是存储器中可独立寻意的一些存储段,一个存储段是存储器中可独立寻址的一个逻辑单位,也称址的一个逻辑单位,也称逻辑段逻辑段,每个段的容量小,每个段的容量小于等于于等于64K64K字节。每段起始地址规定最低字节。每段起始地址规定最低4 4位为位为0 0。1、8086最少和最多可以分为多少个段?2、下列地址哪些可能是一个段的开始地址:134546H,67828H,1FF30H4 4.2.3 .2.3 存储器结构存储器结构0150H4200H1CD0HB000H64KB代码代码64KB数据数据64KB附加附加64KB堆栈堆栈CSDSSSES段

21、寄存器段寄存器存储器存储器01500H114FFH1CD00H2CCFFH42000H51FFFHB0000HBFFFFH0200H0400H0480H 段重叠的分配方式举例段重叠的分配方式举例02000H段地址段地址段所在位置段所在位置CS0200H02000H-11FFFHDS0400H04000H-13FFFHSS0480H04800H-147FFH4 4.2.3 .2.3 存储器结构存储器结构段基址:偏移地址段基址:偏移地址4 4.2.3 .2.3 存储器结构存储器结构 8086CPU8086CPU中有四个段地址寄存器:中有四个段地址寄存器:CSCS,DSDS,SSSS和和ESES,这四,这四个段地址寄存器存放了个段地址寄存器存放了CPUCPU当前可以寻址的四个段的基址,即当前可以寻址的四个段的基址,即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了一旦这四个段寄存器的内容被设定,就规定了CPUCPU当前可寻址当前可寻址的段。的段。 64K2 164 4.2.3 .2.3

温馨提示

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

评论

0/150

提交评论