微机原理2-1:8088CPU内部结构、寄存器组、存储器组织cvpn.pptx
《微机原理2-1:8088CPU内部结构、寄存器组、存储器组织cvpn.pptx》由会员分享,可在线阅读,更多相关《微机原理2-1:8088CPU内部结构、寄存器组、存储器组织cvpn.pptx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二第二部分 8086/80888086/8088微处理器微处理器 一、一、8086/8088CPU8086/8088CPU的内部结构的内部结构 二、二、8086/80888086/8088的内部寄存器的内部寄存器 三、三、8086/8088的存储器组织的存储器组织 四、微处理器的指令系统四、微处理器的指令系统 五、五、8086/80888086/8088的引脚及工作摸式的引脚及工作摸式 六、时序与总线周期六、时序与总线周期 2控制总线控制总线数据总线数据总线地址总线地址总线内部数据总线内部数据总线暂存器暂存器累加器累加器ALU标志寄存器标志寄存器指指令令寄寄存存指指令令译译码码时序时序和和控
2、制控制逻辑逻辑通通 用用寄存器组寄存器组地地 址址寄存器组寄存器组地址地址总线总线控制控制数据数据总线总线控制控制一、8086/8088CPU的内部结构1.算术逻辑单元(运算器)算术逻辑单元(运算器)2.寄存器组寄存器组3.指令处理单元(控制器)指令处理单元(控制器)8 8位位微处理器的内部结构3n16位位微微处处理理器器也也具具有有以以上上结结构构中中的的基基本本单单元元,但更为复杂。但更为复杂。n以以8088为例讲解为例讲解16位微处理器的功能结构。位微处理器的功能结构。n8088是是8086的简化版本。的简化版本。n两两个个芯芯片片都都是是16位位微微处处理理器器,内内部部运运算算器器和
3、和寄寄存存器器都都是是16位位的的,同同样样具具有有20位位地地址址线线;8088的的外外部部数数据据总总线线为为8位位,而而8086为为16位位8088/8086的功能结构 AH ALBH BL CL CH DH DLSPBPDISI通通 用用 寄寄 存存 器器 CSDSSSES I P 内部通信寄存器内部通信寄存器总线总线控制控制逻辑逻辑 1 234AXBXCXDX数据总线数据总线暂暂 存存 寄寄 存存 器器A L U标志寄存器标志寄存器外部总线外部总线指令队列指令队列16 位位执行执行控制控制电路电路执行单元执行单元地址加法器地址加法器20 位位16 位位 段段 寄寄 存存 器器指令指针
4、指令指针(EU)总线接口单元总线接口单元 (BIU)ABDBCB5n8088的的编程结构编程结构从功能分成两个单元从功能分成两个单元n总总线线接接口口单单元元BIU(Bus Interface Unit)管管理理8088与与系系统统总线的接口,负责总线的接口,负责CPU对存储器和外设进行访问对存储器和外设进行访问n执执行行单单元元EU(Execution Unit)负负责责指指令令的的译译码码、执执行行和和数数据的运算据的运算n两个单元相互独立,分别完成各自操作两个单元相互独立,分别完成各自操作n两两个个单单元元可可以以并并行行执执行行,实实现现指指令令取取指指和和执执行行的的流流水水线线操作
5、操作6并行操作的意义EU执执行行指指令令的的同同时时,BIU可可以以继继续续读读取取后后续续指指令令,并并存存入入指指令令队队列列(first in first out)。这这叫叫做做“指指令令预预取取”。8位位的的CPU没没有有指指令令预预取取功功能能,执执行行指指令令前前必必须须等等待待“取指取指”操作完成。操作完成。取指操作是取指操作是CPU最频繁的操作。最频繁的操作。这种操作方式节省了这种操作方式节省了CPU大量的取指等待时间。大量的取指等待时间。“指令流水线指令流水线”。7二、8088寄存器结构 8088共共有有8个个的的通通用用寄寄存存器器,1个个标标志志寄寄存存器器,4个段寄存器
6、和个段寄存器和1个指令指针寄存器。个指令指针寄存器。1、通用寄存器、通用寄存器 数据寄存器数据寄存器 共共AX、BX、CX、DX四四个个,每每个个寄寄存存器器即即可可作作为为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:基基址址指指针针寄
7、寄存存器器Base Pointer,默默认认表表示示堆栈段基地址;堆栈段基地址;SP:堆栈指针寄存器堆栈指针寄存器Stack Pointer,指示栈顶,指示栈顶 SI:源变址寄存器源变址寄存器Source IndexDI:目的变址寄存器目的变址寄存器Destination Index 9 标标志志寄寄存存器器(FR)是是一一个个十十六六位位的的寄寄存存器器,但但只只利利用用了了其其中中的的9位位:六六个个条条件标志件标志和和三个三个控制标志控制标志。FRFR的格式的格式的格式的格式 CFCF PFPF AFAF ZFZF SFSF TFTFIFIFDFDFOFOF0 01 12 23 34 4
8、5 56 67 78 89 9101011111212131314141515校验校验校验校验进位进位进位进位 辅助进位辅助进位辅助进位辅助进位零标志零标志零标志零标志方向标志方向标志方向标志方向标志溢出标志溢出标志溢出标志溢出标志2、标志寄存器、标志寄存器中断标志中断标志中断标志中断标志陷阱标志陷阱标志陷阱标志陷阱标志符号标志符号标志符号标志符号标志10进位标志CF(Carry Flag)n当当运运算算结结果果的的最最高高有有效效位位有有进进位位(加加法法)或或借借位位(减减法法)时时,进进位位标标志志置置1,即即CF=1;否则否则 CF=0。例如(以例如(以8位运算为例,位运算为例,808
9、8中为中为16位):位):3AH+7CHB6H没有进位:没有进位:CF=0AAH+7CH(1)26H有进位:有进位:CF=111溢出标志OF(Overflow Flag)n若若算算术术运运算算的的结结果果有有溢溢出出,则则OF=1;否否则则 OF0。问题:问题:什么是溢出?什么是溢出?溢出和进位有什么区别?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?处理器怎么处理,程序员如何运用?如何判断是否溢出?如何判断是否溢出?P30找答案12什么是溢出n处理器内部以补码表示处理器内部以补码表示有符号数有符号数n8位表达的整数范围是:位表达的整数范围是:127 128n16位表达的范围是:位表达
10、的范围是:32767 32768n如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出n有溢出,说明有符号数的运算结果不正确有溢出,说明有符号数的运算结果不正确13溢出和进位的对比例例1:3AH7CHB6H无符号数运算:无符号数运算:58124182范围内,无进位范围内,无进位有符号数运算:有符号数运算:58124182范围外,有溢出范围外,有溢出例例2:AAH7CH(1)26H无符号数运算:无符号数运算:170124294范围外,有进位范围外,有进位有符号数运算:有符号数运算:8612428范围内,无溢出范围内,无溢出14处处理理器器对对两两个个操操作作数数进进行行运
11、运算算时时,按按照照无无符符号号数数求求得得结结果果,并并相相应应设设置置进进位位标标志志CF;同同时时,根根据据是是否否超超出出有有符符号号数数的的范范围围设设置置溢溢出出标志标志OF应应该该利利用用哪哪个个标标志志,则则由由程程序序员员来来决决定定。也也就就是是说说,如如果果将将参参加加运运算算的的操操作作数数认认为为是是无无符符号号数数,就就应应该该关关心心进进位位;认认为为是是有有符符号号数数,则要注意是否溢出。则要注意是否溢出。15全零标志ZF(Zero Flag)n若若运运算算结结果果为为全全0,则则ZF=1,否否则则ZF=0。例如:例如:3AH+7CHB6H结果不是零:结果不是零
12、:ZF=086H+7CH00H结果是全零:结果是全零:ZF=116符号标志SF(Sign Flag)n运算结果最高位为运算结果最高位为1,则,则SF=1;否则否则SF=0。例如:例如:3AH+7CHB6H最高位最高位D71:SF=186H+7AH00H最高位最高位D70:SF=0 有符号数利用最高有效位(有符号数利用最高有效位(MSB)来表示它的来表示它的符号。所以,运算结果的符号。所以,运算结果的MSB与符号标志与符号标志SF相一相一致。致。(1)17奇偶标志PF(Parity Flag)n当当运运算算结结果果最最低低字字节节中中“1”的的个个数数为为零零或或偶偶数时,数时,PF=1;否则否
13、则PF=0(奇校验奇校验)。)。例如:例如:3AH+7CHB6H10110110B,结果中有结果中有5个个1,是奇数,则是奇数,则 PF=0注注意意:PF标标志志仅仅反反映映最最低低8位位中中“1”的的个个数数是是偶或奇,即使是进行偶或奇,即使是进行16位字操作。位字操作。18辅助进位标志AF(Auxiliary Carry Flag)n运运算算时时D3位位(低低半半字字节节)有有进进位位或或借借位位时时,AF=1;否则否则AF=0。这这个个标标志志主主要要由由处处理理器器内内部部使使用用,用用于于十进制算术运算的调整,用户一般不必关心十进制算术运算的调整,用户一般不必关心。19方向标志DF(
14、Direction Flag)n用于用于串操作指令串操作指令中,控制地址的变化方向:中,控制地址的变化方向:n设置设置DF0,串操作后存储器地址自动增量(增址)串操作后存储器地址自动增量(增址);n设置设置DF1,串操作后存储器地址自动减量(减址)串操作后存储器地址自动减量(减址)。串:存储器中一序列字或字节单元串:存储器中一序列字或字节单元 串操作串操作对序列字或字节单元中的内容进行某种操作对序列字或字节单元中的内容进行某种操作,比如:将一个字符串从源区传送到目的区比如:将一个字符串从源区传送到目的区。MOVS串传送指令串传送指令 CMPS串比较指令串比较指令 SCAS串扫描指令串扫描指令
15、LODS装入串指令装入串指令 STOS存储串指存储串指令令 20中断允许标志IF(Interrupt-enable Flag)n用用于于控控制制外外部部可可屏屏蔽蔽中中断断是是否否可可以以被被处处理理器器响应:响应:n设置设置IF1,则则允许中断允许中断;n设置设置IF0,则则禁止中断禁止中断。nCLI 指令复位中断标志:指令复位中断标志:IF0nSTI 指令置位中断标志:指令置位中断标志:IF121陷阱标志TF(Trap Flag)n用于控制处理器是否进入用于控制处理器是否进入单步执行单步执行方式:方式:n设置设置TF0,处理器正常工作;处理器正常工作;n设设置置TF1,处处理理器器每每执执
16、行行一一条条指指令令就就中中断断一一次次,中中断断编编号号为为 1(称称单单步步中中断断),TF 也也被被称称为为单单步标志步标志。n单步执行单步执行和和单步调试单步调试n利用单步中断可对程序进行逐条指令的调试。利用单步中断可对程序进行逐条指令的调试。n这种逐条指令调试程序的方法就是这种逐条指令调试程序的方法就是单步调试单步调试。22OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0控制控制反映结果状态反映结果状态反应运算过程反应运算过程233、段寄存器(段寄存器(CS、DS、SS、ES)在在8088可可寻寻址址的的1MB内内存存空空间间中中,可可以以存存在在四四种种分
17、分工工不不同同的的逻逻辑辑段段:代代码码段段、数数据据段段、堆堆栈段栈段和和附加段附加段。段段寄寄存存器器即即是是存存放放各各个个逻逻辑辑段段段段首首地地址址的的寄寄存器。存器。24存储器的分段管理n8088有有20条地址线,条地址线,n最大可寻址空间为最大可寻址空间为 2201MB,n可寻址的地址范围为可寻址的地址范围为 00000HFFFFFHn该地址称该地址称物理地址物理地址n硬硬件件用用20位位的的物物理理地地址址来来对对存存储储单单元元进进行行寻寻址址25存储器的分段管理n由由于于8088中中的的地地址址寄寄存存器器都都是是16位位的的,用用户户不不能能直直接接使使用用20位位的的物
18、物理理地地址址,编编程程时时需需要要使用使用逻辑地址逻辑地址来寻址存储单元。来寻址存储单元。n逻辑地址逻辑地址由两个由两个16位数构成,其形式为:位数构成,其形式为:段的起始地址段的起始地址 :段内的偏移地址段内的偏移地址(16位段地址)位段地址):(16位偏移量)位偏移量)分隔符分隔符分隔符分隔符物理地址物理地址 14700H逻辑地址逻辑地址 1460H:100H26地址加法器地址加法器 将将16位位的的逻逻辑辑地地址址转转换换为为20位位的的物物理理地地址址,具具体体操操作作过过程程为为:先先将将段段寄寄存存器器提提供供的的16位位段段地地址址左左移移四四位位,低低位位补补0,恢恢复复为为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 8088 CPU 内部结构 寄存器 存储器 组织 cvpn
限制150内