寄存器结构存储器管理

上传人:ji****72 文档编号:51276151 上传时间:2018-08-13 格式:PPT 页数:29 大小:779KB
返回 下载 相关 举报
寄存器结构存储器管理_第1页
第1页 / 共29页
寄存器结构存储器管理_第2页
第2页 / 共29页
寄存器结构存储器管理_第3页
第3页 / 共29页
寄存器结构存储器管理_第4页
第4页 / 共29页
寄存器结构存储器管理_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《寄存器结构存储器管理》由会员分享,可在线阅读,更多相关《寄存器结构存储器管理(29页珍藏版)》请在金锄头文库上搜索。

1、两个独立的功能部件:执行部件EU、总线接口部件BIU。AH AL BH BL CH CL DH DL SP BP SI DICS DS SS ES IP1 24653标志寄存器总线 控制 逻辑指令队列EU 控 制ALU地址加法器BIU单元EU单元AX BX CX DX内存接口22 80X86系列微处理器的功能结构 2.2.1 8086/8088及80286微处理器的功能结构1. 8086/8088CPU的功能结构 基本结构寄存器通用数据寄存器SIESIESI、SI:数据段源变址指针寄存器BPEBPEBP、BP:堆栈段基址指针寄存器SPESPESP、SP:堆栈段栈顶指针寄存器DHDLDXEDXE

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

3、ags) CPU的控制标志和运算结果状态标志。FLAGEFLAGD16IDVIFACVMRFD21D31VIPD18APCDITSZD0D11D14NTIOPL OIOPL1. 8086/8088CPU的功能结构标志寄存器EFLAGS (Flags)D16IDVIFACVMRFD21D31VIPD18APCDITSZD0D11D14NTIOPL OIOPL8086 : D0D119个标志80486 :D0D18的15个标志 PENTIUM :D0D21的18个标志。80386 : D0D17 14个标志80286 : D0D14 12个标志1. 8086/8088CPU的功能结构标志寄存器EF

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

5、AF43 PF21 CF0标志寄存器标志寄存器FLAGSFLAGS进位标志CF(Carry Flag) 当运算结果的最高有效位有进位(加法)或借 位(减法)时,进位标志置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:SF184H7C

6、H(1)00H,最高位D70:SF0有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态奇偶标志PF(Parity Flag) 当运算结果最低字节中“1”的个数为零 或偶数时,PF1;否则PF03AH7CHB6H10110110B结果中有5个“1”,是奇数:PF0PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作溢出标志OF(Overflow Flag) 若算术运算的结果有溢出,则OF1;否则 OF03AH + 7CHB6H,产生溢出:OF1 AAH + 7CH(1)26H,没有溢出:OF0什么是溢出 处理器内部以补码表示有符号数 8位表达的整数范围是:

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

8、结果是否超 出范围,运算结果已经不正确溢出和进位的对比例1:3AH7CHB6H 无符号数运算: 58124182 范围内,无进位 有符号数运算: 58124182 范围外,有溢出例2:AAH7CH(1)26H 无符号数运算: 170124294 范围外,有进位 有符号数运算: 8612428 范围内,无溢出溢出和进位的应用场合 处理器对两个操作数进行运算时,按照无 符号数求得结果,并相应设置进位标志CF ;同时,根据是否超出有符号数的范围设 置溢出标志OF 应该利用哪个标志,则由程序员来决定。 也就是说,如果将参加运算的操作数认为 是无符号数,就应该关心进位;认为是有 符号数,则要注意是否溢出

9、溢出的判断 判断运算结果是否溢出有一个简单的规则: 只有当两个相同符号数相加(包括不同符号数相 减),而运算结果的符号与原数据符号相反时, 产生溢出;因为,此时的运算结果显然不正确 其他情况下,则不会产生溢出例1:3AH7CHB6H溢出 例2:AAH7CH无溢出 例3:3AH7CH无溢出 例4:AAH7CH2DH溢出辅助进位标志AF(Auxiliary Carry Flag)3AH7CHB6H,D3有进位:AF1运算时D3位(低半字节)有进位或 借位时,AF1;否则AF0这个标志主要由处理器内部使用, 用于十进制算术运算调整指令中, 用户一般不必关心方向标志DF(Direction Flag)

