第三章操作数的寻址方式.ppt_第1页
第三章操作数的寻址方式.ppt_第2页
第三章操作数的寻址方式.ppt_第3页
第三章操作数的寻址方式.ppt_第4页
第三章操作数的寻址方式.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

第三章操作数的寻址方式 第一节汇编指令格式 汇编指令的格式 指令助记符 操作数 操作数 注释 根据操作数的个数分 有以下三种格式 1 双操作数指令指令助记符目的操作数 dst 源操作数 src 运算之后 结果保存在目的操作数 例 movax 1234hmovbx 5678haddax bx 第一节汇编指令格式 2 单操作数指令指令助记符操作数只有把数据先送入隐含的寄存器中 才能执行此操作的指令 例 mulcx ax cx dx ax 3 无操作数指令指令助记符例 clc 0 cfstc 1 cf 第二节操作数的寻址方式 一 概述二 立即数寻址 imm 三 寄存器寻址 reg 四 存储器寻址 mem 概述 寻址方式 在指令中 指定操作数或操作数的存放位置的方法称为寻址方式 操作数出现在指令中 立即数寻址 操作数保存在寄存器中 寄存器寻址 操作数保存在内存 存储器寻址 操作数保存在i o端口 i o寻址 见第八章 第二节操作数的寻址方式 一 概述二 立即数寻址 imm 三 寄存器寻址 reg 四 存储器寻址 mem 立即数寻址 imm 操作数出现在指令中 是指令的一个组成部分 这样的操作数叫做立即数 以这种指定操作数的方式就叫做立即数寻址 例 movah 80haddax 1234hmovb1 12hmovw1 3456haddd1 32123456h其中 b1 w1和d1分别是字节 字和双字内存变量 执行过程 立即数寻址 imm 要点 目的操作数不能使用立即数寻址 例 mov1234h ax立即数可以是8 16位数 在双操作数指令 两个操作数的位数 数据类型必须相同 例 moval 1234hmoval bxmovbx almovax 70hmovax 70h 第二节操作数的寻址方式 一 概述二 立即数寻址 imm 三 寄存器寻址 reg 四 存储器寻址 mem 寄存器寻址 reg 指令所要的操作数已存储在某寄存器中 或把目标操作数存入寄存器 把在指令中指出所使用寄存器 寄存器符号 的寻址方式称为寄存器寻址方式 指令中可以引用的寄存器及其符号如下 8位寄存器有 ah al bh bl ch cl dh和dl 16位寄存器有 ax bx cx dx si di sp bp ip和段寄存器 执行过程 寄存器寻址 reg 例 addvarw axaddvarb bh 其中varw varb是字 字节内存变量 addbh 78haddax 1234hmovax bxmovbh al 要点 在双操作数指令 源操作数和目的操作数都可以使用寄存器寻址 第二节操作数的寻址方式 一 概述二 立即数寻址 imm 三 寄存器寻址 reg 四 存储器寻址 mem 存储器寻址 mem 指令所要的操作数存放在内存中 在指令中给出存储器的地址来指定操作数的方法称为存储器寻址方式 段地址默认的段寄存器ds或ss 如果使用段超越前缀 那么 段地址可存放在其它段寄存器 EA形成方式 分为5种 物理地址 段地址 16 有效地址 EA 1 直接寻址 指令所要的操作数存放在内存中 在指令中直接给出该操作数的有效地址 这种寻址方式为直接寻址方式 物理地址 段寄存器 16 有效地址 其中段地址在默认的ds 如果使用段超越前缀 那么 段地址可在其它段寄存器 执行过程 1 直接寻址 例 假设有指令 movax 2000h 在执行时 ds 3000h 内存单元32000h的值为1234h 问该指令执行后 ax的值是什么 指令变为 moval 2000h al的值是什么 PA ds 16 2000h 32000h ax 1234h al 34h 图示 1 直接寻址 例 指令 movbx es 1234h es 1000h 11234h 1234h 问该指令执行后 bx的值是什么 PA es 16 1234h 11234h bx 1234h 1 直接寻址 地址也常用内存变量名来表示 书写格式 v 1或 v 1 如movax varwmovax varw 与立即数寻址的区别在指令中 直接寻址给出操作数的EA 立即数寻址给出操作数 用数字书写时 格式不一样 movax 1234hmovax 1234 要点 2 寄存器间接寻址 操作数在存储器中 操作数的有效地址用si di bx和bp等四个寄存器之一来指定 称这种寻址方式为寄存器间接寻址方式 2 寄存器间接寻址 在不使用段超越前缀的情况下 有下列规定 若有效地址用si di和bx等之一来指定 则其缺省的段寄存器为ds 若有效地址用bp来指定 则其缺省的段寄存器为ss 即 堆栈段 例 movax bx ax ds 16 bx movax bp ax ss 16 bp movax es bp ax es 16 bp 2 寄存器间接寻址 例 假设有指令 movax bx 在执行时 ds 3000h bx 2000h 存储单元32000h的内容是1234h 问执行指令后 ax的值是什么 图示 PA ds 16 bx 3000h 16 2000h 32000h bx 1234h 3 寄存器相对寻址 操作数在存储器中 其有效地址是一个基址寄存器 bx bp 或变址寄存器 si di 的内容和指令中的8位 16位偏移量之和 在不使用段超越前缀的情况下 有下列规定 若有效地址用si di和bx等之一来指定 则其缺省的段寄存器为ds 若有效地址用bp来指定 则其缺省的段寄存器为ss 即 堆栈段 3 寄存器相对寻址 例 moval bx 1000h al ds 16 bx 1000h movax es bp 06h ax es 16 bp 06h 3 寄存器相对寻址 例 假设指令 movax bx 1000h 在执行它时 ds 3000h bx 1000h 内存单元32000h的内容为1234h 问该指令执行后 bx的值是什么 图示 EA bx 1000h 1000h 1000h 2000hPA ds 16 EA 3000h 16 2000h 32000h ax 1234h 4 基址变址寻址 操作数在存储器中 其有效地址是一个基址寄存器 bx bp 和一个变址寄存器 si di 的内容之和 在不使用段超越前缀的情况下 有下列规定 若有效地址用si di和bx等之一来指定 则其缺省的段寄存器为ds 若有效地址用bp来指定 则其缺省的段寄存器为ss 即 堆栈段 4 基址变址寻址 例 movax bx si ax ds 16 bx si movax bp di ax ss 16 bp di movax ds bp di ax ds 16 bp di 4 基址变址寻址 例 movax bx si 在执行时 ds 3000h bx 1500h si 500h 内存单元32000的内容为1234h 问指令执行后 ax的值是什么 EA bx si 1500h 500h 2000hPA ds 16 EA 3000h 16 2000h 32000h ax 1234h 图示 5 基址变址相对寻址 操作数在存储器中 其有效地址是一个基址寄存器 bx bp 的值 一个变址寄存器 si di 的值和指令中的8位 16位偏移量之和 在不使用段超越前缀的情况下 有下列规定 若有效地址用si di和bx等之一来指定 则其缺省的段寄存器为ds 若有效地址用bp来指定 则其缺省的段寄存器为ss 即 堆栈段 5 基址变址相对寻址 例 movax bx si 06h ax ds 16 bx si 06h movax bp si 06h ax ss 16 bx si 06h 图示 5 基址变址相对寻址 例 假设指令 movax bx si 1000h 在执行时 ds 3000h bx 700h si 300h 内存单元32000h的内容为1234h 问指令执行后 ax的值是什么 EA bx si 1000h 700h 300h 1000h 2000hPA ds 16 EA 1000h 16 2000h 32000h ax 1234h 图示 5 基址变址相对寻址 注意 相对基址加变址寻址方式有多种等价的书写方式 书写格式 bx si 1000h 1000h bx si 1000h bx si 1000h si bx 但格式 bx 1000h si si 1000h bx 等是错误的 即所用寄存器不能在 之外 该限制对寄存器相对寻址方式的书写也同样起作用 总结 一 立即数寻址二 寄存器寻址三 存储器寻址 不涉及寄存器 直接寻址涉及一个寄存器 寄存器间接寻址和寄存器相对寻址涉及两个寄存器 基址变址寻址和基址变址相对寻址 综合 例1指出下列操作数的寻址方式 1 bx 2 si 3 bp si 100 4 23 5 23 di 6 100 7 es bx 8 bx si 9 x x是变量名 10 num bx num是数组名 综合 例2判断下列操作数的寻址方式是否正确 若错误说明错误原因 1 cx 2 bx bp 3 ah 4 bl 44h 5 dx 100 6 si 100 7 si di 100 综合 例3 已知 DS 2000H BX 100H SI 2 存储单元 21200H 21203H 依次存放 十六进制 2A 4C B7 65 说明下列每条指令执行完后AX寄存器的内容 1 movax 1200h 2 movax bx 1101h 3 movax bx si 1100h 综合 例4 如图所示 取第三个字数据 dx 解 取第3个数据 其偏移量 num 3 1 直接寻址 movdx num 4 num为字变量 2 寄存

温馨提示

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

最新文档

评论

0/150

提交评论