微机原理2-1:8088CPU内部结构、寄存器组、存储器组织_第1页
微机原理2-1:8088CPU内部结构、寄存器组、存储器组织_第2页
微机原理2-1:8088CPU内部结构、寄存器组、存储器组织_第3页
微机原理2-1:8088CPU内部结构、寄存器组、存储器组织_第4页
微机原理2-1:8088CPU内部结构、寄存器组、存储器组织_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、第二第二部分 8086/80888086/8088微处理器微处理器 一、一、8086/8088CPU8086/8088CPU的内部结构的内部结构 二、二、8086/80888086/8088的内部寄存器的内部寄存器 三、三、8086/8088的存储器组织的存储器组织 四、微处理器的指令系统四、微处理器的指令系统 五、五、8086/80888086/8088的引脚及工作摸式的引脚及工作摸式 六、时序与总线周期六、时序与总线周期 本部分学习微处理器的内部结构、指令系统、引脚及功能、操作时序和总线周期等。2控制总线控制总线数据总线数据总线地址总线地址总线内部数据总线内部数据总线暂存器暂存器累加器累加

2、器ALU标志寄存器标志寄存器指指令令寄寄存存指指令令译译码码时序时序和和控制控制逻辑逻辑通通 用用寄存器组寄存器组地地 址址寄存器组寄存器组地址地址总线总线控制控制数据数据总线总线控制控制一、 8086/8088CPU的内部结构1.算术逻辑单元(运算器)算术逻辑单元(运算器)2.寄存器组寄存器组3.指令处理单元(控制器)指令处理单元(控制器)8 8位位微处理器的内部结构3n16位微处理器也具有以上结构中的基本单元,位微处理器也具有以上结构中的基本单元,但更为复杂。但更为复杂。n以以8088为例讲解为例讲解16位微处理器的功能结构。位微处理器的功能结构。n8088是是8086的简化版本。的简化版

3、本。8088/8086的功能结构 AH ALBH BL CL CH DH DLSPBPDISI通通 用用 寄寄 存存 器器 CSDSSSES I P 内部通信寄存器内部通信寄存器总线总线控制控制逻辑逻辑 1 234AXBXCXDX数据总线数据总线暂暂 存存 寄寄 存存 器器A L U标志寄存器标志寄存器外部总线外部总线指令队列指令队列16 位位执行执行控制控制电路电路执行单元执行单元地址加法器地址加法器20 位位16 位位 段段 寄寄 存存 器器指令指针指令指针(EU)总线接口单元总线接口单元 (BIU)5n8088的的编程结构编程结构从功能分成两个单元从功能分成两个单元n总线接口单元总线接口

4、单元BIU (Bus Interface Unit)管理管理8088与系与系统总线的接口,负责统总线的接口,负责CPU对存储器和外设进行访问对存储器和外设进行访问n执行单元执行单元EU (Execution Unit)负责指令的译码、执行和负责指令的译码、执行和数据的运算数据的运算n两个单元相互独立,分别完成各自操作两个单元相互独立,分别完成各自操作n两个单元可以两个单元可以并行并行执行,实现指令取指和执行的流水线执行,实现指令取指和执行的流水线操作操作6并行操作的意义EU执行指令的同时,执行指令的同时,BIU可以继续读取后续指令,可以继续读取后续指令,并存入指令队列并存入指令队列(first

5、 in first out)。这叫做。这叫做“指令预指令预取取”。8位的位的CPU没有指令预取功能,执行指令前必须等没有指令预取功能,执行指令前必须等待待“取指取指”操作完成。操作完成。取指操作是取指操作是CPU最频繁的操作。最频繁的操作。这种操作方式节省了这种操作方式节省了CPU大量的取指等待时间。大量的取指等待时间。“指令流水线指令流水线”。7二、 8088寄存器结构 8088共有共有8个的通用寄存器,个的通用寄存器,1个标志寄存器,个标志寄存器,4个段寄存器和个段寄存器和1个指令指针寄存器。个指令指针寄存器。 1、通用寄存器、通用寄存器 数据寄存器数据寄存器 共共AX、BX、CX、DX四

