第二章微处理器的结构及存储器

上传人:仙*** 文档编号:35287337 上传时间:2021-10-26 格式:PPT 页数:72 大小:618.52KB
收藏 版权申诉 举报 下载
第二章微处理器的结构及存储器_第1页
第1页 / 共72页
第二章微处理器的结构及存储器_第2页
第2页 / 共72页
第二章微处理器的结构及存储器_第3页
第3页 / 共72页
资源描述:

《第二章微处理器的结构及存储器》由会员分享,可在线阅读,更多相关《第二章微处理器的结构及存储器(72页珍藏版)》请在装配图网上搜索。

1、第 2 章微处理器的结构及存储微处理器的结构及存储器组成器组成第第 2 2 章章第 2 章微处理器的结构及存储器组成微处理器的结构及存储器组成第2章 教学要求与重点了解微机系统的基本软硬件组成了解微机系统的基本软硬件组成掌握掌握8086的寄存器组和存储器组织的寄存器组和存储器组织重点重点1 :工作寄存器组:工作寄存器组重点重点2:存储器的特点和使用:存储器的特点和使用重点重点3:存储器物理地址的形成:存储器物理地址的形成重点重点4:存储器的分段:存储器的分段第 2 章简单解释一下几个名字术语简单解释一下几个名字术语字长:芯片内部一次传输数据的宽度。主频:芯片所用的主时钟频率。数据总线宽度: 芯

2、片内部数据传输的宽度。地址总线宽度:指专用于传送地址的总线宽度。地址总线宽度与寻址空间的关系:高速缓存(cache):微处理器的结构及存储器组成微处理器的结构及存储器组成2.1 8086微处理器微处理器 第 2 章微处理器飞速发展80386803868048680486奔腾奔腾奔腾奔腾2代代奔腾奔腾4代代802868028680868086奔腾奔腾3代代IA-64(安腾)(安腾)40044004不是我不明白,这世界变化太快。扎扎实实掌握知识,以不变应万变!第 2 章2.2 基于微处理器的计算机系统构成基于微处理器的计算机系统构成 硬件:硬件:中央处理机中央处理机 CPU总线控制 逻辑接 口接

3、口存储器存储器大容量存储器I/O设备I/O子系统子系统系统总线系统总线.软件:软件:系统软件 用户软件运算器控制器工作寄存器2.2.1 硬件第 2 章系统软件:系统软件:DOS平台平台nMS-DOS 6.22n Windows 9.x的的DOS实地址方式实地址方式nMS-DOS虚拟环境虚拟环境应用软件:开发汇编语言程序涉及应用软件:开发汇编语言程序涉及n文本编辑器文本编辑器n汇编程序汇编程序n连接程序连接程序n调试程序调试程序2.2.2 软件微处理器的结构及存储器组成微处理器的结构及存储器组成第 2 章文本编辑器(Editor)文本编辑器用于编辑无任何格式的文档文本编辑器用于编辑无任何格式的文

4、档程序设计时要采用文本编辑器编写源程序程序设计时要采用文本编辑器编写源程序常见的文本编辑软件有很多,如常见的文本编辑软件有很多,如nMS-DOS的的EDIT全屏幕编辑器全屏幕编辑器nWindows的的Notepad计事本计事本n程序开发系统中的程序编辑器,例如你熟悉的程序开发系统中的程序编辑器,例如你熟悉的Turbo C编辑器编辑器大家可以采用微机中任何一个文本编辑器编大家可以采用微机中任何一个文本编辑器编写汇编语言源程序写汇编语言源程序微处理器的结构及存储器组成微处理器的结构及存储器组成第 2 章汇编程序(Assembler)汇编程序将汇编语言源程序翻译(称汇编程序将汇编语言源程序翻译(称为

5、为“汇编汇编”)成机器代码目标模块)成机器代码目标模块80 x86CPU的汇编程序主要有微软的的汇编程序主要有微软的宏汇编程序宏汇编程序MASM。较著名的还有。较著名的还有Borland公司的公司的TASM,无实质差别,无实质差别本课程采用微软的本课程采用微软的MASM微处理器的结构及存储器组成微处理器的结构及存储器组成第 2 章连接程序(Linker)连接程序将汇编后的目标模块转连接程序将汇编后的目标模块转换为可执行程序换为可执行程序每个程序开发环境都有连接程序每个程序开发环境都有连接程序连接程序的文件名通常是:连接程序的文件名通常是:LINK.EXE源程序源程序可执行文件可执行文件目标模块

