版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基本结构寄存器通用数据寄存器SIESIESI、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调整;字节到字,字到双字转换;乘/除,串操作,I/O操作等。AXAHALEAXEDI、DI:数据段目的变址指针寄存器DIEDI1. 8086/8088CPU的功能结
2、构第1页,共42页。8086的寄存器结构AHALBHBLCHCLDHDLSPBPSIDIIPPSWCSDSSSESAXBXCXDX累加器基址计数数据数据寄存器01507815015015附加数据段堆栈段数据段代码段段寄存器指令指针状态标志控制寄存器堆栈指针基址指针 源变址目的变址指针寄存器变址寄存器通用寄存器第2页,共42页。1、通用寄存器通用寄存器包括: 数据寄存器、地址指针寄存器、变址寄存器。 数据寄存器包括: AX 、BX 、CX 、DX 。 地址指针寄存器包括: SP 、 BP 。 变址寄存器包括: SI 、 DI 。2、段寄存器 段寄存器包括: CS 、 SS 、 DS 、 ES 。
3、3、控制寄存器 控制寄存器包括:IP 、PSW。第3页,共42页。1、通用寄存器(1)数据寄存器AX、BX、CX、DX 作为通用寄存器。 用来暂存计算过程中所用到的操作数,结果或其它信息。 访问形式:可以用16位的访问; 或者可以用字节(8位)形式访问,它们的高8位记作 : AH 、 BH 、 CH 、 DH 。它们的低8位记作 : AL 、BL 、CL 、DL 。第4页,共42页。AX(Accumulator)作为累加器。 它是算术运算的主要寄存器,所有I/O指令都使用这一寄存器与外部设备交换数据。例: IN AL , 20HOUT 30H , AXBXBase用作基址寄存器使用。 在计算内
4、存储器地址时,经常用来存放基址。例:MOV AX, BX+03H第5页,共42页。CXCount可以作计数寄存器使用。 在循环LOOP指令和串处理指令中用作隐含计数器。例:MOV CX , 200HAGAIN:LOOP AGAIN ;(CX)-1(CX),结果0转AGAINDXData可以作为数据寄存器使用。一般在双字长乘除法运算时, 把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位; 对某些I/O操作DX可用来存放I/O的端口地址(口地址 256)。例:MUL BX ; (AX)(BX)(DX)(AX)例:IN AL , DX第6页,共42页。(2)地址指针与变址寄存器
5、: 段起始地址 SP、BP、SI、DI 四个16位寄存器。以字为单位在运算过程中存放操作数,经常用以在段内寻址时提供偏移地址。 段内偏移地址段地址 :只取段起始地址高16位值。偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。 高16位值 0000B第7页,共42页。地址指针寄存器(SP 、 BP ) SP(stack pointer)堆栈指针寄存器 用来指示栈顶的偏移地址, 必须与SS段寄存器联合使用确定实际地址。 堆栈和指针如下页图所示。 BP(base pointer)基址指针寄存器 可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。第8页,共42页。 变址寄存器(SI
6、 、 DI)SISource Index Register 源变址寄存器。DIDestination Index 目的变址寄存器。使用场合:常用于变址寻址。 一般与DS联用,用来确定数据段中某一存储单元的地址, SI , DI具有自动增量和自动减量功能.例:MOV AX, SI第9页,共42页。在串处理指令中,SI、DI作为隐含的源变址和目的变址寄 存器分别达到在数据段和附加段中寻址的目的。 执行示意图如右图。例:MOV SI , 2000HMOV DI , 3000HMOV CX, 100HCLD.MOVSB. 串处理指令执行示意图第10页,共42页。2、段寄存器段寄存器: 4个16位段寄存
7、器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。CSCode Segment Register 代码段寄存器 用来识别当前代码段(程序一般放在代码段)。DSData Segment Register数据段寄存器 用来识别当前数据段寄存器。SSStack Segment Register堆栈段寄存器, 用来识别当前堆栈段。ESExtra Segment Register附加段寄存器, 用来识别当前附加段。第11页,共42页。3、控制寄存器控制寄存器:IP 、 PSWIPInstruction Pointer指令指针寄存器 用来存储代码段中的偏移地址; 程序运行过程中IP始终
8、指向下一次要取出的指令偏移地址。IP要与CS寄存器相配合才能形成真正的物理地址。FLAGS程序状态字寄存器, 16位寄存器。 由条件码标志FLAG、控制标志构成。只用了其中9位, 6位条件标志, 3位控制标志。第12页,共42页。标志寄存器-分类状态标志用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它CF ZF SF PF OF AF控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0标志寄存器FLAGS第13页,共42页。进位标志CF(Carry Flag)当运算结果的最高有效
9、位有进位(加法)或借位(减法)时,进位标志置1,即CF1; 否则CF03AH + 7CHB6H,没有进位:CF = 0AAH + 7CH(1)26H,有进位:CF = 1第14页,共42页。零标志ZF(Zero Flag)若运算结果为0,则ZF1;否则ZF03AH7CHB6H,结果不是零:ZF084H7CH(1)00H,结果是零:ZF1 注意:ZF为1表示的结果是0第15页,共42页。符号标志SF(Sign Flag)运算结果最高位为1,则SF1; 否则SF03AH7CHB6H,最高位D71:SF184H7CH(1)00H,最高位D70:SF0 有符号数据用最高有效位表示数据的符号所以,最高有
10、效位就是符号标志的状态第16页,共42页。奇偶标志PF(Parity Flag)当运算结果最低字节中“1”的个数为零或偶数时,PF1;否则PF03AH7CHB6H10110110B结果中有5个“1”,是奇数:PF0 PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作第17页,共42页。溢出标志OF(Overflow Flag)若算术运算的结果有溢出,则OF1; 否则 OF03AH + 7CHB6H,产生溢出:OF1AAH + 7CH(1)26H,没有溢出:OF0?第18页,共42页。什么是溢出处理器内部以补码表示有符号数8位表达的整数范围是:127 12816位表达的范围是:
11、32767 32768如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确3AH7CHB6H,就是58124182,已经超出128127范围,产生溢出,故OF1;补码B6H表达真值是74,显然运算结果也不正确 B6H10110110B,最高位为1,作为有符号数是负数 对B6H求反加1等于:01001001B101001010B4AH74 所以,B6H表达有符号数的真值为74第19页,共42页。溢出和进位的区别溢出标志OF和进位标志CF是两个意义不同的标志进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确?
12、第20页,共42页。溢出和进位的对比例1:3AH7CHB6H无符号数运算:58124182范围内,无进位有符号数运算: 58124182范围外,有溢出例2:AAH7CH(1)26H无符号数运算:170124294范围外,有进位有符号数运算:8612428范围内,无溢出第21页,共42页。溢出和进位的应用场合处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出第22页,共42页。溢出的判断判断运
13、算结果是否溢出有一个简单的规则:只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确其他情况下,则不会产生溢出例1:3AH7CHB6H溢出例2:AAH7CH无溢出例3:3AH7CH无溢出例4:AAH7CH2DH溢出第23页,共42页。辅助进位标志AF(Auxiliary Carry Flag)3AH7CHB6H,D3有进位:AF1运算时D3位(低半字节)有进位或借位时,AF1;否则AF0这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心第24页,共42页。方向标志DF(Direction Flag
14、)用于串操作指令中,控制地址的变化方向:设置DF0,存储器地址自动增加;设置DF1,存储器地址自动减少CLD指令复位方向标志:DF0STD指令置位方向标志:DF1第25页,共42页。中断允许标志IF(Interrupt-enable Flag)控制可屏蔽中断是否可以被处理器响应:设置IF1,则允许中断;设置IF0,则禁止中断CLI指令复位中断标志:IF0STI指令置位中断标志:IF1第26页,共42页。陷阱标志TF(Trap Flag)用于控制处理器进入单步操作方式:设置TF0,处理器正常工作;设置TF1,处理器单步执行指令单步执行指令处理器在每条指令执行结束时,便产生一个编号为1的内部中断这
15、种内部中断称为单步中断所以TF也称为单步标志利用单步中断可对程序进行逐条指令的调试这种逐条指令调试程序的方法就是单步调试第27页,共42页。存贮器的物理地址以字节为最小基本存储单元的顺序编址。 (220=1024K=1MB空间)从00000H到0FFFFFH个单元的20位绝对地址。2AH?HBFH00000H00003H00002H00001HFFFFDHFFFFFHFFFFEH存贮器数据存储 1.字节数据8位,对应每一地址存储一个数据2 8086/8088存储器组织及其寻址 2.字数据16位 ,连续2个字节数据构成一个字高8位字节对应高位地址, 低8位字节对应低位地址字的地址:为低8位字节的
16、地址规则字:偶地址字;非规则字:奇地址字 3.双字数据32位,类同字的存储第28页,共42页。存储器地址分段:8086有20条地址总线,直接寻址能力为220=1M字节。用16进制数表示1M字节的地址范围应为00000HFFFFFH。(1)、 8086内部20位物理地址形成(2)、逻辑地址与物理地址第29页,共42页。 (1)、8086内部20位物理地址形成 存储器地址分段 8086地址总线是20位的,CPU中的寄存器是16位的,20位地址无法用16位寄存器表示,必须分段。程序员在编制程序时把存储器划分成段。段内地址16位,每个段的大小最大可达64KB;实际可以根据需要来确定段大小,可以是1,1
17、00,1000,在64K范围内的任意字节数。第30页,共42页。 小段的概念从0地址开始每16字节为一小段,对于16位地址总线,段内存储器小段地址如下:如: 0000H,0001H,0002H,000EH,000FH一个小段 0010H,0011H,0012H,001EH,001FH 0020H,0021H,0022H,002EH,002FH FFF0H, FFF1H, FFF2H, , FFFEH, FFFFH 其中:第一列就是每个小段的首地址。第31页,共42页。每个小段首地址特征:在16进制表示的地址中,最低位为0H (即20位地址的低4位为0000B)。在1M字节的地址空间,共有64K
18、个小段其首地址为:0000 0H0001 0H4123 0H4124 0HFFFE 0HFFFF 0H第32页,共42页。 20位物理地址形成 物理地址: 在1M字节存储器里,每个存储单元都有一个唯一的20位地址作为该存储单元的物理地址。CPU访问存储器时,必须先确定所要访问的存储单元的物理地址才能取出(或存入)该单元中的内容。 20位物理地址形成:由16位段地址和16位偏移地址组成。段地址:只取段起始地址高16位值。偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。第33页,共42页。物理地址计算方法:即把段地址左移4位再加上偏移地址值形成物理地址,写成: 物理地址= 16d段地址
19、+偏移地址。 * 每个存储单元只有唯一的物理地址。 但可由不同的段地址和不同的偏移地址组成。第34页,共42页。(2)、逻辑地址与物理地址 逻辑地址与物理地址概念逻辑地址与物理地址概念如下页图所示。逻辑地址:由段基址和段内偏移地址组成的地址, 段基址和段内偏移地址都是16位的无符号二进制数, 在程序设计时使用。物理地址:存储器的绝对地址(20位的实际地址), 范围从00000HFFFFFH , 是由CPU访问存储器时由地址总线发出的地址。存储器管理:将程序中逻辑地址转移为物理地址的机构。第35页,共42页。 物理地址的形成.20000H25F60H25F61H25F62H25F63H2000H段基址段内偏移地址5F62H逻辑地址与物理地址段基址0 0 0 03 2 1 015 0偏移地址基址加法器物理地址015019逻辑地址:2000:5F62H第36页,共42页。逻辑地址来源(ES) 16d+(DI)DI无ES目标字符串(DS) 16d+(SI)SICS,ES,SSDS源字符串(DS )16d+EA有效地址EACS,ES,SSDS存取变量(SS) 16d+EA有效地址EACS,DS,ESSSBP间址(SS) 16d+(SP)SP无SS堆栈操作(CS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业X射线探伤机合作协议书
- 叉车出租合同模板
- 厂房房屋租赁合同范本
- 写字楼房屋租赁协议书范本
- 网站备案安全协议
- 闻网站广告发布合同书
- 文字作品独家代理合同
- 物流业个性化商品展示与销售策略优化方案
- 能源矿产资源勘查开采合作协议
- 智能物流园区运营管理模式优化方案
- 《湖北省市政基础设施工程质量标准化图册》(燃气管网工程)
- 无机化学实验试题
- 衡重式及重力式挡土墙自动计算表
- 有关大学生寒假生活计划-大学生的寒假计划
- 2024年01月11129土木工程力学(本)期末试题答案
- 家政公司员工合同范例
- 2025年度安全培训计划
- 2024年考研(英语一)真题及参考答案
- 山东省济南市(2024年-2025年小学四年级语文)人教版期末考试((上下)学期)试卷及答案
- 03SG715-1蒸压轻质加气混凝土板(NACL)构造详图
- 尽职调查工作底稿1_公司业务调查
评论
0/150
提交评论