6、个,每个寄存器即可作四个,每个寄存器即可作为为16位寄存器,又可拆分为两个位寄存器,又可拆分为两个8位寄存器,此时记位寄存器,此时记为为AH、AL、BH、BL等。等。 AX(AH、AL):累加器累加器accumulator BX(BH、BL):基址寄存器基址寄存器base CX(CH、CL):计数寄存器计数寄存器counter DX(DH、DL):数据寄存器数据寄存器data 8 指针和变址寄存器指针和变址寄存器 共共BP、SP、SI、DI四个四个 BP:基址指针寄存器基址指针寄存器Base Pointer ,默认表示,默认表示堆栈段基地址;堆栈段基地址;SP:堆栈指针寄存器堆栈指针寄存器St

7、ack Pointer,指示栈顶,指示栈顶 SI:源变址寄存器源变址寄存器Source IndexDI:目的变址寄存器目的变址寄存器Destination Index 9 标志寄存器(标志寄存器(FR)是是十六位的十六位的寄存器,但只利用了其中的寄存器,但只利用了其中的9位:位:六个六个条条件标志件标志和和三个三个控制标志控制标志。2、标志寄存器、标志寄存器10进位标志CF(Carry Flag)n当运算结果的最高有效位有进位(加法)或当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置借位(减法)时,进位标志置1,即,即CF = 1;否则否则 CF=0。例如(以例如(以8位运算为

8、例,位运算为例,8088中为中为16位):位):3AH + 7CHB6H没有进位:没有进位:CF=0AAH + 7CH(1)26H有进位:有进位:CF=111溢出标志OF(Overflow Flag)n若算术运算的结果有溢出,则若算术运算的结果有溢出,则OF=1;否则否则 OF0。例如:例如:问题:问题:什么是溢出?什么是溢出?溢出和进位有什么区别?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?处理器怎么处理,程序员如何运用?如何判断是否溢出?如何判断是否溢出?P30找答案12什么是溢出n处理器内部以补码表示处理器内部以补码表示有符号数有符号数n8位表达的整数范围是:位表达的整数范围是

9、:127 128n16位表达的范围是:位表达的范围是:32767 32768n如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出n有溢出,说明有符号数的运算结果不正确有溢出,说明有符号数的运算结果不正确13溢出和进位的对比例例1:3AH7CHB6H无符号数运算:无符号数运算: 58124182范围内,无进位范围内,无进位有符号数运算:有符号数运算: 58124182范围外,有溢出范围外,有溢出例例2:AAH7CH(1)26H无符号数运算:无符号数运算: 170124294范围外,有进位范围外,有进位有符号数运算:有符号数运算: 8612428范围内,无溢出范围内,无溢

10、出14处理器对两个操作数进行运算时,按照无符处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志号数求得结果,并相应设置进位标志CF;同;同时,根据是否超出有符号数的范围设置溢出时,根据是否超出有符号数的范围设置溢出标志标志OF应该利用哪个标志,应该利用哪个标志,则由程序员来决定则由程序员来决定。也。也就是说,就是说,如果将参加运算的操作数认为是无如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。则要注意是否溢出。15全零标志ZF(Zero Flag)n若运算结果为全若运算结果为全0,则,则ZF=1

11、,否则否则ZF=0。例如:例如:3AH + 7CHB6H结果不是零:结果不是零:ZF=086H + 7CH00H结果是全零:结果是全零:ZF=116符号标志SF(Sign Flag)n运算结果最高位为运算结果最高位为1,则,则SF=1;否则否则SF=0。例如:例如:3AH + 7CHB6H最高位最高位D71:SF=186H + 7CH00H最高位最高位D70:SF=0 有符号数利用最高有效位(有符号数利用最高有效位(MSB)来表示它来表示它的符号。所以,运算结果的的符号。所以,运算结果的MSB与符号标志与符号标志SF相相一致。一致。(1)17奇偶标志PF(Parity Flag)n当运算结果当

12、运算结果最低字节中最低字节中“1”的个数为零或的个数为零或偶数时,偶数时,PF=1;否则否则PF=0(奇校验奇校验)。)。例如:例如:3AH + 7CHB6H10110110B,结果中有结果中有5个个1,是奇数,则是奇数,则 PF=0注意:注意:PF标志仅反映标志仅反映最低最低8位位中中“1”的个数的个数是偶或奇,即使是进行是偶或奇,即使是进行16位字操作。位字操作。18辅助进位标志AF(Auxiliary Carry Flag)n运算时运算时D3位(低半字节)有进位或借位时,位(低半字节)有进位或借位时,AF=1;否则否则AF=0。 这个标志主要由处理器内部使用,用于这个标志主要由处理器内部

13、使用,用于十进制算术运算的调整,用户一般不必关心十进制算术运算的调整,用户一般不必关心。19方向标志DF(Direction Flag)n用于用于串操作指令串操作指令中,控制地址的变化方向:中,控制地址的变化方向:n设置设置DF0,串操作后存储器地址自动增量(增址)串操作后存储器地址自动增量(增址) ;n设置设置DF1,串操作后存储器地址自动减量(减址)串操作后存储器地址自动减量(减址) 。串:存储器中一序列字或字节单元串:存储器中一序列字或字节单元 串操作串操作对序列字或字节单元中的内容进行某种操作对序列字或字节单元中的内容进行某种操作 ,比如:将一个字符串从源区传送到目的区比如:将一个字符

14、串从源区传送到目的区 。MOVS串传送指令串传送指令 CMPS串比较指令串比较指令 SCAS串扫描指令串扫描指令 LODS装入串指令装入串指令 STOS存储存储串指令串指令 20中断允许标志IF(Interrupt-enable Flag)n用于控制外部可屏蔽中断是否可以被处理器用于控制外部可屏蔽中断是否可以被处理器响应:响应:n设置设置IF1,则则允许中断允许中断;n设置设置IF0,则则禁止中断禁止中断。nCLI 指令复位中断标志:指令复位中断标志:IF0nSTI 指令置位中断标志:指令置位中断标志:IF121陷阱标志TF(Trap Flag)n用于控制处理器是否进入用于控制处理器是否进入单

15、步执行单步执行方式:方式:n设置设置TF0,处理器正常工作;处理器正常工作;n设置设置TF1,处理器每执行一条指令就中断一次,处理器每执行一条指令就中断一次,中断编号为中断编号为 1 (称(称单步中断单步中断),), TF 也被称为也被称为单单步标志步标志。n单步执行单步执行和和单步调试单步调试n利用单步中断可对程序进行逐条指令的调试。利用单步中断可对程序进行逐条指令的调试。n这种逐条指令调试程序的方法就是这种逐条指令调试程序的方法就是单步调试单步调试。22OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0控制控制反映结果状态反映结果状态反应运算过程反应运算过程233、

16、段寄存器(段寄存器(CS、DS、SS、ES) 在在8088可寻址的可寻址的1MB内存空间中,可以存内存空间中,可以存在四种分工不同的逻辑段:在四种分工不同的逻辑段:代码段代码段、数据段数据段、堆堆栈段栈段和和附加段附加段。 段寄存器即是存放各个段寄存器即是存放各个逻辑段逻辑段段首地址的寄段首地址的寄存器。存器。?为什么要分段为什么要分段24存储器的分段管理n8088有有20条地址线,条地址线,n最大可寻址空间为最大可寻址空间为 2201MB,n可寻址的地址范围为可寻址的地址范围为 00000HFFFFFHn该地址称该地址称物理地址物理地址n硬件用硬件用20位位的的物理地址物理地址来对存储单元进

17、行寻来对存储单元进行寻址址25存储器的分段管理n由于由于8088中的地址寄存器都是中的地址寄存器都是16位的,用位的,用户不能直接使用户不能直接使用20位的物理地址,编程时需位的物理地址,编程时需要使用要使用逻辑地址逻辑地址来寻址存储单元。来寻址存储单元。n逻辑地址逻辑地址由两个由两个16位数构成,其形式为:位数构成,其形式为: 段的起始地址段的起始地址 : 段内的偏移地址段内的偏移地址(16位段地址)位段地址) :( 16位偏移量)位偏移量) 物理地址物理地址 14700H逻辑地址逻辑地址 1460H:100H26地址加法器地址加法器 将将16位的逻辑地址转换为位的逻辑地址转换为20位的物位