6、目标模块文本编辑器文本编辑器汇编程序汇编程序连接程序连接程序调试程序调试程序微处理器的结构及存储器组成微处理器的结构及存储器组成第 2 章调试程序(Debugger)调试程序进行程序排错、分析等调试程序进行程序排错、分析等本课程采用本课程采用DOS的的DEBUG程序程序其他还有其他还有Turbo Debugger等等源程序源程序可执行文件可执行文件目标模块目标模块文本编辑器文本编辑器汇编程序汇编程序连接程序连接程序调试程序调试程序微处理器的结构及存储器组成微处理器的结构及存储器组成第 2 章2.3 微处理器的结构微处理器的结构微处理器是微机的硬件核心微处理器是微机的硬件核心 主要包含指令执行的

7、主要包含指令执行的运算运算和和控控 制制部部 件,还有多种件,还有多种寄存器寄存器对程序员来说,微处理器抽象对程序员来说,微处理器抽象为以名称存取的寄存器为以名称存取的寄存器2.3.1 8086微处理器结构第 2 章8086内部结构有两个功能模块,内部结构有两个功能模块,完成一条指令的取指和执行功能完成一条指令的取指和执行功能v模块之一:总线接口单元模块之一:总线接口单元BIU,主,主要负责读取指令和操作数要负责读取指令和操作数v模块之二:执行单元模块之二:执行单元EU ,主要负,主要负责指令译码和执行责指令译码和执行微处理器的结构及存储器组成微处理器的结构及存储器组成第 2 章8086内部结

8、构内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外部总线外部总线执行部分执行部分控制电路控制电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件执行部件 (EU)总线接口部件总线接口部件 (BIU)16位位20位位16位位8位位第 2 章8086的执行方式取指 取指 取指 取指 取指 得到数据 取指等待 执行执行执行执行BIUEU取指执行取指执行取指执行时间第 2 章80486微处理器结构32位基址/变址总线桶形

9、移位器寄存器组ALU分段部件描述符寄存器界限和属性PLA分页部件TLBCache部件8 KB一体的Cache总线大小控制奇偶控制和产生地址驱动器写缓存(4)数据总线收发器总线控制请求序列发 生 器成组控制Cache控制预取部件32字节代码队列EP寄存器组FPU控制ROM控 制 和保护部件指令译码20位物理地址页属性32位系统地址32位写数据系统接口已译码的指令24位代码流整数部件32位读数据64位部件传送总线微指令总线32位位移总线32位线性地址总线32位数据总线32位数据总线第 2 章80486微处理器的特点一种高性能全32位的微处理器把构成80386微机系统的主处理器、数值协处理器和一个具

10、有8 KB的Cache存储器集成在一块集成电路芯片中沿用了指令流水线技术采用RISC思想设计第 2 章补充RISC :Reduced Instruction Set Computer 精简指令集计算机技精简指令集计算机技术术CISC: Complex Instruction Set Computer 复杂指令集计算机技复杂指令集计算机技术术计算机指令流水线技术计算机指令流水线技术第 2 章Pentium微处理器的结构指令Cache整数单元分支预测预取指令缓冲器整数单元寄 存 器 组数据Cache64b总线接口流水线结构的浮点单元MULADDDIV32 b32 b32 b64 b64 b64 b

11、256 bUV第 2 章Pentium体系结构特点超标量流水线超标量流水线独立的指令独立的指令Cache和数据和数据Cache浮点操作浮点操作分支预测分支预测第 2 章对汇编语言程序员来说,对汇编语言程序员来说,8086内部内部结构结构就是可编程的寄存器组就是可编程的寄存器组v 8个通用寄存器个通用寄存器v 1个指令指针寄存器个指令指针寄存器v 1个标志寄存器个标志寄存器v 4个段寄存器个段寄存器2.3.2 8086的寄存器组第 2 章8086的寄存器组AHALBHBLCHCLDHDLSPAXBXCXDXBPSIDIIPFLAGHFLAGLCSDSSSES(SP)(PC)(PSW)累加器基 数

