寄存器结构存储器管理课件_第1页
寄存器结构存储器管理课件_第2页
寄存器结构存储器管理课件_第3页
寄存器结构存储器管理课件_第4页
寄存器结构存储器管理课件_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、两个独立的功能部件:执行部件EU、总线接口部件BIU。AHALBHBLCHCLDHDLSPBPSIDICSDSSSESIP124653标志寄存器总线控制逻辑指令队列EU控制ALU地址加法器BIU单元EU单元AXBXCXDX内存接口22 80X86系列微处理器的功能结构 2.2.1 8086/8088及80286微处理器的功能结构1. 8086/8088CPU的功能结构 基本结构寄存器通用数据寄存器SIESIESI、SI:数据段源变址指针寄存器BPEBPEBP、BP:堆栈段基址指针寄存器SPESPESP、SP:堆栈段栈顶指针寄存器DHDLDXEDXEDX、DX、DH、DL:间接I/O操作;双字乘

2、/除CXCHCLECXECX、CX、CH、CL循环计数;重复串操作;可变移位、循环移位操作。EBX、BX、BH、BL查表转换;基地址。BXBHBLEBXEAX、AX、AH、AL:加减;BCD、ASCII调整;字节到字,字到双字转换;乘/除,串操作,I/O操作等。AXAHALEAXEDI、DI:数据段目的变址指针寄存器DIEDI1. 8086/8088CPU的功能结构EIP(IP)(Instruction pointer)跟踪下条指令的偏移地址。基本结构寄存器专用寄存器指令指针EIP(IP)IPEIP标志寄存器EFLAGS (Flags)CPU的控制标志和运算结果状态标志。FLAGEFLAGD1

3、6IDVIFACVMRFD21D31VIPD18APCDITSZD0D11D14NTIOPLOIOPL1. 8086/8088CPU的功能结构标志寄存器EFLAGS (Flags)D16IDVIFACVMRFD21D31VIPD18APCDITSZD0D11D14NTIOPLOIOPL8086 : D0D119个标志80486 :D0D18的15个标志PENTIUM :D0D21的18个标志。80386 : D0D17 14个标志80286 : D0D14 12个标志1. 8086/8088CPU的功能结构标志寄存器EFLAGS (Flags)8086的状态标志和控制标志:TFDFIFOFSF

4、ZFAFPFCF控制标志状态标志跟踪状态标志:标示CPU运行结果的状态。结果为零、为负、产生进位或借位等。控制标志:控制CPU的运行状态。基本结构寄存器半进位奇偶进位零符号溢出中断方向1. 8086/8088CPU的功能结构标志寄存器-分类状态标志用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它CF ZF SF PF OF AF控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0标志寄存器FLAGS进位标志CF(Carry Flag)当运算结果的最高有效位有进位(加法)或借位(减

5、法)时,进位标志置1,即CF1; 否则CF03AH + 7CHB6H,没有进位:CF = 0AAH + 7CH(1)26H,有进位:CF = 1零标志ZF(Zero Flag)若运算结果为0,则ZF1;否则ZF03AH7CHB6H,结果不是零:ZF084H7CH(1)00H,结果是零:ZF1 注意:ZF为1表示的结果是0符号标志SF(Sign Flag)运算结果最高位为1,则SF1; 否则SF03AH7CHB6H,最高位D71:SF184H7CH(1)00H,最高位D70:SF0 有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态奇偶标志PF(Parity Flag)当运算

6、结果最低字节中“1”的个数为零或偶数时,PF1;否则PF03AH7CHB6H10110110B结果中有5个“1”,是奇数:PF0 PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作溢出标志OF(Overflow Flag)若算术运算的结果有溢出,则OF1; 否则 OF03AH + 7CHB6H,产生溢出:OF1AAH + 7CH(1)26H,没有溢出:OF0?什么是溢出处理器内部以补码表示有符号数8位表达的整数范围是:127 12816位表达的范围是:32767 32768如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确3AH7CHB6H,就是581

7、24182,已经超出128127范围,产生溢出,故OF1;补码B6H表达真值是74,显然运算结果也不正确 B6H10110110B,最高位为1,作为有符号数是负数 对B6H求反加1等于:01001001B101001010B4AH74 所以,B6H表达有符号数的真值为74溢出和进位的区别溢出标志OF和进位标志CF是两个意义不同的标志进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确?溢出和进位的对比例1:3AH7CHB6H无符号数运算:58124182范围内,无进位有符号数运算: 58124182范围外,有溢出例2:AAH7C