10、 用于串操作指令中,控制地址的变化方向: 设置DF0,存储器地址自动增加; 设置DF1,存储器地址自动减少CLD指令复位方向标志:DF0STD指令置位方向标志:DF1中断允许标志IF(Interrupt-enable Flag) 控制可屏蔽中断是否可以被处理器响应: 设置IF1,则允许中断; 设置IF0,则禁止中断CLI指令复位中断标志:IF0STI指令置位中断标志:IF1陷阱标志TF(Trap Flag) 用于控制处理器进入单步操作方式: 设置TF0,处理器正常工作; 设置TF1,处理器单步执行指令单步执行指令处理器在每条指令执行结 束时,便产生一个编号为1的内部中断 这种内部中断称为单步中

11、断 所以TF也称为单步标志n利用单步中断可对程序进行逐条指令的调试n这种逐条指令调试程序的方法就是单步调试段寄存器 对所有X86级CPU均为16位寄存器。 8086CPU: 段寄存器直接给出段基址。代码段:CS 代码段存贮区的起始地址堆栈段:SS 堆栈段存贮区的起始地址数据段:DS、ES、FS、GS (8086只有二个数据段寄存器DS、ES) 数据段存贮区的起始地址基本结构寄存器CSESSSDSGSFS16位80286以上CPU: 由段寄存器(选择器)经全局描述符或局部描述 符寄存器得到相应的描述符表,从而得到段基址,与偏移地址相 加得到线性物理地址。1. 8086/8088CPU的功能结构D

12、7D0字 节 D15D0字D31D0双字D7 D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址LSBMSB2.2.2 8086/8088存储器组织及其寻址n8086/8088的存诸格式n存贮器的物理地址 以字节为最小基本存储单元的顺序编址。 (220=1024K=1MB空间)从00000H到 0FFFFFH个单元的20位绝对地址。2AH?HBFH00000H00003H00002H00001H FFFFDHFFFFFHFFFFEHn存贮器数据存储1.字节数据 8位,对应每一地址存储一个数据2.2.2 8086/8088存储器

13、组织及其寻址2.字数据 16位 ,连续2个字节数据构成一个字 高8位字节对应高位地址, 低8位字节对应低位地址 字的地址:为低8位字节的地址 规则字:偶地址字;非规则字:奇地址字3.双字数据 32位,类同字的存储n存贮器的逻辑地址将1MB空间,小于等于216=64K连续的存储器为一段,分为多 个段。每个段可以独立寻址。段地址:段的起始地址,(段的编号)是该段的最低地址。偏移地址:段内地址的顺序编号。段地址:段内偏移地址的表示方法称逻辑地址。如,2000H:100H2.2.2 8086/8088存储器组织及其寻址n分段之间必须: 1保持16个字节或其整数倍为段地址间距 。 216位段寄存器表示段

14、基址。段寄存器加1 实际上存储器地址加16。3段可连续、分散、重迭。00000H 00001HFFFFFHFFFFEH代码段数据段堆栈段附加段CSESSSDSn8086同时可有4个段被激活(称当前段)。它 们是CS代码段、DS数据段、SS堆栈段、ES附 加数据段。n物理地址与逻辑逻辑 地址的关系:物理地址PA=段地址16+偏移地址(EA)2.2.2 8086/8088存储器组织及其寻址也可表为0102H:0003HPA=0102H10H+0003H =1023H两段间距为20H单元,两种逻辑地址表 示同一个物理地址单元01023H。00000H 00001H FFFFFHFFFFEHXX010

15、23H01000H01001H 01002H 01022H01021H01020H偏移03H0102H:0000H 0102H:0001H偏移23H0100H:0000H 0100H:0001H PA=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控制输 入 输 出 设 备状态信号数据信号控制信号课后作业:P723、4、5、7指令译码执行指令ADD AL, 100HCS:IP=F0300H IP指下条指令ADD指令指令队列20100H偏移地址 100H操作数 34HDS= 2000HAL= 12HALU标志AL取下一条指令225 8086指令的执行AH12HCS DS SS ES IP1 24653标志寄存器总线 控制 逻辑指令队列EU 控 制ALUAX2AH BFH34HADD 指令00000H20100H00001HFFFFFHFFFFEH20位地址主存储器F0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号