12、计 数数 据堆栈指针基数指针源变址目的变址指令指针状态标志代码分段数据分段堆栈分段附加分段控制寄存器段寄存器数 据寄存器指 针寄存器变 址寄存器通 用寄存器O DITSZAPC15870(a)(b)(A)(HL)(BC)(DE)第 2 章1. 8086的通用寄存器8086的的16位通用寄存器是:位通用寄存器是:AXBXCXDXSIDIBPSP其中前其中前4个数据寄存器都还可以分成高个数据寄存器都还可以分成高8位和位和低低8位两个独立的寄存器位两个独立的寄存器8086的的8位通用寄存器是:位通用寄存器是:AHBHCHDHALBLCLDL对其中某对其中某8位的操作,并不影响另外对应位的操作,并不影

13、响另外对应8位位的数据的数据第 2 章数据寄存器数据寄存器用来存放计算的结果和操作数,也数据寄存器用来存放计算的结果和操作数,也可以存放地址可以存放地址每个寄存器又有它们各自的专用目的每个寄存器又有它们各自的专用目的nAX累加器,使用频度最高,用于算术、累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;逻辑运算以及与外设传送信息等;nBX基址寄存器,常用做存放存储器地基址寄存器,常用做存放存储器地址;址;nCX计数器,作为循环和串操作等指令计数器,作为循环和串操作等指令中的隐含计数器;中的隐含计数器;nDX数据寄存器,常用来存放双字长数数据寄存器,常用来存放双字长数据的高据的高16

14、位,或存放外设端口地址。位,或存放外设端口地址。第 2 章变址寄存器变址寄存器常用于存储器寻址时提供地址变址寄存器常用于存储器寻址时提供地址nSI是源变址寄存器是源变址寄存器nDI是目的变址寄存器是目的变址寄存器串操作类指令中,串操作类指令中,SI和和DI具有特别的功能具有特别的功能第 2 章2 指针寄存器指针寄存器用于寻址内存指针寄存器用于寻址内存堆栈堆栈内的数据内的数据SPSP为堆栈指针寄存器,指示栈顶的偏移地址为堆栈指针寄存器,指示栈顶的偏移地址SPSP不能再用于其他目的,具有不能再用于其他目的,具有专用专用目的目的BPBP为基址指针寄存器,表示数据在堆栈段中为基址指针寄存器,表示数据在

15、堆栈段中的基地址的基地址SPSP和和BPBP寄存器与寄存器与SSSS段寄存器联合使用以确定段寄存器联合使用以确定堆栈段中的存储单元地址堆栈段中的存储单元地址第 2 章堆栈(Stack)堆栈是主存中一个特殊的区域堆栈是主存中一个特殊的区域它采用它采用(First In Last OutFirst In Last Out)或后进先出或后进先出LIFOLIFO(Last In First OutLast In First Out)的)的原则进行存取操作,而不是随机存取操作原则进行存取操作,而不是随机存取操作方式。方式。堆栈通常由处理器自动维持。在堆栈通常由处理器自动维持。在80868086中,中,由

16、堆栈段寄存器由堆栈段寄存器SSSS和堆栈指针寄存器和堆栈指针寄存器SPSP共共同指示同指示第 2 章指令指针IP指令指针寄存器指令指针寄存器IP,指示代码段中指令的偏,指示代码段中指令的偏移地址移地址它与代码段寄存器它与代码段寄存器CS联用,确定联用,确定下一条下一条指指令的物理地址令的物理地址计算机通过计算机通过CS : IP寄存器来控制指令序列寄存器来控制指令序列的执行流程的执行流程IP寄存器是一个专用寄存器寄存器是一个专用寄存器第 2 章3 标志寄存器标志(标志(Flag)用于反映指令执行)用于反映指令执行结果或控制指令执行形式结果或控制指令执行形式8086处理器的各种标志形成了一处理器

