汇编语言ch028086计算机组织.ppt

上传人:pu****.1 文档编号:577141154 上传时间:2024-08-21 格式:PPT 页数:64 大小:2.26MB
返回 下载 相关 举报
汇编语言ch028086计算机组织.ppt_第1页
第1页 / 共64页
汇编语言ch028086计算机组织.ppt_第2页
第2页 / 共64页
汇编语言ch028086计算机组织.ppt_第3页
第3页 / 共64页
汇编语言ch028086计算机组织.ppt_第4页
第4页 / 共64页
汇编语言ch028086计算机组织.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《汇编语言ch028086计算机组织.ppt》由会员分享,可在线阅读,更多相关《汇编语言ch028086计算机组织.ppt(64页珍藏版)》请在金锄头文库上搜索。

1、第第2章章 8086计算机组织计算机组织2.1 80x86微处理器微处理器 2.2 基于微处理器的计算机系统构成基于微处理器的计算机系统构成 2.3 中央处理机中央处理机 2.4 存储器存储器课前思考课前思考n微计算机系统一般包括哪两部分?微计算机系统一般包括哪两部分?n8086微处理器主要由哪几部分组成?它们的功能微处理器主要由哪几部分组成?它们的功能是什么?是什么?n一个字节和一个字分别由几个二进制位组成?一个字节和一个字分别由几个二进制位组成?n在在Intel系列微型机中是如何编址的?系列微型机中是如何编址的?n一个字节和一个字在存储器中是如何存储的?一个字节和一个字在存储器中是如何存储

2、的?n字单元的地址是偶数或是奇数时,访问存储器有字单元的地址是偶数或是奇数时,访问存储器有什么不同?什么不同?n8086微型机可以访问的最大存储空间是多少?应微型机可以访问的最大存储空间是多少?应用几位地址来表示?用几位地址来表示?n在在8086微机中,如何提供微机中,如何提供20位的地址?如何形成位的地址?如何形成物理地址?物理地址?n8086微机中,存储器空间可分为几种逻辑段?每微机中,存储器空间可分为几种逻辑段?每段的可寻址空间是多大?段地址存放在哪些寄存段的可寻址空间是多大?段地址存放在哪些寄存器中?器中?nCPU中有哪几类寄存器,它们各自的专门用途是中有哪几类寄存器,它们各自的专门用

3、途是什么?什么?n条件码标志和控制标志各包含几位?它们每位所条件码标志和控制标志各包含几位?它们每位所表示的意义是什么?表示的意义是什么?n什么是什么是DOS和和BIOS功能调用?功能调用?学习目标学习目标n了解计算机系统的主要组成部分;了解计算机系统的主要组成部分;n掌握存储器地址分段的方法以及存储单元物理地掌握存储器地址分段的方法以及存储单元物理地址的形成方法;址的形成方法;n熟悉熟悉8086各类寄存器的用途;各类寄存器的用途;n熟悉标志寄存器各标志位的意义。熟悉标志寄存器各标志位的意义。 学习指南学习指南n本章内容是汇编语言程序设计所需要了解的硬件本章内容是汇编语言程序设计所需要了解的硬

4、件知识,已熟悉计算机基本原理的学员可直接学习知识,已熟悉计算机基本原理的学员可直接学习后面的章节。后面的章节。重点与难点重点与难点n存储器分段;存储器分段;n存储器单元物理地址的形成;存储器单元物理地址的形成;n各寄存器的用途。各寄存器的用途。本章知识点本章知识点n基于基于8086的微计算机系统的微计算机系统n8086寄存器寄存器p通用寄存器通用寄存器p专用寄存器专用寄存器p段寄存器段寄存器n8086微处理器的存储器管理微处理器的存储器管理p存储单元的地址和内容存储单元的地址和内容p存储器分段管理存储器分段管理n外部设备外部设备pI/O端口端口pDOS和和BIOS功能调用功能调用2.1 80x

