DJ4 寻址方式.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DJ4 寻址方式

* * 2.3 寻址方式 ? 寻址方式的由来 — 指令跟踪方式 — 数据如何跟踪: ? 寻址方式 寻找(形成)操作数地址的方式。 形成操作数地址的过程 — 寻址过程 ? 如何形成操作数地址 — 16位单字双操作数指令 ? D1 D2 指令直接提供地址 由此产生寻址方式 — 双字和多字指令 — 16位单字单操作数指令 ? D1 指令直接提供地址 D1 ? D2 指令直接提供地址 — 单字指令 + 寻址算法 ? X D 15 10 9 7 6 0 X: 寻址特征码; D: 形式地址 实际地址(有效地址): 设计人员制定的算法 某种运算 E= f(X) ? D 操作码? 立即数S 1. 立即寻址 指令直接给出操作数。 2.3.1 常见寻址方式 定长格式: 变长格式: 操作数在指令中的长度固定、有限 操作数在指令之后, 长度可变。 用来提供常数、设置初值等。MOV CX, 200 基本指令 立即数S 操作码? 有效地址D 2. 直接寻址 指令直接给出操作数地址。 存储单元号 (操作数在存储器的单元中) (1) 存储器直接寻址 ?定长格式 D的位数有限, 限制访存范围 寄存器号 (操作数在寄存器中) ?变长格式 D的位数可覆盖整个存储空间 Intel 80?86采用变长格式 基本指令 DL DH 操作数 S = ( D ) 例: MOV AX, [2000H] 基本指令 D 或 操作码? 寄存器号R 存储单元号 (操作数在存储器中) (2) 寄存器直接寻址 (寄存器寻址) 格式 R所占位数少; 比访问存储器快 操作数 S = ( R ) 例: INC SI 直接寻址用于访问固定的存储单元或寄存器。 3. 间接寻址 指令给出操作数的间接地址。 寄存器号 (操作数在存储器中) 格式 (1) 存储器间址 操作码? 间接地址D 操作数 S = (( D )) 0060 间址单元 D=0030 地址指针 M 0060 .... S ... 操作数 操作码? 寄存器号R (2) 寄存器间址 格式 ?寄存器所占位数少; 一般可提供全字长地址码; 操作数 S=(( R )) 例: MOV AX, [SI] ?指针不变(由指令指定), 指针内容可变, 使同一指令可指向不同存储单元, 以实现程序的循环、共享, 并提供转移地址。 0040 M S ... ... ... 优点: R=02 地址指针 0040 ?修改寄存器内容比修改存储器内容快; 格式: (3) 堆栈寻址 操作码? 堆栈指针SP 操作数 S = ((SP)) ... S ... M ... SP 0070 栈顶 压栈: SP自动减1, 再存数。 出栈: 栈顶 SP M S ... ... ... 低 高 SP既可出现在指令中, 也可隐含约定。 (SP) – 1 SP, 自减型间址。 (SP)+1 SP, 自增型间址。 先取数, SP再自动加1。 格式 (1) 变址寻址 4. 变址、基址寻址及其变化 指令给出一个寄存器号和一个地址量, 寄存器内容与地址量之和为有效地址。 形式地址 操作数 S = (( RX ) + D ) 基准地址 修改量 例: MOV COUNT[DI], BX 操作码? RX D 变址寄存器号 D的位数有限, 若不能提供全字长地址码, 会使访存空间受到限制。 例. 用变址方式访问一组连续区间内的数组元素。 ? D为存储区首地址; ? (RX)为所访单元距离首地址的长度; ? RX初值为0, 每访问一个单元, (RX)+1。 D=首址 n-1 ... 0 1 2 ... D+1 D+2 D+n-1 ... 缺点: 比如, 存储空间为1M,则D的长度应为20位。 格式 (2) 基址寻址 指令给出一个寄存器号和一个地址量, 寄存器内容与地址量之和为有效地址。 操作码? Rb D 基址寄存器号 位移量 操作数 S = ((Rb)+ D) 相对于基址的位移 基准地址 例: MOV COUNT[BX], AX MOV AX , [BX][DI] BX: 基址寄存器 COUNT、 [DI] 是位移量 Rb Rb D=2 D=2 M ... ... …... …... ?改变Rb的内容, 程序能访问存储空间中任何一个定长区间; ?改变Rb的内容, 程序能访问存储空间中任何一个与基址保持相同距离的单

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档