第4章寻址方式.ppt_第1页
第4章寻址方式.ppt_第2页
第4章寻址方式.ppt_第3页
第4章寻址方式.ppt_第4页
第4章寻址方式.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第4章 寻址方式 本章知识要点 本章以Intel系列微处理器为例 对各种类型数据在计算机内的表示形式 常用的数值类型和格式 各种寻址方式进行了详尽地描述 对8086 Pentium中常用的寻址方式分门别类地进行了描述 说明 而且从科学发展的角度 特别把16位微处理器中没有的32位微处理器新增加的32位寻址方式进行了介绍 从每一种寻址方式操作中 可以领会到微机硬件是怎样进行操作的 本章内容是前面知识的细化 延伸和提高 本章重点是各种寻址方式 数据在计算机内的表示形式 4 1数据类型1数据在计算机内的表示为对各种数据长度操作均给以支持 Pentium在存储器中存放各种类型数据的地址是按字节进行编址 可以访问一个字节地址 可以访问16位 双字节 地址 并将这种地址称之为字可以访问32位 4字节 地址 也就是双字地址 同时约定 无论是字地址还是双字地址 均系指低序位字节地址 存储器中的字节 字 双字和四倍字是这样规定的 如图所示 图展示出了字 双字和四字在存储器中各字节的存放次序 1 整数 所谓整数指的是Pentium支持的字节整数 字整数 双字整数 它们分别是保存在一个8位字节内 或一个16位的字之内 或一个32位双字内的带符号的二进制数 2 无符号整数 无符号整数 实际上就是不带符号的二进制数 它既可以是8个二进制位的字节数 也可以是16个二进制位的字操作数 还可以是32个二进制位的双字操作数 图中展示出了无符号字节整数 无符号字整数以及无符号双字整数的二进制表示形式 3 二 十进制整数 BCD整数 BCD指的是二进制编码的十进制数 也就是说用4位二进制编码 来表示十进制的从0至9范围内的一位十进制数的方法 非压缩的十进制数被当成不带符号的字节存放的 在每一个字节内仅仅存放一位十进制数 4 压缩二 十进制整数 压缩的BCD整数 也是指用二进制代码表示的十进制的从0到9的数 5 近指针 所谓近指针指的是一个32位的有效地址 近指针是在一个段范围内的一个偏移量 图中展示出了在Pentium内使用的近指针的表示形式 6 远指针 所谓远指针指的是一个48位的逻辑地址 它是由一个16位的段选择符和一个32位的偏移量两部分构成 7 位字段所谓位字段是位的相邻序列 是由连续的一系列的位组成的 位字段可以从任何一个字中的任何一位开始算起 但最多只能包含32位图中展示出了在Pentium内使用的位字段的表示形式 8 位串位串是位的相邻序列 是由连续的一系列的位组成 位串也可以是从任何一个字节的任何一个位开始算起 只不过是位串的规模大的很 一个位串可以拥有232 1位图中展示出了在Pentium内使用的位串的表示形式 9 字节串所谓字节串是字节 字或双字的相邻序列 是由连续的一系列的字节 字或双字组成一种数据 图中展示出了在Pentium内使用的字节串的表示形式 10 浮点类型浮点数据又称实数 在许多高级语言中经常要使用实数这种数据类型 根据需要浮点数据又可以分为单精度 双精度和扩展精度浮点数 1 单精度数据 全长用32位二进制数表示 其中 位31这一位表示符号位 位30 位23这8位表示的是浮点数据的指数 位22 位0这23位表示是浮点数据的有效精度位 且被认为其精度是24位的 这是由于在这24位的精度内包括一个默认的隐藏位的缘故 因此只要有效精度位23位就可以表示24位的精度 2 双精度数据全长用64位二进制数表示 其中 位63这一位表示符号位 位62 位53这10位表示的是浮点数据的指数 位52 位0这53位表示是浮点数据的有效精度 这种双精度数据所能表示的数据范围为10 308 3 扩展精度数据全长用80位二进制数表示 其中 位79这一位表示符号位 位78 位64这15位表示的是浮点数据的指数 位63 位0这64位表示是浮点数据的有效精度 4 2寻址方式 寻址方式是指微处理器获取操作数的方式 一条指令必须说明两个问题 一是要说明这条指令要进行什么操作 二是要说明这条指令的操作数位于何地 一条指令可以对零个或多个操作数操作 零个操作数的指令的例子是NOP指令 即没有数 操作数可以位于下列位置处 1 指令本身有操作数 即立即操作数 2 操作数在寄存器中 3 操作数在存储器中 4 操作数在 端口 1 立即操作数寻址是说指令本身带的数据作为一个操作数用 即指令所用的操作数是指令自身所拥有的 像单操作数指令或两操作数指令即是这类指令 凡指令本身所拥有的操作数就称之为立即操作数 例如 MOVAX 1999H 这条指令的功能是将16进制的立即操作数1999传送到AX寄存器 由于立即操作数1999是16位的 其中存放在代码段的高地址字节中的内容被传送到AH寄存器 低地址字节中的内容被传送到AL寄存器 如图所示 2 寄存器操作数寻址将操作数存放在32位通用寄存器中 或存放在16位通用寄存器中 或存放在8位通用寄存器中 并对操作数进行访问操作 称之为寄存器操作数寻址 指令MOVEDX EAX 3存储器操作数寻址 1 直接寻址直接寻址是一种很简单的寻址方式 虽然操作数存放在存储器内 但在这种直接寻址方式下 操作数的有效地址是由指令直接给出 例如 MOVEAX LISTT这条指令的功能是 将地址LISTT处4个连续字节地址中的32位操作数传送到寄存器EAX内 LISTT是存储器中存储单元的符号地址 LISTT的实际地址是1230H这个十六进制地址 2 寄存器间接寻址寄存器间接寻址这种寻址方式 可以对存储器内的任何存储单元的数据进行寻址 只是要借助于在BP BX DI和SI这些寄存器内保存的偏移地址 例 如果寄存器BX的内容是1000H 在执行MOVAX BX 指令之后 地址1000H处的字内容被传送到AX寄存器中 如图所示 3 基地址加变址寻址所谓基地址加变址寻址 就是操作数位于所选的存储器段内 操作数的有效地址由一个基地址寄存器的内容再加上一个变址寄存器的内容构成 通常 在基地址寄存器内保存的是位于存储器内数组的起始地址 而在变址寄存器内保存的是数组元素的相对位置 每次BP寄存器在对存储器内的数组进行寻址时 由BP寄存器和堆栈段寄存器两者生成有效地址 例如 MOVEDX EAX EBX 4 寄存器相对寻址寄存器相对寻址类似于基址加变址寻址 只不过是在寄存器相对寻址方式下 在变址寄存器或基地址寄存器的内容中 加上了一个位移量 而形成了操作数的有效地址的值 然后是用这个有效地址的值 对存储器中的操作数进行寻址 在进行32位寻址操作时 8个32位的通用寄存器除了ESP以外 都可以作为基地址或变址寄存器使用 操作数的有效地址是由基地址或变址寄存器的内容再加上一个8位数值 16位数值或32位数值的位移量组成 例如 MOVEAX ECX 1AH 指令是 将数据段中由ECX寄存器上的内容 再加上1A这个数值所形成的操作数地址中的内容传送至EAX寄存器 指令MOVAX BX 1000H 的操作过程如图示 5 相对基地址加变址寻址相对基地址加变址寻址类似于基地址加变址寻址 它除了需要加上位移量之外 仍然需要用基地址寄存器和变址寄存器的内容来形成操作数的地址 也就是说 它是用基址寄存器和变址寄存器上的内容再加上位移量 从而形成操作数在存储器中的有效地址 这种寻址方式常被用来对存储器内的二维数组的数组元素进行寻址 例如 MOVEDX EBX ECX 200H 图中以指令MOVEAX BX SI 100H 执行过程为例 展示出用相对基址加变址寻址方式进行寻址的操作过程 6 带比例因子的变址寻址这种寻址方式是80386 Pentium微处理器所特有的 在对存储器进行寻址操作时 要用到两个寄存器 第1个是基地址寄存器 第2个是变址寄存器 它们均是32位的寄存器 这种寻址 只有第2个变址寄存器才会与比例因子相乘 变址寄存器内容乘以比例因子后 再加上位移量即可形成操作数的32位的有效地址 比例因子可以是1 2 4或8 比例因子为1是默认的 例如 指令MOVAL EBX ECX 就没有在变址寄存器ECX前面显式地乘以1 比例因子为2用来对字数组中的数组元素进行寻址操作的比例因子为4用来对双字数组中的数组元素进行寻址 例如 MOVEAX EBX 4 ECX 比例因子为8用来对四字数组中的数组元素进行寻址 7 基地址加比例因子变址寻址这种寻址方式是在前面所述带比例因子的变址寻址方式的基础上 再加上一个位移量就构成了这种寻址方式 例如 MOV EAX 2 EBX 100H DX这条指令的功能是将16位寄存器DX之内容存储到 由EAX内容加上EBX寄存器内

温馨提示

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

评论

0/150

提交评论