17、的各种标志形成了一个个16位的标志寄存器位的标志寄存器FLAGS(程(程序状态字序状态字PSW寄存器寄存器)OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0 程序设计需要利用标志的状态程序设计需要利用标志的状态第 2 章标志的分类状态标志用来记录程序运行状态标志用来记录程序运行结果的状态信息,许多指令的执结果的状态信息,许多指令的执行都将相应地设置它行都将相应地设置它CF ZF SF PF OF AF控制标志可由程序根据需要控制标志可由程序根据需要用指令设置,用于控制处理器执用指令设置,用于控制处理器执行指令的方式行指令的方式DF IF TF第 2 章进位标志CF(C

18、arry Flag)当运算结果的最高有效位有进位(加当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置法)或借位(减法)时,进位标志置1,即即CF = 1;否则;否则CF = 0。3AH + 7CHB6H,没有进位:,没有进位:CF = 0AAH + 7CH(1)26H,有进位:,有进位:CF = 1第 2 章零标志ZF(Zero Flag)若运算结果为若运算结果为0,则,则ZF = 1;否则否则ZF = 03AH + 7CHB6H,结果不是零:,结果不是零:ZF = 084H + 7CH(1)00H,结果是零:,结果是零:ZF = 1 注意:注意:ZF为为1表示的结果是表示的结

19、果是0第 2 章符号标志SF(Sign Flag)运算结果最高位为运算结果最高位为1,则,则SF = 1;否则否则SF = 03AH + 7CHB6H,最高位,最高位D71:SF = 184H + 7CH(1)00H,最高位,最高位D70:SF = 0 有符号数据用最高有效位表示数据的符号有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态所以,最高有效位就是符号标志的状态第 2 章奇偶标志PF(Parity Flag)当运算结果最低字节中当运算结果最低字节中“1”1”的个数为的个数为零或偶数时,零或偶数时,PF = 1PF = 1;否则;否则PF = 0PF = 03AH

20、+ 7CHB6H10110110B结果中有结果中有5个个1,是奇数:是奇数:PF = 0 PF标志仅反映最低标志仅反映最低8位中位中“1”的个数是的个数是偶或奇,即使是进行偶或奇,即使是进行16位字操作位字操作第 2 章溢出标志OF(Overflow Flag)若算术运算的结果有溢出,若算术运算的结果有溢出,则则OFOF1 1;否则;否则 OFOF0 03AH + 7CHB6H,产生溢出:,产生溢出:OF = 1AAH + 7CH(1)26H,没有溢出:,没有溢出:OF = 0第 2 章溢出标志OF(Overflow Flag)问题问题什么是溢出?什么是溢出?溢出和进位有什么区别?溢出和进位有

21、什么区别?处理器怎么处理,程序员如何运用?处理器怎么处理,程序员如何运用?如何判断是否溢出?如何判断是否溢出?第 2 章什么是溢出处理器内部以补码表示有符号数处理器内部以补码表示有符号数8位表达的整数范围是:位表达的整数范围是:12712816位表达的范围是:位表达的范围是:3276732768如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确有溢出,说明有符号数的运算结果不正确3AH7CHB6H,就是,就是58124182,已经超出已经超出128127范围,产生溢出,故范围,产生溢出,故OF1;另一方面,补码另一方面,补码B6H表

22、达真值是表达真值是-74,显然运算结果也不正确显然运算结果也不正确第 2 章溢出和进位溢出标志溢出标志OF和进位标志和进位标志CF是两个意义是两个意义不同的标志不同的标志进位标志表示无符号数运算结果是否进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。超出范围,运算结果已经不正确。第 2 章溢出和进位的对比例例1:3AH + 7CHB6H无符号数运算:无符号数运算: 58124182范围内,无进位范围内,无进位有符号数运算:有符号数运算: 58124182范围外,

23、有溢出范围外,有溢出例例2:AAH + 7CH(1)26H无符号数运算:无符号数运算: 170124294范围外,有进位范围外,有进位有符号数运算:有符号数运算: 8612428范围内,无溢出范围内,无溢出第 2 章如何运用溢出和进位处理器对两个操作数进行运算时,按处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进照无符号数求得结果,并相应设置进位标志位标志CF;同时,根据是否超出有符;同时,根据是否超出有符号数的范围设置溢出标志号数的范围设置溢出标志OF。应该利用哪个标志,则由程序员来决应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操定。也就是说,如果将参加运算

24、的操作数认为是无符号数,就应该关心进作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否位;认为是有符号数,则要注意是否溢出。溢出。第 2 章溢出的判断判断运算结果是否溢出有一个简判断运算结果是否溢出有一个简单的规则:单的规则:只有当两个相同符号数相加(包只有当两个相同符号数相加(包括不同符号数相减),而运算结括不同符号数相减),而运算结果的符号与原数据符号相反时,果的符号与原数据符号相反时,产生溢出;因为,此时的运算结产生溢出;因为,此时的运算结果显然不正确果显然不正确其他情况下,则不会产生溢出其他情况下,则不会产生溢出第 2 章辅助进位标志AF(Auxiliary Carry

25、Flag)3AH + 7CHB6H,D3有进位:有进位:AF = 1运算时运算时D D3 3位(低半字节)有进位或位(低半字节)有进位或借位时,借位时,AF = 1AF = 1;否则;否则AF = 0AF = 0。 这个标志主要由处理器内部使用,这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用用于十进制算术运算调整指令中,用户一般不必关心户一般不必关心第 2 章方向标志DF(Direction Flag)用于串操作指令中,控制地址的用于串操作指令中,控制地址的变化方向:变化方向:设置设置DFDF0 0,存储器地址自动增加;,存储器地址自动增加;设置设置DFDF1 1,存储器地址自

26、动减少。,存储器地址自动减少。CLDCLD指令复位方向标志:指令复位方向标志:DFDF0 0STDSTD指令置位方向标志:指令置位方向标志:DFDF1 1第 2 章中断允许标志IF(Interrupt-enable Flag)用于控制外部可屏蔽中断是否可用于控制外部可屏蔽中断是否可以被处理器响应:以被处理器响应:设置设置IFIF1 1,则允许中断;,则允许中断;设置设置IFIF0 0,则禁止中断。,则禁止中断。CLICLI指令复位中断标志:指令复位中断标志:IFIF0 0STISTI指令置位中断标志:指令置位中断标志:IFIF1 1第 2 章跟踪标志TF(Trap Flag)用于控制处理器进入

27、单步操作方式:用于控制处理器进入单步操作方式:设置设置TFTF0 0,处理器正常工作;,处理器正常工作;设置设置TFTF1 1,处理器单步执行指令。,处理器单步执行指令。单步执行指令单步执行指令处理器在处理器在每条指令执行结每条指令执行结束束时,便产生一个编号为时,便产生一个编号为1 1的内部中断的内部中断这种内部中断称为这种内部中断称为单步中断单步中断所以所以TFTF也称为也称为单步标志单步标志n利用单步中断可对程序进行逐条指令的调试利用单步中断可对程序进行逐条指令的调试n这种逐条指令调试程序的方法就是这种逐条指令调试程序的方法就是单步调试单步调试第 2 章8086有有4个个16位段寄存器位

28、段寄存器nCS(代码段)指明(代码段)指明代码段代码段的起始地址的起始地址nSS(堆栈段)指明(堆栈段)指明堆栈段堆栈段的起始地址的起始地址nDS(数据段)指明(数据段)指明数据段数据段的起始地址的起始地址nES(附加段)指明(附加段)指明附加段附加段的起始地址的起始地址 4 段寄存器段寄存器每个段寄存器用来确定一个逻辑段的起每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途始地址,每种逻辑段均有各自的用途第 2 章寄存器是微处理器内部暂存数据的寄存器是微处理器内部暂存数据的存储单元,以名称表示存储单元,以名称表示存储器则是微处理器外部存放程序存储器则是微处理器外部存放程序及其

29、数据的空间及其数据的空间程序及其数据可以长久存放在外存,程序及其数据可以长久存放在外存,在程序需要时才进入主存在程序需要时才进入主存主存需要利用地址区别主存需要利用地址区别2.4 存储器存储器第 2 章数据信息的表达单位数据信息的表达单位计算机中信息的单位计算机中信息的单位n二进制位二进制位BitBit:存储一位二进制数:存储一位二进制数:0 0或或1 1n字节字节ByteByte:8 8个二进制位个二进制位,D D7 7D D0 0n字字WordWord:1616位,位,2 2个字节,个字节,D D1515D D0 0n双字双字DWordDWord:3232位,位,4 4个字节个字节,D D

30、3131D D0 0最低有效位最低有效位LSBLSB:数据的最低位,:数据的最低位,D D0 0位位最高有效位最高有效位MSBMSB:数据的最高位,对应:数据的最高位,对应字节、字、双字分别指字节、字、双字分别指D D7 7、D D1515、D D3131位位2.4.1存储单元及其存储内容第 2 章数据的存储格式D7D0字节字节D15D0字字D31D0双字双字D7 D000000H00001H 34H00002H12H00003H56H00004H78H00005H00006H低地址低地址第 2 章存储单元及其存储内容每个存储单元都有一个编号;每个存储单元都有一个编号;被称为存储器地址被称为存

31、储器地址每个存储单元存放一个字节每个存储单元存放一个字节的内容的内容0002H0002H单元存放有一个数据单元存放有一个数据34H34H表达为表达为0002H0002H34H34H第 2 章多字节数据存放方式多字节数据在存储器中占多字节数据在存储器中占连续的多个连续的多个存储单元存储单元:n存放时,存放时,低字节存入低地址,高字节存低字节存入低地址,高字节存入高地址入高地址;n表达时,用它的表达时,用它的低地址表示低地址表示多字节数据多字节数据占据的地址空间。占据的地址空间。图图1.71.7中中2 2号号“字字”单元的内容为:单元的内容为:0002H = 1234H0002H = 1234H2

32、 2号号“双字双字”单元的内容为:单元的内容为:0002H = 78561234H0002H = 78561234H第 2 章2.4.2 存储器的分段管理8086CPU8086CPU有有2020条地址线条地址线n最大可寻址空间为最大可寻址空间为2 220201MB1MBn物理地址范围从物理地址范围从00000H00000HFFFFFHFFFFFH8086CPU8086CPU将将1MB1MB空间分成许多空间分成许多逻辑段逻辑段(SegmentSegment)n每个段最大限制为每个段最大限制为64KB64KBn段地址的低段地址的低4 4位为位为0000B0000B这样,一个存储单元除具有一个唯一这

33、样,一个存储单元除具有一个唯一的的物理地址物理地址外,还具有多个外,还具有多个逻辑地址逻辑地址第 2 章物理地址和逻辑地址对应每个物理存储单元都有一个对应每个物理存储单元都有一个唯一的唯一的20位编号,就是物理地址,位编号,就是物理地址,从从00000HFFFFFH。分段后在用户编程时,采用逻辑分段后在用户编程时,采用逻辑地址,形式为地址,形式为段基地址段基地址 : : 段内偏移地址段内偏移地址分隔符分隔符第 2 章逻辑地址段地址段地址说明逻辑段在主存中的起始位置说明逻辑段在主存中的起始位置8086规定段地址必须是模规定段地址必须是模16地址:地址:xxxx0H省略低省略低4位位0000B,段

34、地址就可以用,段地址就可以用16位数位数据表示,就能用据表示,就能用16位位段寄存器段寄存器表达段地址表达段地址偏移地址偏移地址说明主存单元距离段起始位置的偏说明主存单元距离段起始位置的偏移量移量每段不超过每段不超过64KB,偏移地址也可用,偏移地址也可用16位位数数据表示据表示第 2 章物理地址和逻辑地址的转换将逻辑地址中的段地址左移将逻辑地址中的段地址左移4 4位,位,加上偏移地址就得到加上偏移地址就得到2020位物理地址位物理地址一个物理地址可以有多个逻辑地一个物理地址可以有多个逻辑地址址逻辑地址逻辑地址 1460:1001460:100、1380:F001380:F00物理地址物理地址

35、 14700H 14700H14700H 14700H146014600 0H H 100H100H14700H14700H138013800 0H H F00HF00H14700H14700H段地址左移段地址左移4 4位位加上偏移地址加上偏移地址得到物理地址得到物理地址第 2 章物理地址物理地址 = 16 段地址段地址 + 偏移地址偏移地址 16 位 段 地 址 16 位 偏 移 地 址 0000+ 20 位 物 理 地 址例:(DS) = 2100H, (BX) = 0500H (PA) = 21000H+0500H = 21500H 第 2 章段寄存器每个段寄存器用来确定一个逻辑段的每个

36、段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用起始地址,每种逻辑段均有各自的用途途8086有有4个个16位段寄存器位段寄存器nCS(代码段)指明(代码段)指明代码段代码段的起始地址的起始地址nSS(堆栈段)指明(堆栈段)指明堆栈段堆栈段的起始地址的起始地址nDS(数据段)指明(数据段)指明数据段数据段的起始地址的起始地址nES(附加段)指明(附加段)指明附加段附加段的起始地址的起始地址第 2 章代码段(Code Segment)代码段用来存放程序的指令序列代码段用来存放程序的指令序列v代码段寄存器代码段寄存器CS存放代码段的段地址存放代码段的段地址v指令指针寄存器指令指针寄存器I

37、P指示下条指令的偏移地址指示下条指令的偏移地址处理器利用处理器利用CS:IP取得下一条要执取得下一条要执行的指令行的指令第 2 章堆栈段(Stack Segment)堆栈段确定堆栈所在的主存区域堆栈段确定堆栈所在的主存区域v堆栈段寄存器堆栈段寄存器SS存放堆栈段的段地址存放堆栈段的段地址v堆栈指针寄存器堆栈指针寄存器SP指示堆栈栈顶的偏指示堆栈栈顶的偏移地址移地址处理器利用处理器利用SS:SP操作堆栈顶的操作堆栈顶的数据数据第 2 章数据段(Data Segment)数据段存放运行程序所用的数据数据段存放运行程序所用的数据v数据段寄存器数据段寄存器DS存放数据段的段地址存放数据段的段地址v各种

38、主存寻址方式(有效地址各种主存寻址方式(有效地址EA)得)得到存储器中操作数的偏移地址到存储器中操作数的偏移地址处理器利用处理器利用DS:EA存取数据段中存取数据段中的数据的数据第 2 章附加段(Extra Segment)附加段是附加的数据段,也用于数据附加段是附加的数据段,也用于数据的保存:的保存:v附加段寄存器附加段寄存器ES存放附加段的段地址存放附加段的段地址v各种主存寻址方式(有效地址各种主存寻址方式(有效地址EA)得到存)得到存储器中操作数的偏移地址储器中操作数的偏移地址处理器利用处理器利用ES:EA存取附加段中的数存取附加段中的数据据串操作指令将附加段作为其目的操作串操作指令将附

39、加段作为其目的操作数的存放区域数的存放区域第 2 章如何分配各个逻辑段程序的程序的指令序列指令序列必须安排在代码段必须安排在代码段程序使用的程序使用的堆栈堆栈一定在堆栈段一定在堆栈段程序中的程序中的数据数据默认是安排在数据段,默认是安排在数据段,也经常安排在附加段,尤其是串操也经常安排在附加段,尤其是串操作的目的区必须是附加段作的目的区必须是附加段数据的存放比较灵活,实际上可以数据的存放比较灵活,实际上可以存放在任何一种逻辑段中存放在任何一种逻辑段中第 2 章段超越前缀指令没有指明时,一般的数据访问在没有指明时,一般的数据访问在DSDS段;段;使用使用BPBP访问主存,则在访问主存,则在SSS

40、S段段默认的情况允许改变,需要使用段超默认的情况允许改变,需要使用段超越前缀指令;越前缀指令;80868086指令系统中有指令系统中有4 4个:个:CS:CS:;代码段超越,使用代码段的数据;代码段超越,使用代码段的数据SS: SS: ;堆栈段超越,使用堆栈段的数据;堆栈段超越,使用堆栈段的数据DS: DS: ;数据段超越,使用数据段的数据;数据段超越,使用数据段的数据ES: ES: ;附加段超越,使用附加段的数据;附加段超越,使用附加段的数据第 2 章段超越的示例没有段超越的指令实例:没有段超越的指令实例:MOV AX,2000HMOV AX,2000H;AXDS:2000HAXDS:200

41、0H;从默认的;从默认的DSDS数据段取出数据数据段取出数据采用段超越前缀的指令实例:采用段超越前缀的指令实例:MOV AX,ES:2000HMOV AX,ES:2000H ;AXES:2000HAXES:2000H;从指定的;从指定的ESES附加段取出数据附加段取出数据第 2 章段寄存器的使用规定访问存储器的方式访问存储器的方式默认默认可超越可超越偏移地址偏移地址取指令取指令CSCS无无IPIP堆栈操作堆栈操作SSSS无无SPSP一般数据访问一般数据访问DSDSCS ES SSCS ES SS有效地址有效地址EAEABPBP基址的寻址方式基址的寻址方式SSSSCS ES DSCS ES DS

42、有效地址有效地址EAEA串操作的源操作数串操作的源操作数DSDSCS ES SSCS ES SSSISI串操作的目的操作数串操作的目的操作数ESES无无DIDI第 2 章存储器的分段8086对逻辑段对逻辑段要求要求:n段地址低段地址低4位均为位均为0n每段最大不超过每段最大不超过64KB8086对逻辑段对逻辑段并不要求并不要求:n必须是必须是64KBn各段之间完全分开(即可以重叠)各段之间完全分开(即可以重叠)第 2 章各个逻辑段独立 存储器存储器64KB代码01500H42000H1CD00H0150H4200H1CD0H段寄存器段寄存器CSDSSSES64KB堆栈64KB数据 64KB附加

43、数据B0000HB000H第 2 章 存储器存储器 8KB代码 2KB数据 256堆栈02000H04800H04000H0200H0400H0480HCSDSSS优点优点: 允许程序在存储器内重定位;允许程序在存储器内重定位; 允许实模式程序在保护模式下运行;允许实模式程序在保护模式下运行; 有利于程序和数据的分离。有利于程序和数据的分离。各段允许重叠各段允许重叠第 2 章1MB空间的分段1MB1MB空间最多能分成多少个段?空间最多能分成多少个段?每隔每隔1616个存储单元就可以开始一个段,个存储单元就可以开始一个段,所以所以1MB1MB最多可以有:最多可以有:2 2202016162 21

44、61664K 64K 个段个段1MB1MB空间最少能分成多少个段?空间最少能分成多少个段?每隔每隔64K64K个存储单元开始一个段,个存储单元开始一个段,所以所以1MB1MB最少可以有:最少可以有:2 220202 2161616 16 个段个段第 2 章小结8086有有8个个8位通用寄存器、位通用寄存器、8个个16位位通用寄存器通用寄存器8086有有6个状态标志和个状态标志和3个控制标志个控制标志8086将将1MB存储空间分段管理,有存储空间分段管理,有4个段寄存器,对应个段寄存器,对应4种逻辑段种逻辑段8086有有4个段超越前缀指令,用于明确个段超越前缀指令,用于明确指定数据所在的逻辑段指

45、定数据所在的逻辑段 熟悉上述内容后,就可以进入下节熟悉上述内容后,就可以进入下节第 2 章 寄存器与存储器的比较:寄存器与存储器的比较: 寄寄 存存 器器 存存 储储 器器 在在CPU内部内部 在在CPU外部外部访问速度快访问速度快 访问速度慢访问速度慢容量小,成本高容量小,成本高 容量大,成本低容量大,成本低用名字表示用名字表示 用地址表示用地址表示没有地址没有地址 地址可用各种方式形成地址可用各种方式形成第 2 章80 x86的寄存器结构的寄存器结构80 x86的程序可见寄存器组的程序可见寄存器组通用寄存器通用寄存器专用寄存器专用寄存器 段寄存器段寄存器 AH AX AL AH AX AL

46、 BH BX BL BH BX BL CH CX CL CH CX CL DH DX DL DH DX DL SP SP BP BP SI SI DI DI IP IP FLAGS FLAGS CS CS DS DS SS SS ES ES8086 /8086 /8088 /8088 /8028680286 寄寄 存存 器器EAXEAXEBXEBXECXECXEDXEDXESPESPEBPEBPESIESIEDIEDIEIPEIP EFLAGS EFLAGS FSFSGSGS 31 16 15 8 7 0第 2 章OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF

47、CFCF 8086/8088OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNT 80286 RFRF OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNTVMVM 80386 RFRF OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNTVMVMACAC 80486 RFRF OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNTVMVMACACID

48、ID VIPVIPVIFVIF31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0Pentium80 x86的标志寄存器的标志寄存器 (P.23)IOPL: I/O特权级特权级 VIP:虚拟中断未决标志:虚拟中断未决标志 NT: 嵌套任务标志嵌套任务标志 VIF:虚拟中断标志:虚拟中断标志 RF: 重新启动标志重新启动标志 VM:虚拟:虚拟8086模式位模式位 AC: 对准检查方式位对准检查方式位 ID: 标识标志标识标志

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!