8、H(1)26H无符号数运算:170124294范围外,有进位有符号数运算:8612428范围内,无溢出溢出和进位的应用场合处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出溢出的判断判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确其他情况下,则不会产生溢出例1:3AH7CHB6H

9、溢出例2:AAH7CH无溢出例3:3AH7CH无溢出例4:AAH7CH2DH溢出辅助进位标志AF(Auxiliary Carry Flag)3AH7CHB6H,D3有进位:AF1运算时D3位(低半字节)有进位或借位时,AF1;否则AF0这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心方向标志DF(Direction Flag)用于串操作指令中,控制地址的变化方向:设置DF0,存储器地址自动增加;设置DF1,存储器地址自动减少CLD指令复位方向标志:DF0STD指令置位方向标志:DF1中断允许标志IF(Interrupt-enable Flag)控制可屏蔽中断是否可以

10、被处理器响应:设置IF1,则允许中断;设置IF0,则禁止中断CLI指令复位中断标志:IF0STI指令置位中断标志:IF1陷阱标志TF(Trap Flag)用于控制处理器进入单步操作方式:设置TF0,处理器正常工作;设置TF1,处理器单步执行指令单步执行指令处理器在每条指令执行结束时,便产生一个编号为1的内部中断这种内部中断称为单步中断所以TF也称为单步标志利用单步中断可对程序进行逐条指令的调试这种逐条指令调试程序的方法就是单步调试段寄存器对所有X86级CPU均为16位寄存器。8086CPU: 段寄存器直接给出段基址。 代码段:CS代码段存贮区的起始地址 堆栈段:SS堆栈段存贮区的起始地址 数据

11、段:DS、ES、FS、GS(8086只有二个数据段寄存器DS、ES)数据段存贮区的起始地址基本结构寄存器CSESSSDSGSFS16位80286以上CPU: 由段寄存器(选择器)经全局描述符或局部描述符寄存器得到相应的描述符表,从而得到段基址,与偏移地址相加得到线性物理地址。1. 8086/8088CPU的功能结构D7D0字节D15D0字D31D0双字D7 D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址LSBMSB2.2.2 8086/8088存储器组织及其寻址8086/8088的存诸格式存贮器的物理地址以字节为最小基本存

12、储单元的顺序编址。 (220=1024K=1MB空间)从00000H到0FFFFFH个单元的20位绝对地址。2AH?HBFH00000H00003H00002H00001HFFFFDHFFFFFHFFFFEH存贮器数据存储 1.字节数据8位,对应每一地址存储一个数据2.2.2 8086/8088存储器组织及其寻址 2.字数据16位 ,连续2个字节数据构成一个字高8位字节对应高位地址, 低8位字节对应低位地址字的地址:为低8位字节的地址规则字:偶地址字;非规则字:奇地址字 3.双字数据32位,类同字的存储存贮器的逻辑地址 将1MB空间,小于等于216=64K连续的存储器为一段,分为多个段。每个段

13、可以独立寻址。段地址:段的起始地址,(段的编号)是该段的最低地址。偏移地址:段内地址的顺序编号。段地址:段内偏移地址的表示方法称逻辑地址。如,2000H:100H2.2.2 8086/8088存储器组织及其寻址分段之间必须:1保持16个字节或其整数倍为段地址间距。216位段寄存器表示段基址。段寄存器加1实际上存储器地址加16。3段可连续、分散、重迭。00000H00001HFFFFFHFFFFEH代码段数据段堆栈段附加段CSESSSDS8086同时可有4个段被激活(称当前段)。它们是CS代码段、DS数据段、SS堆栈段、ES附加数据段。物理地址与逻辑地址的关系:物理地址PA=段地址16+偏移地址

14、(EA)2.2.2 8086/8088存储器组织及其寻址也可表为0102H:0003HPA=0102H10H+0003H =1023H两段间距为20H单元,两种逻辑地址表示同一个物理地址单元01023H。00000H00001HFFFFFHFFFFEHXX01023H01000H01001H01002H01022H01021H01020H偏移03H0102H:0000H0102H:0001H偏移23H0100H:0000H0100H:0001HPA=0100H10H+0023H =1023H例:对于物理地址1023H单元可以表为0100H:0023H2.2.2 8086/8088存储器组织及其寻址端口:接口中的寄存器端口号:端口中寄存器的地址编号用低16位地址为其编号,共有64K个端口号CPU与外部设备之间的通过接口进行连接2.2.3 8086/8088 的I/O地址空间I/O接口CPUABCBDB状态寄存器设备驱动电路数据寄存器地址译码器I/O控制输入输出设备状态信号数据信号控制信号课后作业:P

温馨提示

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

最新文档

评论

0/150

提交评论