《寄存器结构、存储器管理.ppt》由会员分享,可在线阅读,更多相关《寄存器结构、存储器管理.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、两个独立的功能部件:执行部件两个独立的功能部件:执行部件EU、总线接口部件、总线接口部件BIU。AH ALBH BLCH CLDH DLSPBPSIDICSDSSSESIP1 24653标志寄存器标志寄存器总线总线控制控制逻辑逻辑指令队列指令队列EU控控制制ALU地地址址加加法法器器BIU单元单元EU单元单元AXBXCXDX内存内存接口接口22 80X86系列微处理器的功能结构系列微处理器的功能结构 2.2.1 8086/8088及及80286微处理器的功能结构微处理器的功能结构1.8086/8088CPU的功能结构的功能结构 基本结构寄存器基本结构寄存器通用数据寄存器通用数据寄存器SIESI
2、ESI、SI:数据段源变址指针寄存器数据段源变址指针寄存器BPEBPEBP、BP:堆栈段基址指针寄存器堆栈段基址指针寄存器SPESPESP、SP:堆栈段栈顶指针寄存器堆栈段栈顶指针寄存器DHDLDXEDXEDX、DX、DH、DL:间接间接I/O操作;双操作;双字乘字乘/除除CXCHCLECXECX、CX、CH、CL循环计数;重复串操循环计数;重复串操作;可变移位、循环移位操作。作;可变移位、循环移位操作。EBX、BX、BH、BL查表转换;基地址。查表转换;基地址。BXBHBLEBXEAX、AX、AH、AL:加减;加减;BCD、ASCII调整;字节到字,字到双字转换;乘调整;字节到字,字到双字转
3、换;乘/除,串除,串操作,操作,I/O操作等。操作等。AXAHALEAXEDI、DI:数据段目的变址指针寄存器数据段目的变址指针寄存器DIEDI1.8086/8088CPU的功能结构的功能结构EIP(IP)(Instruction pointer)跟踪下条)跟踪下条指令的偏移地址。指令的偏移地址。基本结构寄存器基本结构寄存器专用寄存器专用寄存器指令指针指令指针EIP(IP)IPEIP标志寄存器标志寄存器EFLAGS(Flags)CPU的控制标志和运算结果状态标志。的控制标志和运算结果状态标志。FLAGEFLAGD16IDVIFACVMRFD21D31VIPD18APCDITSZD0D11D14
4、NTIOPL OIOPL1.8086/8088CPU的功能结构的功能结构标志寄存器标志寄存器EFLAGS(Flags)D16IDVIFACVMRFD21D31VIPD18APCDITSZD0D11D14NTIOPL OIOPL8086:D0D119个标志个标志80486:D0D18的的15个标志个标志PENTIUM:D0D21的的18个标志。个标志。80386:D0D17 14个标志个标志80286:D0D14 12个标志个标志1.8086/8088CPU的功能结构的功能结构标志寄存器标志寄存器EFLAGS(Flags)8086的状态标志和控制标志:的状态标志和控制标志:TF DF IF OF
5、 SF ZF AF PF CF控制标志控制标志状态标志状态标志跟跟踪踪状态标志:状态标志:标示标示CPUCPU运运行结果的状态。结果为行结果的状态。结果为零、为负、产生进位或零、为负、产生进位或借位等。借位等。控制标志:控制标志:控制控制CPUCPU的的运行状态。运行状态。基本结构寄存器基本结构寄存器半半进进位位奇奇偶偶进进位位零零符符号号溢溢出出中中断断方方向向1.8086/8088CPU的功能结构的功能结构标志寄存器标志寄存器-分类分类状状态态标标志志用用来来记记录录程程序序运运行行结结果果的的状状态态信息,许多指令的执行都将相应地设置它信息,许多指令的执行都将相应地设置它CF ZF SF
6、 PF OF AF控控制制标标志志可可由由程程序序根根据据需需要要用用指指令令设设置置,用于控制处理器执行指令的方式用于控制处理器执行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0标志寄存器标志寄存器FLAGSFLAGS进位标志进位标志CF(Carry Flag)当当运运算算结结果果的的最最高高有有效效位位有有进进位位(加加法法)或或借借位(减法)时,进位标志置位(减法)时,进位标志置1,即,即CF1;否则否则CF03AH+7CHB6H,没有进位:,没有进位:CF=0AAH+7CH(1)26H,有进位:,有进位:CF=1零标志零标志ZF(Z
7、ero Flag)若运算结果为若运算结果为0,则,则ZF1;否则否则ZF03AH7CHB6H,结果不是零:,结果不是零:ZF084H7CH(1)00H,结果是零:,结果是零:ZF1 注意:注意:ZF为为1表示的结果是表示的结果是0符号标志符号标志SF(Sign Flag)运算结果最高位为运算结果最高位为1,则,则SF1;否则否则SF03AH7CHB6H,最高位,最高位D71:SF184H7CH(1)00H,最高位,最高位D70:SF0 有符号数据用最高有效位表示数据的符号有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态所以,最高有效位就是符号标志的状态奇偶标志奇偶标志PF
8、(Parity Flag)当当运运算算结结果果最最低低字字节节中中“1”的的个个数数为为零或偶数时,零或偶数时,PF1;否则;否则PF03AH7CHB6H10110110B结果中有结果中有5个个“1”,是奇数:是奇数:PF0 PF标标志志仅仅反反映映最最低低8位位中中“1”的的个个数数是是偶或奇,即使是进行偶或奇,即使是进行16位字操作位字操作溢出标志溢出标志OF(Overflow Flag)若算术运算的结果有溢出,则若算术运算的结果有溢出,则OF1;否则否则 OF03AH+7CHB6H,产生溢出:,产生溢出:OF1AAH+7CH(1)26H,没有溢出:,没有溢出:OF0什么是溢出什么是溢出处
9、理器内部以补码表示有符号数处理器内部以补码表示有符号数8位表达的整数范围是:位表达的整数范围是:127 12816位表达的范围是:位表达的范围是:32767 32768如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确有溢出,说明有符号数的运算结果不正确3AH7CHB6H,就是,就是58124182,已经超出已经超出128127范围,产生溢出,故范围,产生溢出,故OF1;补码补码B6H表达真值是表达真值是74,显然运算结果也不正确,显然运算结果也不正确 B6H10110110B,最高位为,最高位为1,作为有符号数是负数作为有符号数是
10、负数 对对B6H求反加求反加1等于:等于:01001001B101001010B4AH74 所以,所以,B6H表达有符号数的真值为表达有符号数的真值为74溢出和进位的区别溢出和进位的区别溢溢出出标标志志OF和和进进位位标标志志CF是是两两个个意意义义不同的标志不同的标志进进位位标标志志表表示示无无符符号号数数运运算算结结果果是是否否超超出范围,运算结果仍然正确出范围,运算结果仍然正确溢溢出出标标志志表表示示有有符符号号数数运运算算结结果果是是否否超超出范围,运算结果已经不正确出范围,运算结果已经不正确溢出和进位的对比溢出和进位的对比例例1:3AH7CHB6H无符号数运算:无符号数运算:5812
11、4182范围内,无进位范围内,无进位有符号数运算:有符号数运算:58124182范围外,有溢出范围外,有溢出例例2:AAH7CH(1)26H无符号数运算:无符号数运算:170124294范围外,有进位范围外,有进位有符号数运算:有符号数运算:8612428范围内,无溢出范围内,无溢出溢出和进位的应用场合溢出和进位的应用场合处处理理器器对对两两个个操操作作数数进进行行运运算算时时,按按照照无无符符号号数数求求得得结结果果,并并相相应应设设置置进进位位标标志志CF;同同时时,根根据据是是否否超超出出有有符符号号数数的的范范围围设设置溢出标志置溢出标志OF应应该该利利用用哪哪个个标标志志,则则由由程
12、程序序员员来来决决定定。也也就就是是说说,如如果果将将参参加加运运算算的的操操作作数数认认为为是是无无符符号号数数,就就应应该该关关心心进进位位;认认为为是是有有符号数,则要注意是否溢出符号数,则要注意是否溢出溢出的判断溢出的判断判断运算结果是否溢出有一个简单的规则:判断运算结果是否溢出有一个简单的规则:只只有有当当两两个个相相同同符符号号数数相相加加(包包括括不不同同符符号号数数相相减减),而而运运算算结结果果的的符符号号与与原原数数据据符符号号相相反反时时,产生溢出;因为,此时的运算结果显然不正确产生溢出;因为,此时的运算结果显然不正确其他情况下,则不会产生溢出其他情况下,则不会产生溢出例
13、例1:3AH7CHB6H溢出溢出例例2:AAH7CH无溢出无溢出例例3:3AH7CH无溢出无溢出例例4:AAH7CH2DH溢出溢出辅助进位标志辅助进位标志AF(Auxiliary Carry Flag)3AH7CHB6H,D3有进位:有进位:AF1运运算算时时D D3 3位位(低低半半字字节节)有有进进位位或或借位时,借位时,AFAF1 1;否则;否则AFAF0 0这个标志主要由处理器内部使用,这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用于十进制算术运算调整指令中,用户一般不必关心用户一般不必关心方向标志方向标志DF(Direction Flag)用于串操作指令中,控制地址的
14、变化方向:用于串操作指令中,控制地址的变化方向:设置设置DF0,存储器地址自动增加;,存储器地址自动增加;设置设置DF1,存储器地址自动减少,存储器地址自动减少CLDCLD指令复位方向标志:指令复位方向标志:DFDF0 0STDSTD指令置位方向标志:指令置位方向标志:DFDF1 1中断允许标志中断允许标志IF(Interrupt-enable Flag)控制可屏蔽中断是否可以被处理器响应:控制可屏蔽中断是否可以被处理器响应:设置设置IF1,则允许中断;,则允许中断;设置设置IF0,则禁止中断,则禁止中断CLICLI指令复位中断标志:指令复位中断标志:IFIF0 0STISTI指令置位中断标志
15、:指令置位中断标志:IFIF1 1陷阱标志陷阱标志TF(Trap Flag)用于控制处理器进入单步操作方式:用于控制处理器进入单步操作方式:设置设置TF0,处理器正常工作;,处理器正常工作;设置设置TF1,处理器,处理器单步执行指令单步执行指令单单步步执执行行指指令令处处理理器器在在每每条条指指令令执执行行结结束束时,便产生一个编号为时,便产生一个编号为1 1的内部中断的内部中断这种内部中断称为这种内部中断称为单步中断单步中断所以所以TFTF也称为也称为单步标志单步标志n利用单步中断可对程序进行逐条指令的调试利用单步中断可对程序进行逐条指令的调试n这种逐条指令调试程序的方法就是这种逐条指令调试
16、程序的方法就是单步调试单步调试段寄存器段寄存器对所有对所有X86级级CPU均为均为16位寄存器。位寄存器。8086CPU:段寄存器直接给出段基址。段寄存器直接给出段基址。代码段:代码段:CS代码段存贮区的起始地址代码段存贮区的起始地址 堆栈段:堆栈段:SS堆栈段存贮区的起始地址堆栈段存贮区的起始地址 数据段:数据段:DS、ES、FS、GS(8086只有二个数据段寄存器只有二个数据段寄存器DS、ES)数据段存贮区的起始地址数据段存贮区的起始地址基本结构寄存器基本结构寄存器CSESSSDSGSFS16位位8028680286以上以上CPU:由段寄存器(选择器)经全局描述符或局部描述由段寄存器(选择
17、器)经全局描述符或局部描述符寄存器得到相应的描述符表,从而得到段基址,与偏移地址相符寄存器得到相应的描述符表,从而得到段基址,与偏移地址相加得到线性物理地址。加得到线性物理地址。1.8086/8088CPU的功能结构的功能结构n存贮器的物理地址存贮器的物理地址以以字字节节为为最最小小基基本本存存储储单单元元的的顺顺序序编编址址。(2 22020=1024K=1MB=1024K=1MB空空 间间)从从 00000H00000H到到0FFFFFH0FFFFFH个单元的个单元的2020位绝对地址。位绝对地址。2AH?HBFH00000H00003H00002H00001HFFFFDHFFFFFHFF
18、FFEHn存贮器数据存储存贮器数据存储 8 8位,对应每一地址存储一个数据位,对应每一地址存储一个数据2.2.2 8086/8088存储器组织及其寻址存储器组织及其寻址1616位位 ,连续,连续2 2个字节数据构成一个字个字节数据构成一个字高高8 8位位字节对应字节对应高位地址高位地址,低低8 8位位字节对应字节对应低位地址低位地址字的地址:字的地址:为低为低8 8位字节的地址位字节的地址规则字:规则字:偶地址字;偶地址字;非规则字:非规则字:奇地址字奇地址字3232位,类同字的存储位,类同字的存储n存贮器的逻辑地址存贮器的逻辑地址 将将1MB1MB空间,小于等于空间,小于等于2 21616=
19、64K=64K连续的存储器为一段,分为多连续的存储器为一段,分为多个段。每个段可以独立寻址。个段。每个段可以独立寻址。段地址:段的起始地址,(段的编号)是该段的最低地址。段地址:段的起始地址,(段的编号)是该段的最低地址。偏移地址:段内地址的顺序编号。偏移地址:段内地址的顺序编号。段地址:段内偏移地址段地址:段内偏移地址的表示方法称逻辑地址。的表示方法称逻辑地址。如,如,2000H:100H2000H:100H2.2.2 8086/8088存储器组织及其寻址存储器组织及其寻址n分段之间必须:分段之间必须:1保持保持16个字节或其整数倍为段地址间距。个字节或其整数倍为段地址间距。216位位段段寄
20、寄存存器器表表示示段段基基址址。段段寄寄存存器器加加1实际上存储器地址加实际上存储器地址加16。3段可连续、分散、重迭。段可连续、分散、重迭。00000H00001HFFFFFHFFFFEH代码段代码段数据段数据段堆栈段堆栈段附加段附加段CSESSSDSn8086同时可有同时可有4个段被激活个段被激活(称当前段)(称当前段)。它。它们是们是CS代码段、代码段、DS数据段、数据段、SS堆栈段、堆栈段、ES附附加数据段。加数据段。n物理地址物理地址与与逻辑逻辑地址的关系:地址的关系:物理地址物理地址PA=段地址段地址16+偏移地址偏移地址(EA)2.2.2 8086/8088存储器组织及其寻址存储
21、器组织及其寻址也可表为也可表为0102H:0003HPA=0102H10H+0003H=1023H两段间距为两段间距为20H单元,两种逻辑地址表示单元,两种逻辑地址表示同一个物理地址单元同一个物理地址单元01023H。00000H00001HFFFFFHFFFFEHXX01023H01000H01001H01002H01022H01021H01020H偏移偏移03H0102H:0000H0102H:0001H偏移偏移23H0100H:0000H0100H:0001HPA=0100H10H+0023H=1023H例:对于物理地址例:对于物理地址1023H单元单元可以表为可以表为0100H:002
22、3H2.2.2 8086/8088存储器组织及其寻址存储器组织及其寻址端口:接口中的寄存器端口:接口中的寄存器端口号:端口中端口号:端口中寄存器寄存器的地址编号的地址编号用低用低16位地址为其编号,共有位地址为其编号,共有64K个端口号个端口号CPU与外部设备之间的通过接口进行连接与外部设备之间的通过接口进行连接2.2.3 8086/8088 的的I/O地址空间地址空间I/OI/O接口接口CPUABCBDB状态寄存器状态寄存器设备驱动电路设备驱动电路数据寄存器数据寄存器地址译码器地址译码器I/OI/O控制控制输输入入输输出出设设备备状态信号状态信号数据信号数据信号控制信号控制信号课后作业:课后
23、作业:P723、4、5、7指令译码指令译码执行指令执行指令ADD AL,100HCS:IP=F0300HIP指下条指令指下条指令ADD指令指令指令队列指令队列20100H偏移地址偏移地址100H操作数操作数34HDS=2000HAL=12HALU标志标志AL取取下下一一条条指指令令225 8086指令的执行指令的执行AH12HCSDSSSESIP1 24653标志寄存器标志寄存器总线总线控制控制逻辑逻辑指令队列指令队列EU控控制制ALUAX2AHBFH34HADD指令指令00000H20100H00001HFFFFFHFFFFEH20位地址位地址主存储器主存储器F0300H寄存器组寄存器组2000H