80X86汇编语言电子教案(2存储器讲稿).doc_第1页
80X86汇编语言电子教案(2存储器讲稿).doc_第2页
80X86汇编语言电子教案(2存储器讲稿).doc_第3页
80X86汇编语言电子教案(2存储器讲稿).doc_第4页
80X86汇编语言电子教案(2存储器讲稿).doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

80X86汇编语言电子教案(2存储器讲稿) 第二章80X86计算机组织复习80X86寄存器组程序可见的寄存器可以分为通用寄存器专用寄存器和段寄存器DH DLCHCLAXBXCXDXBH BLSPBPDISIIPFLAGSCSDSESSSFSGS80X86程序可见的寄存器组EAXEBXECXEDXESPEBPEDIESIEIPEFLAGSAH AL累加器基址变址计数数据堆栈指针基址指针目的变址源变址指令指针标志代码数据附加堆栈阴影区以外的寄存器是8086/808880286寄存器组它们都是16位的按1通用寄存器存放数据和地址有81632位2专用寄存器指令指针堆栈指针标志寄存器有1632位3段寄存器用来直接或间接地存放段地址只有16位用途分为3类OF DFIF TFSF ZFAF PFCF15121110987654321032标志寄存器例20FFFFH8000H有符号无符号0FFFFH负数值+8000H负数值17FFFH正数值OF1SF0CF1ZF0例10A72EH+76B9H有符号无符号0A72EH负数值+76B9H正数值11DE7H正数值OF0SF0CF1ZF0-58D2补=0A72EH计算机系统中央处?机CPU总线控制逻辑接口接口存储器大容?存储器I/O设备I/O子系统系统总线.硬件组成三.存储器存储器是用来存放程序数据的记忆装置一存储单元的地址和内容D存储器以字节8bit为单位存储信息70123456字节D每个字节单元有一个地址从0编号顺序加1为了正确地存放或取得信息每一个字节单元给以一个唯一的存储器地址称为物?地址在机器?地址是用二进制数来表示的它是无符号整数地址的书写格式为十六进制数一存储单元的地址D地址用二进制无符号数表示写成十六进制D16位二进制无符号数可表示216=65536=64K个地址十六进制表示用四位0000HFFFFH0000000100020003000E000F00100011001E001F00200021002E002FFFE0FFE1FFEE FFEFFFF0FFF1FFFE FFFF8086/8088的地址总线为20位它可访问的字节单元地址范围为00000H FFFFFH80286的地址总线宽度为24位它可访问的地址单元范围为000000H FFFFFFH8038680486和Pentium的地址总线宽度为32位它可访问的地址单元范围为00000000H FFFFFFFFHPentiumPro和Pentium的地址总线宽度为36位它可访问的地址单元范围为000000000H FFFFFFFFFH8086/8088和80286的字长为16位字80386到Pentinum机的字长32位双字70123456高位字节07815N N+1低位字高位字015N N+13116N+2N+3低位双字高位双字0N N+13163N+2N+3N+4N+5N+6N+732字节字双字4字可表示的基本数据类型有D双字四倍字单元地址依照高高低低原则存储用其最低地址来表示高位字节07815字低位字节高地址低地址字单元地址一个16位字由连续的两个字节组成那么它在内存?怎样存放呢34H12H0004H0005H该字单元的内容为1234H还是3412H呢字单元的地址为0004H还是0005HD低位字节存入低地址高位字节存入高地址高高低低原则D字单元地址用它的低地址来表示80X861514131211109876543210字高位字节低位字节001001100001111076543210100111110000H(0000H)=9FH001001100001H(0001H)=26H000111100002H(0002H)=1EH110101110003H(0003H)=D7H存储器(0000H)=269FH(0002H)=0D71EH(0001H)=1E26H字节地址内容我们已经学习了存储单元的编址那么存储单元的内容如何表示呢二存储单元的内容存储单元中存放的信息称为该存储单元的内容表示为地址从上例可以看出一个地址既可以是字节地址也可以是字地址双字地址字单元的地址既可以为奇数也可以为偶数存储器按字节编址从0开始顺序增1数据的存放遵循高高低低的原则低地址表示数据单元的地址例如?对于放在寄存器R中的内容我们也采用这种表示方式如R地址为56780H的字节存储单元的内容为34H则可以表示为56780H34H?地址为56781H的字节存储单元的内容为56H则可以表示为56780H字5634H34H56H56780H56781H存储单元的存放形式如右二实模式下存储器寻址80X86中除8086/8088只能在实模式下工作外其他微处?器均可在实模式或保护模式下工作实模式下允许访问的最大寻址空间为1MB而8086/8088的地址总线宽度为20位其最大寻址空间正好是1MB实际上实模式就是为8086/8088而设计的工作方式实模式要解决的问题是用16位字长的机器提供20位地址解决的方法为存储器的分段寻址1D20根地址线220=1024K=1M字节存储空间地址范围00000HFFFFFHD16位字长可表示的地址范围为0000HFFFFH可寻址的空间为64K如何用16位字长去寻址20位的地址空间呢存储器地址的分段?分段管?目的?分段管?原?分段管?特点?分段管?举例分段管?目的分段管?原?D1M字节存储空间需被划分为?干逻辑段1M逻辑段分段原则1每个逻辑段的起始地址必须是16的倍数即从小段开始小段首地址:低4位为全0(一小段16字节)有:00000H,00010H,FFFF0H2每个逻辑段的最大长度为64K逻辑段号逻辑段内地址均为16位存储器分段最多可以把1M字节空间划分为几个段最少可以划分为几个段答最多64K个段最少16个段分段实质将20位地址用两个16位来表示段地址段内偏移地址例如20位地址12345H的表示12345H10000H2345H1000H162345H12340H0005H1234H160005H12345H1000H2345H1234H0005H?分段后的寻址:?物?地址:每个存储单元对应的20位物?地址?段地址每一小段的16位起始地址段值段基址?段内偏移地址段内相对于段起始地址的16位偏移?段内偏移有效地址EA?逻辑地址段地址偏移地址20位地址12345H还可以表哪些?同的逻辑地址总共可以表示多少?同的逻辑地址?物?地址的计算:PC机通过地址产生和总线控制逻辑将16位段地址和16位偏移地址合并生成20位物?地址物?地址=16d段地址+偏移地址16位段地址16位偏移地址0000+20位物?地址分段管?的特点?存储单元物?地址具有唯一性?组成物?地址的段地址和偏移地址?唯一?例题段地址和偏移地址为3017000A的物?单元地址是多少?段地址和偏移地址是3015002A和3010007A呢解3017000A3017A3015002A3017A3010007A3017A2段寄存器的引用采用存储器地址分段寻址程序设计中?使用物?地址只需采用段值和偏移来指定需要存取的存储单元段寄存器CS代码段存放当前正在运?的程序段寄存器DS数据段存放当前运?程序所用的数据段寄存器SS堆栈段定义了堆栈所在的区域段寄存器ES附加段是一个辅助的数据区808680286中的段寄存器有四个如下80386及后继的80X86的段寄存器有六个如下包括上述四个段寄存器段寄存器FS附加段是一个辅助的数据区段寄存器GS附加段是一个辅助的数据区除非专门指定一般情况下各段在存储器中的分配是由操作系统负责的每个段可以独立占用64KB存储区各段也允许重叠堆栈段00000HSSSPES附加段地址R或16位偏移DS数据段地址R或16位偏移CS代码段IPFFFFFH8086/8088或80286的存储器分段示意图?例.设代码段中,程序占8K(2000H)字节存储区,数据占2K(800H)字节,堆栈占256100H字节,试画出该程序在存储区的可能存放形式(假定机器是8086段的存放顺序为:CS,DS,SS,ES)?分析:1.?存储空间足够大,三个段可以按最大段64K分配2.?存储空间紧张,则按照每个段实际占用空间分配分配方案如下:?方案164K代码64K堆栈64K数据64K附加段01500H11500H1CD00H2CD00H42000H52000HB0000HC0000HCSDSSSES0150H1CD0H4200HB000H?方案2CSDSSS0200H0400H0480H?段重叠的存储单元,可通过?同段地址寻到8K代码2K数据256堆栈02000H04000H04800H04900H12000H64K字节14000H64K字节段重叠14800H?程序某一区域如数据区长度超过64KB那么就要在两个或多个数据段中存取数据当需要改变被访问数据段时必须改变数据段寄存器DS内的段值通常情况下在指令中?指明所需的段寄存器这由段寄存器的引用约定来保持程序设计与执?的一致性所谓段寄存器引用约定就是相对于?同的存储器操作引用相应的段寄存器形成物?地址例如取指令在代码段中寻址CS IP堆栈操作在堆栈段中寻址SS SP或SS BP源数据?在数据段中寻址DS SI目的数据?在附加段中寻址ES DI其他数据存取通常在数据段中寻址DS EA另外程序员有权选择段寄存器即使用段超越前缀例如在存取一般存储器操作数时段寄存器?一定是DS它可以是CS ESSS例解首地址为70A0H10H+0DDF6H=7E7F6H末地址为7E7F6H+10H-12=7E814H一个16个字的数据区它的起始地址为70A0DDF6请写出这个数据区首末字单元的物?地址例写出下列存储器地址的段地址偏移地址和物?地址12314003521FD0000A二保护方式下存储器寻址?采用保护方式的原因?保护方式存储器寻址简介允许多个用?采用保护方式的原因1实模式下的寻址空间为1MB而80286提供16MB80386及其后继机型均提供4GB或?大的地址空间系统首先要解决的问题是如何寻址2引出保护模式?重要的原因是为支持多任务处?在保护方式下机器可提供虚拟存储的管?和多任务的管?机实现运?程序空间主存储器空间的用户程序户同时在机器上工作多道运?的程序之间必须相互隔离使得一个应用程序的缺陷或故障?会破坏系统也?会影响其他程序的运?引入保护模式保护方式存储器寻址简介1逻辑地址实模式地址段址偏移编程时未直接给定存储单元的物?地址物?地址通过计算得到保护方式地址选择器偏移选择器存放在段寄存器中但?直接表示段基地址而是由操作系统通过一定的方法取得段基址再加偏移得到物?地址在保护方式下计算物?地址?复杂存储器选择器偏移地址地址转换所选存储单元段基地址所选段最大4GB+段基地址保护模式存储器寻址示意图2描述符其内容由系统设置?由用户建立作用描述段的大小段在M中的位置控制和状态信息组成基地址界限访问权附加字段四部分其中1基地址指定段的起始地址2界限存放段的长度3访问权说明该段在系统中的功能并给出该

温馨提示

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

评论

0/150

提交评论