5、86微处理器微处理器80386803868048680486奔腾奔腾奔腾奔腾II奔腾奔腾4802868028680868086奔腾奔腾IIIIA-64(安腾)(安腾)40044004不是我不明白,不是我不明白,这世界变化太快。这世界变化太快。扎扎实实掌握知识,扎扎实实掌握知识,以不变应万变!以不变应万变!IA-328086n16位结构的微处理器:数据总线为位结构的微处理器:数据总线为16位位n主存容量主存容量1MB:地址总线为:地址总线为20位位n时钟频率时钟频率5MHz(IBM PC使用使用4.77MHz)n准准16位微处理器位微处理器8088:外部数据总线为:外部数据总线为8位位nIBM

6、PC和和PC/XT机使用机使用Intel 8088 CPUn8086的的16位指令系统:位指令系统:Intel 80x86基本指令集基本指令集n80186/80188的核心是的核心是8086/8088,配以支持电路,配以支持电路n80186/80188指令系统比指令系统比8086指令系统新增了若干指令系统新增了若干条实用的指令,条实用的指令,涉及堆栈操作、移位指令、输入涉及堆栈操作、移位指令、输入输出指令、过程指令和边界检测及乘法指令输出指令、过程指令和边界检测及乘法指令80286n16位数据总线,位数据总线,24位地址总线(位地址总线(16MB主存)主存)n实方式(实方式(Real Mode

7、),与),与8086工作方式一样工作方式一样n保护方式(保护方式(Protected Mode)p存储管理、保护机制和多任务管理的硬件支持存储管理、保护机制和多任务管理的硬件支持nIBM PC/AT机使用机使用Intel 80286 CPUn80286指令系统新增指令系统新增15条保护方式指令条保护方式指令16位位Intel 80x86 CPU:8086 / 80186 / 8028632位位Intel 80x86 CPU(IA-32微微处处理理器器):80386,80486,Pentium系列系列英特尔英特尔32位结构:位结构:IA-32(Intel Architecture-32)8038

8、6n32位结构位结构p数据总线数据总线32位,地址总线位,地址总线32位,寻址位,寻址4GB主存主存n虚拟虚拟8086方式(方式(Virtual 8086 Mode)p保护方式下的保护方式下的8086工作方式工作方式n系统管理方式(系统管理方式(System Management Mode)p低功耗节能状态低功耗节能状态n80386指令系统全面升级为指令系统全面升级为32位位p兼容原来兼容原来16位指令系统位指令系统p新增有关位操作、条件设置指令以及对控制、新增有关位操作、条件设置指令以及对控制、调试和测试寄存器的传送指令等调试和测试寄存器的传送指令等80486n804868038680387

9、8KB Cachen浮点处理单元浮点处理单元FPUp8086/8088:8087p80286:80287p80386:80387n高速缓冲存储器高速缓冲存储器Cachen复杂指令集计算机复杂指令集计算机CISC融合精简指令集计算机融合精简指令集计算机RISC的技术特点的技术特点n80486指令系统新增用于多处理器和内部指令系统新增用于多处理器和内部Cache操操作的作的6条指令条指令Pentiumn俗称的俗称的80586微处理器,奔腾微处理器微处理器,奔腾微处理器n32位结构,连接主存的数据总线是位结构,连接主存的数据总线是64位位n超标量(超标量(Superscalar)技术)技术nPent

10、ium指令系统新增指令系统新增p一条一条8字节比较交换指令字节比较交换指令p一条处理器识别指令一条处理器识别指令p4条系统专用指令条系统专用指令Pentium Pron原称原称P6,中文名称为,中文名称为“高能奔腾高能奔腾”n两个芯片组成两个芯片组成n扩展的超标量技术扩展的超标量技术n动态执行技术动态执行技术nPentium Pro新增新增3条指令条指令Pentium IIn多媒体扩展指令(多媒体扩展指令(MMX指令)指令)pMMX(MutliMedia eXtension)p整数运算多媒体指令整数运算多媒体指令p优化图像、音频、视频和通信方面的程序进行优化图像、音频、视频和通信方面的程序进行

11、p提升微机对多媒体的处理能力提升微机对多媒体的处理能力nPentium MMX(多能奔腾):(多能奔腾):MMX指令应用于指令应用于Pentium处理器处理器nPentium II:MMX指令应用于指令应用于Pentium ProPentium IIIn数据流数据流SIMD扩展指令(扩展指令(SSE指令)指令)pSSE(Streaming SIMD Extensions)p浮点单精度多媒体运算指令浮点单精度多媒体运算指令p提高浮点提高浮点3D数据的处理能力。数据的处理能力。pSSE指令类似于指令类似于AMD公司发布的公司发布的3D Now!指令指令nPentium III:SSE指令应用于指令

12、应用于Pentium II n单指令多数据单指令多数据SIMDpSingle Instruction Multiple Datap表示一条指令具有同时处理多组数据的能力表示一条指令具有同时处理多组数据的能力Pentium 4nNetBurst的微结构(的微结构(Microarchitecture) p进一步发掘指令之间可以同时执行的能力进一步发掘指令之间可以同时执行的能力n超线程超线程HT(Hyper Threading)p发掘程序中的并行性发掘程序中的并行性p一个物理处理器形成两个逻辑处理器一个物理处理器形成两个逻辑处理器nSSE2指令指令p增强浮点双精度多媒体运算能力增强浮点双精度多媒体运

13、算能力nSSE3指令指令p增强和完善增强和完善MMX,SSE和和SSE2指令指令Celeron和和XeonnCeleron(赛扬)微处理器(赛扬)微处理器p面向低端(低价位)面向低端(低价位)PC机机nXeon(至强)微处理器(至强)微处理器p面向高端服务器、工作站面向高端服务器、工作站nAMD微处理器微处理器pAMD公司生产的公司生产的IA-32微处理器兼容芯片微处理器兼容芯片pIntel公司最主要的竞争对手公司最主要的竞争对手n双核微处理器双核微处理器p单芯片多处理器单芯片多处理器SMP技术技术pIntel的的Pentium D:单芯片双:单芯片双Pentium 4核心核心n64位微处理器

14、位微处理器pAMD的的K8核心:兼容核心:兼容IA-32的的64位微处理器位微处理器pIntel的的EM64T(扩展(扩展64位技术):位技术): IA-32的的64位扩展位扩展2.2 基于微处理器的计算机系统构成基于微处理器的计算机系统构成n硬件(硬件(Hardware)p中央处理机(中央处理机(CPU)p存储器(存储器(memory)p输入输出(输入输出(I/O)n软件(软件(Software)p系统软件系统软件p应用软件应用软件计算机结构计算机结构系统总线系统总线存储器存储器接口接口大容量大容量存储器存储器接口接口I/O设备设备中央处理机中央处理机CPU总线控总线控制逻辑制逻辑I/O子系

15、统子系统系统总线系统总线n数据总线数据总线DBp传送信息传送信息n地址总线地址总线ABp指出信息的来源和目的地指出信息的来源和目的地n控制总线控制总线CBp规定总线的动作,如方向等规定总线的动作,如方向等汇编语言程序员看到的硬件汇编语言程序员看到的硬件n中央处理单元中央处理单元 CPU(Intel 80x86)p对汇编语言程序员,最关心其中的对汇编语言程序员,最关心其中的寄存器寄存器n存储器(存储器(主存储器主存储器)p呈现给汇编语言程序员的,是呈现给汇编语言程序员的,是存储器地址存储器地址n外部设备(外部设备(接口电路接口电路)p汇编语言程序员看到的是汇编语言程序员看到的是端口(端口(I/O

16、地址)地址)2.3 中央处理机中央处理机2.3.1 中央处理机中央处理机CPU的组成的组成2.3.2 80x86寄存器组寄存器组2.3.1 中央处理机中央处理机CPU的组成的组成n算术逻辑部件(算术逻辑部件(arithmetic logic unit,ALU)p用来进行算术和逻辑运算用来进行算术和逻辑运算n控制逻辑部件控制逻辑部件p负责对全机的控制工作负责对全机的控制工作n工作寄存器工作寄存器p存放计算过程中的操作数、操作数地址及运算存放计算过程中的操作数、操作数地址及运算的中间结果的中间结果p存取速度比存储器要快的多存取速度比存储器要快的多2.3.2 80x86寄存器组寄存器组 AH AX

17、AL AH AX AL BH BX BL BH BX BL CH CX CL CH CX CL DH DX DL DH DX DL SP SP BP BP DI DI SI SI IP IP FLAGS FLAGS CS CS DS DS SS SS ES ES FSFS GS GSEAXEAXEBXEBXECXECXEDXEDXESPESPEBPEBPESIESIEDIEDIEIPEIPEFLAGSEFLAGS 31 16 15 8 7 0 名称名称累加器累加器 基址变址基址变址计数计数数据数据堆栈指针堆栈指针基址指针基址指针目的变址目的变址源变址源变址指令指针指令指针标志标志代码代码数据数

18、据堆栈堆栈附加附加通用寄存器通用寄存器专用寄存器专用寄存器段寄存器段寄存器1、通用寄存器、通用寄存器nAX(accumulator)p累加器累加器,使用频度最高,用于算术、逻辑运算,使用频度最高,用于算术、逻辑运算以及与外设传送信息等。以及与外设传送信息等。nBX(base)p基址寄存器基址寄存器,常存放存储器地址。,常存放存储器地址。nCX(count)p计数器计数器,循环和串操作等指令中的隐含计数器。,循环和串操作等指令中的隐含计数器。nDX(data)p数据寄存器数据寄存器,常用来存放双字长数据的高,常用来存放双字长数据的高16位,位,或存放外设端口地址。或存放外设端口地址。nSP(st

19、ack pointer)p堆栈指针寄存器堆栈指针寄存器,指示,指示堆栈段顶的偏移地址堆栈段顶的偏移地址。nBP(base pointer)p基址指针寄存器基址指针寄存器,表示数据在,表示数据在堆栈段中堆栈段中的基地的基地址。址。nSI(source index)p源变址寄存器源变址寄存器nDI(destination index)p目的变址寄存器目的变址寄存器2、专用寄存器、专用寄存器nIP(instruction pointer)p指令指针寄存器。指令指针寄存器。存放代码段中的偏移地址存放代码段中的偏移地址。p它与代码段寄存器它与代码段寄存器CS联用,确定下一条指令的联用,确定下一条指令的物

20、理地址,计算机通过物理地址,计算机通过CS : IP寄存器来控制指寄存器来控制指令序列的执行流程。令序列的执行流程。nFLAGSp标志寄存器,又称程序状态字寄存器标志寄存器,又称程序状态字寄存器PSW。存。存放放条件码标志条件码标志、控制标志控制标志和和系统标志系统标志。标志位的符号表示标志位的符号表示 标标 志志 名名标志为标志为1标志为标志为0OF 溢出(是溢出(是/否)否)DF 方向(减量方向(减量/增量)增量)IF 中断(允许中断(允许/关闭)关闭)SF 符号(负符号(负/正)正)ZF 零(是零(是/否)否)AF 辅助进位(是辅助进位(是/否)否)PF 奇偶(偶奇偶(偶/奇)奇)CF

21、进位(是进位(是/否)否)OVDNEI NGZRACPECYNVUPDIPLNZ NA PONC15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0OF DF IF TF SF ZF AF PF CF进位标志进位标志CF(Carry Flag)n当运算结果的最高有效位有进位(加法)或借位当运算结果的最高有效位有进位(加法)或借位(减法)时,(减法)时,CF = 1;否则;否则CF = 0。n如:如:3AH + 7CHB6H,没有进位:,没有进位:CF = 0AAH + 7CH(1)26H,有进位:,有进位:CF = 1零标志零标志ZF(Zero Flag)n若运算结果为若

22、运算结果为0,则,则ZF = 1;否则;否则ZF = 0n如:如:3AH + 7CHB6H,结果不是零:,结果不是零:ZF = 084H + 7CH(1)00H,结果是零:,结果是零:ZF = 1 注意:注意:ZF为为1表示的结果是表示的结果是0!符号标志符号标志SF(Sign Flag)n运算结果最高位为运算结果最高位为1,则,则SF = 1;否则;否则SF = 0n有符号数据用最高有效位表示数据的符号。所以,有符号数据用最高有效位表示数据的符号。所以,最高有效位就是符号标志的状态。最高有效位就是符号标志的状态。n如:如:3AH + 7CHB6H,最高位,最高位D71:SF = 184H +

23、 7CH(1)00H,最高位,最高位D70:SF = 0奇偶标志奇偶标志PF(Parity Flag)n当运算结果最低字节中当运算结果最低字节中“1”的个数为零或偶数时,的个数为零或偶数时,PF = 1;否则;否则PF = 0n如:如:3AH + 7CHB6H10110110B结果中有结果中有5个个1,是奇数:是奇数:PF = 0 PF标标志志仅仅反反映映最最低低8位位中中“1”的的个个数数是是偶偶或或奇,即使是进行奇,即使是进行16位字操作!位字操作!溢出标志溢出标志OF(Overflow Flag)n算术运算的结果有溢出,则算术运算的结果有溢出,则OF1;否则;否则OF0。n如:如:3AH

24、 + 7CHB6H,产生溢出:,产生溢出:OF = 1AAH + 7CH(1)26H,没有溢出:,没有溢出:OF = 0 问题问题什么是溢出?什么是溢出?溢出和进位有什么区别?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?处理器怎么处理,程序员如何运用?如何判断是否溢出?如何判断是否溢出?什么是溢出什么是溢出n处理器内部以补码表示有符号数处理器内部以补码表示有符号数n8位表达的整数范围是:位表达的整数范围是:127128n16位表达的范围是:位表达的范围是:32767 32768n如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出n有溢出,说明有符号数的运算结

25、果不正确有溢出,说明有符号数的运算结果不正确3AH7CHB6H,就是,就是58124182,已经超出已经超出128127范围,产生溢出,故范围,产生溢出,故OF1;另一方面,补码另一方面,补码B6H表达真值是表达真值是-74,显然运算结果也不正确显然运算结果也不正确溢出和进位溢出和进位n溢出标志溢出标志OF和进位标志和进位标志CF是两个意义不同的标志是两个意义不同的标志n进位标志进位标志表示表示无符号数无符号数运算结果是否超出范围,超出范围运算结果是否超出范围,超出范围后加上进位或借位运算结果仍然正确;后加上进位或借位运算结果仍然正确;n溢出标志溢出标志表示表示有符号数有符号数运算结果是否超出

26、范围,运算结果是否超出范围,超出范围超出范围后后运算结果不正确。运算结果不正确。溢出和进位的对比溢出和进位的对比n例例1:3AH + 7CHB6H无符号数运算:无符号数运算: 58124182范围内,无进位范围内,无进位有符号数运算:有符号数运算: 58124182范围外,有溢出范围外,有溢出n例例2:AAH + 7CH(1)26H无符号数运算:无符号数运算: 170124294范围外,有进位范围外,有进位有符号数运算:有符号数运算: 8612438范围内,无溢出范围内,无溢出如何运用溢出和进位如何运用溢出和进位n处理器对两个操作数进行运算时,按照处理器对两个操作数进行运算时,按照无符号数无符

27、号数求得结果,并相应设置进位标志求得结果,并相应设置进位标志CF;同时,根据;同时,根据是否超出是否超出有符号数有符号数的范围设置溢出标志的范围设置溢出标志OFn应该利用哪个标志,则由程序员来决定。也就是应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是就应该关心进位;认为是有符号数,则要注意是否溢出否溢出溢出的判断溢出的判断n判断运算结果是否溢出的简单规则:判断运算结果是否溢出的简单规则:p只有当只有当两个相同符号数两个相同符号数相加(包括不同符号数相加(包括不同符号数相减)

28、,而相减),而运算结果的符号运算结果的符号与原数据符号相反与原数据符号相反时,产生溢出;因为,此时的运算结果显然不时,产生溢出;因为,此时的运算结果显然不正确正确p其他情况下,则不会产生溢出其他情况下,则不会产生溢出辅助进位标志辅助进位标志AF(Auxiliary Carry Flag)n运算时运算时D3位(低半字节)有进位或借位时,位(低半字节)有进位或借位时,AF = 1;否则;否则AF = 0。n如:如:3AH + 7CHB6H,D3有进位:有进位:AF = 1n这个标志主要由处理器内部使用,用于十进制算这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心!术运算

29、调整指令中,用户一般不必关心!方向标志方向标志DF(Direction Flag)n用于串操作指令,控制地址的变化方向:用于串操作指令,控制地址的变化方向:p设置设置DF0,存储器地址自动增加;,存储器地址自动增加;p设置设置DF1,存储器地址自动减少。,存储器地址自动减少。nCLD指令复位方向标志:指令复位方向标志:DF0STD指令置位方向标志:指令置位方向标志:DF1中断允许标志中断允许标志IF(Interrupt-enable Flag)n用于控制外部可屏蔽中断是否可以被处理器响应:用于控制外部可屏蔽中断是否可以被处理器响应:p设置设置IF1,则允许中断;,则允许中断;p设置设置IF0,

30、则禁止中断。,则禁止中断。nCLI指令复位中断标志:指令复位中断标志:IF0STI指令置位中断标志:指令置位中断标志:IF1陷阱标志陷阱标志TF(Trap Flag)n用于控制处理器进入单步操作方式:用于控制处理器进入单步操作方式:p设置设置TFTF0 0,处理器正常工作;,处理器正常工作;p设置设置TFTF1 1,处理器单步执行指令。,处理器单步执行指令。n单步执行指令单步执行指令处理器在处理器在每条指令执行结束每条指令执行结束时,时,便产生一个编号为便产生一个编号为1的内部中断,的内部中断,这种内部中断称这种内部中断称为为单步中断单步中断n所以所以TF也称为也称为单步标志单步标志n利用单步

31、中断可对程序进行逐条指令的调试利用单步中断可对程序进行逐条指令的调试n这种逐条指令调试程序的方法就是这种逐条指令调试程序的方法就是单步调试单步调试3、段寄存器、段寄存器nCS(code segment)p代码段代码段,存放当前正运行的程序。,存放当前正运行的程序。nDS(data segment)p数据段数据段,存放当前正运行程序所用的数据。,存放当前正运行程序所用的数据。nSS(stack segment)p堆栈段堆栈段,定义了椎栈的所在区域。,定义了椎栈的所在区域。nES(extra segment)p附加段附加段,附加的一个辅助的数据区。,附加的一个辅助的数据区。2.4 存储器存储器2.

32、4.1 存储单元的地址和内容存储单元的地址和内容2.4.2 实模式存储器寻址实模式存储器寻址2.4.1 存储单元的地址和内容存储单元的地址和内容n计算机中信息的单位计算机中信息的单位p二进制位二进制位bit:存储一位二进制数:存储一位二进制数:0或或1p字节字节Byte:8个二进制位个二进制位,D7D0p字字Word:16位,位,2个字节,个字节,D15D0p双字双字DWord:32位,位,4个字节个字节,D31D0n最低有效位最低有效位LSB:数据的最低位,:数据的最低位,D0位位n最高有效位最高有效位MSB:数据的最高位,对应字节、字、:数据的最高位,对应字节、字、双字分别指双字分别指D7

33、、D15、D31位位数据的存储格式数据的存储格式D7 D0字节字节D15 D0字字D31 D0双字双字D7 D0 00006H78H 00005H56H 00004H12H 00003H34H 00002H 00001H 00000H低地址低地址存储单元及其存储内容存储单元及其存储内容n主存储器需要利用地址区别主存储器需要利用地址区别n每个存储单元都有一个编号;被称为存储器地址每个存储单元都有一个编号;被称为存储器地址n每个存储单元存放一个字节每个存储单元存放一个字节(8bit)的内容的内容n如:如: 0002H单元存放有一个数据单元存放有一个数据34H表达为:表达为:(0002H)34H多字

34、节数据存放方式多字节数据存放方式n多字节数据在存储器中占多字节数据在存储器中占连续的多个存储单元。连续的多个存储单元。n存放:存放:低字节存入低地址,高字节存入高地址低字节存入低地址,高字节存入高地址n表达:用表达:用低地址表示低地址表示多字节数据占据的地址空间多字节数据占据的地址空间n例如:例如:p2号号“字字”单元的内容为:单元的内容为:(0002H)= 1234Hp2号号“双字双字”单元的内容为:单元的内容为: (0002H)= 78561234H 80x86处处理理器器采采用用“低低对对低低、高高对对高高”:小端方式:小端方式Little Endian数据的地址对齐数据的地址对齐n同一

35、个存储器地址可以是字节单元地址、字单元同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等地址、双字单元地址等等n字单元安排在字单元安排在偶地址偶地址(xxx0B)、双字单元安排在)、双字单元安排在模模4地址(地址(xx00B)等,被称为)等,被称为“地址对齐地址对齐(Align)”n对于不对齐地址的数据,处理器访问时,需要额对于不对齐地址的数据,处理器访问时,需要额外的访问存储器时间外的访问存储器时间n应该将数据的地址对齐,以取得较高的存取速度应该将数据的地址对齐,以取得较高的存取速度2.4.2 实模式存储器寻址实模式存储器寻址1、存储器的分段管理、存储器的分段管理n8086 C

36、PU有有20条地址线条地址线p最大可寻址空间为最大可寻址空间为2201MBp物理地址范围从物理地址范围从00000HFFFFFHn8086CPU将将1MB空间分成许多空间分成许多逻辑段(逻辑段(Segment)p每个段最大限制为每个段最大限制为64KBp段地址的低段地址的低4位为位为0000Bn这样,一个存储单元除具有一个唯一的这样,一个存储单元除具有一个唯一的物理地址物理地址外,还具有多个外,还具有多个逻辑地址逻辑地址物理地址和逻辑地址物理地址和逻辑地址n每个物理存储单元有一个唯一的每个物理存储单元有一个唯一的20位编号,即物位编号,即物理地址:理地址:00000HFFFFFHn分段后用户编

37、程时,采用逻辑地址:分段后用户编程时,采用逻辑地址:段基地址段基地址 : 段内偏移地址段内偏移地址分隔符分隔符逻辑地址逻辑地址n段地址段地址说明逻辑段在主存中的起始位置说明逻辑段在主存中的起始位置n8086规定段地址必须是模规定段地址必须是模16地址:地址:xxxx0Hn省略低省略低4位位0000B,段地址就可以用,段地址就可以用16位数据表示,位数据表示,就能用就能用16位位段寄存器段寄存器表达段地址表达段地址n偏移地址偏移地址说明主存单元距离段起始位置的偏移量说明主存单元距离段起始位置的偏移量n每段不超过每段不超过64KB,偏移地址也可用,偏移地址也可用16位位数据表示数据表示物理地址和逻

38、辑地址的转换物理地址和逻辑地址的转换n将逻辑地址中的段地址左移将逻辑地址中的段地址左移4位,加上偏移地址就位,加上偏移地址就得到得到20位物理地址位物理地址n一个物理地址可以有多个逻辑地址一个物理地址可以有多个逻辑地址逻辑地址逻辑地址1460:100、1380:F00物理地址物理地址14700H、 14700H13800H F00H14700H14700H物理地址物理地址 100H加偏移地址加偏移地址14600H段地址左移段地址左移4 4位位课堂练习课堂练习n段地址段地址:偏移地址为偏移地址为4018H:0009H,则物理地址?,则物理地址?n段地址段地址:偏移地址为偏移地址为3125H:05

39、C3H,则物理地址?,则物理地址?40180H 0009H40189H31250H 05C3H31813H2、段寄存器、段寄存器64KB代码代码01500H64KB堆栈堆栈1CD00H64KB数据数据42000H64KB附加数据附加数据 B0000H代码段代码段CS0150H数据段数据段DS4200H堆栈段堆栈段SS1CD0H附加段附加段ESB000Hn一般情况下,各段存储器的分配是由操作系统负一般情况下,各段存储器的分配是由操作系统负责的,每段可独立占责的,每段可独立占64KB,各段也可以重叠。,各段也可以重叠。8 KB代码代码 02000H2 KB数据数据 04000H256B堆栈堆栈 4

40、8000HCS 0200HDS 0400HSS 0480HES存储器存储器n80x86的段寄存器和相应存放偏移地址的寄存器之的段寄存器和相应存放偏移地址的寄存器之间的默认组合间的默认组合段寄存器段寄存器偏移地址寄存器偏移地址寄存器CSIPSSSP、BPDSBX、DI、SI、一个、一个16位数位数ESDI(用于串指令)(用于串指令)本章小结本章小结1、计算机系统、计算机系统n计算机系统包括硬件和软件两部分。计算机系统包括硬件和软件两部分。n硬件结构包括硬件结构包括80X86微处理器、存储器和微处理器、存储器和I/O子系子系统,这三个主要部分由系统总线连接在一起。统,这三个主要部分由系统总线连接在

41、一起。n软件分为系统软件和应用软件。操作系统是系统软件分为系统软件和应用软件。操作系统是系统软件的核心,主要对系统的硬、软件资源进行管软件的核心,主要对系统的硬、软件资源进行管理,其中汇编程序是将汇编语言程序翻译成机器理,其中汇编程序是将汇编语言程序翻译成机器语言程序的一种系统程序。语言程序的一种系统程序。2、存储器、存储器n存储器以字节为单位存储信息,一个字节单元对存储器以字节为单位存储信息,一个字节单元对应一个地址编码,地址码用无符号整数来表示。应一个地址编码,地址码用无符号整数来表示。8086微型机既能处理微型机既能处理8位数据(字节),也能处理位数据(字节),也能处理16位数据(字),

42、字数据存储在连续的两个字节位数据(字),字数据存储在连续的两个字节单元中。单元中。n存储空间在逻辑上分为代码段、数据段、附加段存储空间在逻辑上分为代码段、数据段、附加段和堆栈段,每个段可寻址和堆栈段,每个段可寻址64KB,段的起始地址分,段的起始地址分别由段寄存器别由段寄存器CS、DS、ES、SS给出,段内地址给出,段内地址称为偏移地址。称为偏移地址。n存储器单元的物理地址(存储器单元的物理地址(20位)的计算:位)的计算:物理地址物理地址=段地址段地址24+偏移地址。偏移地址。n存储器的分段是很灵活的,各段之间可以相互独存储器的分段是很灵活的,各段之间可以相互独立,也可以互相重叠。立,也可以互相重叠。3、8086寄存器组寄存器组n通用数据寄存器(通用数据寄存器(AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL)n指针及变址寄存器(指针及变址寄存器(SP、BP、SI、DI)n段寄存器(段寄存器(CS、DS、ES、SS)n专用寄存器(专用寄存器(IP、FLAGS)作业作业n教材教材Page33T2.4、2.7、2.9

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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