18、的物理地址,具体理地址,具体操作过程操作过程为:先将段寄存为:先将段寄存器提供的器提供的16位段地址左移四位,低位补位段地址左移四位,低位补0,恢复为恢复为20位地址,然后与由各种寻址方位地址,然后与由各种寻址方式提供的式提供的16位偏移地址位偏移地址相加相加,即得到,即得到20位的位的物理地址物理地址。逻辑地址27 物理地址:物理地址: 20 位位 逻辑地址:逻辑地址: 段基址段基址 (段寄存器的内容)(段寄存器的内容)16位位 偏移地址(字节距离)偏移地址(字节距离)16位位段段 基基 址址 16 位位偏偏 移移 地地 址址 16 位位物物 理理 地地 址址 20 位位00 0 0+逻辑地

19、址28存储器的分段管理逻辑地址的表示逻辑地址的表示段地址:偏移地址段地址:偏移地址地址偏移量(地址偏移量(xxxxH)段首(段首(xxxx0H)低址低址段尾段尾某某逻逻辑辑段段某寻址单元某寻址单元29n段地址段地址说明逻辑段在存储器中的起始位置,说明逻辑段在存储器中的起始位置,为模为模16地址:地址:xxxx0H,省略低省略低4位后,可位后,可用用1个个16位数来表示,该地址可被存放在不位数来表示,该地址可被存放在不同的同的段寄存器段寄存器CS/SS/DS/ES中。中。n偏移地址偏移地址说明寻址单元距离段首的偏移量,说明寻址单元距离段首的偏移量,因每段长度不超过因每段长度不超过64KB,所以偏

20、移地址也所以偏移地址也可用可用1个个16位数来表示。位数来表示。存储器的分段管理30存储器的分段管理n一个存储单元可以拥有多个一个存储单元可以拥有多个逻辑地址逻辑地址,但只,但只可能拥有一个唯一的可能拥有一个唯一的物理地址物理地址。逻辑地址逻辑地址 1460:1001460:100、1380:F001380:F00物理地址物理地址 14700H 14700H 14700H14700H31如何分配各个逻辑段n程序的指令序列必须安排在程序的指令序列必须安排在代码段代码段;n程序使用的堆栈一定在程序使用的堆栈一定在堆栈段堆栈段;n程序中的数据默认是安排在数据段,也经常程序中的数据默认是安排在数据段,

21、也经常安排在附加段,尤其是串操作的目的区必须安排在附加段,尤其是串操作的目的区必须是是附加段附加段。n数据的存放比较灵活,实际上可以存放在任数据的存放比较灵活,实际上可以存放在任何一种逻辑段中。何一种逻辑段中。程序中程序中如何指明数据所在的逻辑段如何指明数据所在的逻辑段呢?呢?32段跨越前缀指令n没有指明时,一般的数据访问在没有指明时,一般的数据访问在DS段;段;n若使用若使用BP访问存储器,则在访问存储器,则在SS段。段。n默认的情况允许改变,需要使用段跨越前缀默认的情况允许改变,需要使用段跨越前缀指令,指令,8088指令系统中共有指令系统中共有4个:个:CS: 代码段超越,使用代码段的数据

22、代码段超越,使用代码段的数据SS:堆栈段超越,使用堆栈段的数据堆栈段超越,使用堆栈段的数据DS:数据段超越,使用数据段的数据数据段超越,使用数据段的数据ES:附加段超越,使用附加段的数据附加段超越,使用附加段的数据33段超越的例子n没有段超越的指令实例:没有段超越的指令实例:MOV AX, 2000H;AXDS:2000H,;从默认的从默认的DS数据段取出数据数据段取出数据n采用段超越前缀的指令实例:采用段超越前缀的指令实例:MOV AX, ES:2000H;AXES:2000H,;从指定的从指定的ES附加段取出数据附加段取出数据34IP(Instruction Pointer)中中存放存放即

23、将要执行的指令即将要执行的指令的的有效地址有效地址,IP具有具有自增量自增量功能。在每取出一条功能。在每取出一条指令后,指令后,IP自增一,指令指针指向自增一,指令指针指向下一条指令。下一条指令。4、指令指针寄存器(指令指针寄存器(IP )35总结一下:通用寄存器通用寄存器8AX/BX/CX/DX BP/SP DI/SI指令指针寄存器指令指针寄存器 1IP标志寄存器标志寄存器1PSW段寄存器段寄存器4 CS/SS/DS/ES掌握通用寄存器的作用掌握通用寄存器的作用熟悉熟悉PSW中各个标志的含义中各个标志的含义切实理解切实理解存储器组织存储器组织和和存储空间分段存储空间分段的概念的概念36808

24、8的寄存器组37堆栈的概念n堆栈堆栈(Stack)是主存中一个特殊的区域。是主存中一个特殊的区域。n它采用它采用(First In Last Out)或后或后进先出进先出LIFO(Last In First Out)的原则进行存的原则进行存取操作,而不是随机存取操作方式。取操作,而不是随机存取操作方式。n堆栈指针堆栈指针它指示栈顶位置,在它指示栈顶位置,在8086/8086中,栈顶由中,栈顶由SS和和SP共同指示,即共同指示,即SS:SP。n堆栈操作堆栈操作n处理器自动维持(子程序调用时的断点处理)处理器自动维持(子程序调用时的断点处理)n用户操作(用户操作(PUSH/POP指令)指令)38三

25、、 8088/8086的存储器结构n存储器存储器是计算机存储信息的地方。掌握数是计算机存储信息的地方。掌握数据据存储格式存储格式,以及存储器的,以及存储器的分段管理分段管理对以对以后的汇编程序设计非常重要后的汇编程序设计非常重要n你能区别你能区别寄存器寄存器、存储器存储器(主存主存)、外存外存(包包括硬盘、光盘、磁带等存储介质括硬盘、光盘、磁带等存储介质)吗?吗?39寄存器、存储器和外存的区别n寄存器寄存器是是微处理器(微处理器(CPU)内部)内部暂存数据暂存数据的存储的存储单元,以名称表示,例如:单元,以名称表示,例如:AX,BX.等等n存储器存储器也就是平时所说的也就是平时所说的主存主存,

26、也叫,也叫内存内存,可直,可直接与接与CPU进行数据交换。主存利用地址区别进行数据交换。主存利用地址区别n外存外存主要指用来主要指用来长久保存长久保存数据的外部存储介质,数据的外部存储介质,常见的有硬盘、光盘、磁带、常见的有硬盘、光盘、磁带、U盘等。外存的数据盘等。外存的数据只能通过主存只能通过主存间接地与间接地与CPU交换数据交换数据n程序及其数据可以长久存放在外存,在运行需要程序及其数据可以长久存放在外存,在运行需要时才进入主存时才进入主存402.5 8086/8088的存储器结构 数据的存储格式数据的存储格式n计算机中表示信息的单位有:计算机中表示信息的单位有:位(位(bit)、)、字节

27、(字节(byte)、)、字(字(word)、)、双字(双字(double word)等等n在存储器中,信息的存储单位是:在存储器中,信息的存储单位是:字节;即字节;即每个存储单元的内容是一个字节。每个存储单元的内容是一个字节。41信息的表示单位n最低有效位最低有效位LSB(Least Significant Bit):):指数据的最低位,即指数据的最低位,即D0位;位;n最高有效位最高有效位MSB(Most Significant Bit):):指数据的最高位,对应字节、字、指数据的最高位,对应字节、字、双字分别指双字分别指D7、D15、D31位。位。42存储单元及其存储内容n每个存储单元都有

28、一个编号每个存储单元都有一个编号存储器地址存储器地址例如:例如:图图2.3(下页)中,(下页)中,0002H单元存放有单元存放有一个数据一个数据34H,表示为,表示为 0002H34Hn如何存储一个字或双字呢?如何存储一个字或双字呢?小端方式小端方式43图2.3 8088的存储格式00000H00001H00002H00003H00004H00005H34H12H56H78H00006HD7 D0低地址低地址双字双字D0D31字字D0D15字节字节D0D7LSBMSB44n多字节数据在存储器中占据多字节数据在存储器中占据多个连续的存储单元多个连续的存储单元:n存放时,存放时,低字节低字节存于存

29、于低地址低地址,高字节高字节存于存于高地址高地址;n多字节数据占据的地址空间用它的多字节数据占据的地址空间用它的低地址低地址来表示。来表示。n例如:例如:图图2.3中,中,2号号“字字”单元:单元: 0002H = 1234H 2号号“双字双字”单元:单元: 0002H = 78561234Hn80 x86处理器的处理器的“低对低、高对高低对低、高对高”的存储形式,的存储形式,被称为被称为“小端方式(小端方式(little endian)”。n相对应还存在相对应还存在“大端方式(大端方式(Big Endian)”。45地址对齐 同一个存储器地址可以表示:字节单元地址、同一个存储器地址可以表示:字节单元地址、字单元地址、双字单元地址等等(视指令的具体情字单元地址、双字单元地址等等(视指令的具体情况)。况)。 将将字字单元安排在单元安排在偶地址偶地址(xxxx0 B),),将将双双字字单元安排在单元安排在模模4地址地址

温馨提示

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

评论

0/150

提交评论