DJ4 寻址方式_第1页
DJ4 寻址方式_第2页
DJ4 寻址方式_第3页
DJ4 寻址方式_第4页
DJ4 寻址方式_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、2.3 寻址方式寻址方式 寻址方式的由来寻址方式的由来 指令跟踪方式指令跟踪方式 数据如何跟踪数据如何跟踪: 寻址方式寻址方式 寻找寻找(形成形成)操作数地址的方式。操作数地址的方式。形成操作数地址的过程形成操作数地址的过程 寻址过程寻址过程 如何形成操作数地址如何形成操作数地址 16位单字双操作数指令位单字双操作数指令 D1 D2指令直接提供地址指令直接提供地址由此产生寻址方式由此产生寻址方式 双字和多字指令双字和多字指令 16位单字单操作数指令位单字单操作数指令 D1指令直接提供地址指令直接提供地址 D1 D2指令直接提供地址指令直接提供地址 单字指令单字指令 + 寻址算法寻址算法 X D

2、15 10 9 7 6 0X: 寻址特征码寻址特征码;D: 形式地址形式地址实际地址实际地址(有效地址有效地址):设计人员制定的算法设计人员制定的算法某种运算某种运算E= f(X) D操作码操作码 立即数立即数S1. 立即寻址立即寻址指令直接给出操作数。指令直接给出操作数。2.3.1 常见寻址方式常见寻址方式定长格式定长格式:变长格式变长格式:操作数在指令中的操作数在指令中的长度固定、有限长度固定、有限操作数在指令之操作数在指令之后后, 长度可变。长度可变。用来提供常数、设置初值等用来提供常数、设置初值等。MOV CX, 200基本指令基本指令 立即数立即数S 操作码操作码 有效地址有效地址D

3、 2. 直接寻址直接寻址指令直接给出操作数地址。指令直接给出操作数地址。存储单元号存储单元号 ( (操作数在操作数在存储器的单元存储器的单元中中) ) (1) 存储器直接寻址存储器直接寻址定长格式定长格式D的位数有限的位数有限, 限制访存范围限制访存范围寄存器号寄存器号( (操作数在操作数在寄存器寄存器中中) )变长格式变长格式D的位数可覆盖整个存储空间的位数可覆盖整个存储空间Intel 80 86采用变长格式采用变长格式基本指令基本指令 DL DH操作数操作数 S = ( D )例例: MOV AX, 2000H基本指令基本指令 D或或操作码操作码 寄存器号寄存器号R 存储单元号存储单元号

4、(操作操作数在存储器中数在存储器中)(2) 寄存器直接寻址寄存器直接寻址 (寄存器寻址寄存器寻址)格式格式R所占位数少;所占位数少;比访问存储器快比访问存储器快操作数操作数 S = ( R ) 例例: INC SI直接寻址用于访问固定的存储单元或寄存器直接寻址用于访问固定的存储单元或寄存器。3. 间接寻址间接寻址指令给出操作数的间接地址。指令给出操作数的间接地址。寄存器号寄存器号(操作操作数在存储器中数在存储器中)格式格式(1) 存储器间址存储器间址 操作码操作码 间接地址间接地址D 操作数操作数 S = ( D )0060间址单元间址单元D=0030地址指针地址指针 M0060. S.操作数

5、操作数操作码操作码 寄存器号寄存器号R (2) 寄存器间址寄存器间址格式格式寄存器所占位数少寄存器所占位数少; 一般可提供全字长地址码一般可提供全字长地址码; 操作数操作数 S=S=( R )例例: MOV AX, SI 指针不变指针不变(由指令指定由指令指定), 指针内容可变指针内容可变, 使同使同一指令可指向不同存储单元一指令可指向不同存储单元, 以实现程序的以实现程序的循环、共享循环、共享, 并提供转移地址。并提供转移地址。0040 M S.优点优点:R=R=02地址指针地址指针 0040修改寄存器内容比修改存储器内容快修改寄存器内容比修改存储器内容快;格式格式:(3) 堆栈寻址堆栈寻址

6、操作码操作码 堆栈指针堆栈指针SP 操作数操作数 S = (SP). S. M.SPSP 0070栈顶栈顶压栈压栈: SP自动减自动减1, 再存数。再存数。出栈出栈:栈顶栈顶SP M S.低低高高SP既可出现在指令中既可出现在指令中, 也可隐含约定也可隐含约定。(SP) 1SP, 自减型间址。自减型间址。(SP)+1SP, 自增型间址。自增型间址。先取数先取数, SP再自动加再自动加1。格式格式(1) 变址寻址变址寻址4. 变址、基址寻址及其变化变址、基址寻址及其变化指令给出一个指令给出一个寄存器号寄存器号和一个和一个地址量地址量, 寄存器寄存器内容与地址量之和为有效地址。内容与地址量之和为有

7、效地址。形式地址形式地址操作数操作数 S = ( RX ) + D )基准地址基准地址修改量修改量例例: MOV COUNTDI, BX 操作码操作码 RX D 变址寄存器号变址寄存器号D的位数有限的位数有限, 若不能提若不能提供全字长地址码供全字长地址码, 会使访会使访存空间受到限制。存空间受到限制。例例. 用变址方式访问一组连续区间内的数组元素。用变址方式访问一组连续区间内的数组元素。 D为存储区首地址为存储区首地址; (RX)为所访单元距离首为所访单元距离首地地址的长度址的长度; RX初值为初值为0, 每访问一个单元每访问一个单元, (RX)+1。D=D=首址首址n-1.012.D+1D

8、+2D+n-1 .缺点缺点:比如比如, 存储空间为存储空间为1M,则则D的长度应为的长度应为20位。位。格式格式(2 2) 基址寻址基址寻址指令给出一个寄存器号和一个地址量指令给出一个寄存器号和一个地址量, 寄存器寄存器内容与地址量之和为有效地址。内容与地址量之和为有效地址。操作码操作码 Rb D 基址寄存器号基址寄存器号位移量位移量操作数操作数 S = (Rb)+ D)相对于基址的位移相对于基址的位移基准地址基准地址例例: MOV COUNTBX, AX MOV AX , BXDI BX: 基址寄存器基址寄存器COUNT、 DI 是位移量是位移量Rb RbD=2D=2 M.改变改变Rb的内容

9、的内容, 程序能程序能访问存储空间中任何一访问存储空间中任何一个定长区间个定长区间;改变改变Rb的内容的内容, 程序能程序能访问存储空间中任何一访问存储空间中任何一个与基址保持相同距离个与基址保持相同距离的单元。的单元。 4K 4KRb M.RbD=2D=2学生姓名学生姓名性别性别性别性别年龄年龄年龄年龄学生名学生名便于访问二维数组中某类指定的元素便于访问二维数组中某类指定的元素学生名学生名 性别性别 年龄年龄 . XXX YY Z . XXX YY Z . XXX YY Z .RbD实地址模式实地址模式基址方式的一种变化基址方式的一种变化: 80X86物理地址计算物理地址计算将段寄存器提供的

10、将段寄存器提供的16位基地址左移位基地址左移4位位, 与与16位偏移量相加位偏移量相加, 得到得到20位物理地址。位物理地址。内存分段管理内存分段管理, 64K为一个段。为一个段。 变址与基址的区别变址与基址的区别:变址变址: 指令提供指令提供基准量基准量(不变不变), 变址寄存器变址寄存器提供提供修改量修改量(可变可变); 适于处理一维数组。适于处理一维数组。基址基址: 指令提供指令提供位移量位移量(不变不变), 基址寄存器基址寄存器提提供供基准量基准量(可变可变); 用于扩大有限字长指用于扩大有限字长指令的访存空间。令的访存空间。例:例:MOV COUNTBXSI, DX(3) 基址加变址

11、基址加变址指令给出指令给出两个寄存器号两个寄存器号和一个和一个地址量地址量, 寄存器寄存器内容与地址量之和为有效地址。内容与地址量之和为有效地址。格式格式 操作码操作码 RX Rb D 变址寄存器号变址寄存器号位移量位移量基址寄存器号基址寄存器号操作数操作数 S =(RX)+(Rb)+ D)便于处理两维数组。便于处理两维数组。例例. 访问二维表格访问二维表格 令:令: (Rb)+D指向各行起始指向各行起始; (RX)指向一行中各元素指向一行中各元素。(Rb)+D(RX)D=0;Rb初值为表格首址初值为表格首址, 每访问一行每访问一行, (Rb)+4;RX初值为初值为0, 每访问一列每访问一列,

12、 (RX)+1。(4) 相对寻址相对寻址 指令给出位移量指令给出位移量, PC内容与位移量之和为有内容与位移量之和为有效地址。效地址。非相对寻址可能的缺点非相对寻址可能的缺点:程序从程序从1000地址开始存放地址开始存放程序存放位置发生变化后程序存放位置发生变化后, 将导致错误结果将导致错误结果程序存放地址发生变化程序存放地址发生变化 JP 2000 ADD A, B.10002000 JP 2000 ADD A, B.50006000如果转移地址按如下形式给出如果转移地址按如下形式给出: JP D ADD A, B.10002000D(两条指令间的相对距离两条指令间的相对距离)如何跟踪相对距

13、离?如何跟踪相对距离?随着程序执行随着程序执行, PC值动态变化值动态变化, 因此可按因此可按与与PC值之间的相对距离。值之间的相对距离。如果程序存放地址发生变化如果程序存放地址发生变化, 但这个相对但这个相对距离没有变距离没有变, 程序仍可正确执行。程序仍可正确执行。格式格式操作码操作码 PC D 位移量位移量或隐含指定或隐含指定操作数操作数 S =(PC)D)有效地址相对有效地址相对PC上下浮动上下浮动, 给编程带来方便。给编程带来方便。例例: JMP SHORT ADD (相对于指令指针相对于指令指针PC) 相对寻址的指令格式相对寻址的指令格式格式格式(5) 页面寻址页面寻址指令给出位移

14、量指令给出位移量, PC高位部分与位移量高位部分与位移量拼接拼接,形成有效地址。形成有效地址。操作码操作码 PC D 位移量位移量或隐含指定或隐含指定操作数操作数 S =(PC)H, D)页号页号页内地址页内地址例例. 存储器为存储器为64KB, 分为分为256页页, 每页每页256B。用于页式管理存储系用于页式管理存储系统。统。PC的高位的高位(页号页号)指明了当前程序运行指明了当前程序运行在哪一个页面。在哪一个页面。(6) 扩展型变址寻址扩展型变址寻址(变址变址+间址间址) 先变址后间址:先变址后间址:S=( ( (R)+D ) ) 先间址后变址:先间址后变址:S=( (R)+(D) )变

15、址变址间址间址间址间址变址变址PC0165H017CH7C.S2.3.2 对寻址方式的说明方式对寻址方式的说明方式 1. 操作码隐含说明不同寻址方式操作码隐含说明不同寻址方式例例. 某计算机指令操作码最高两位某计算机指令操作码最高两位00:RR型指令型指令; 寄存器寄存器 寄存器寄存器 寻址寻址01:RX型指令型指令; 寄存器寄存器 变址变址 寻址寻址10:SI型指令型指令; 基址基址 立即立即 寻址寻址11:SS型指令型指令; 基址基址 基址基址 寻址寻址2. 指令中设置专门字段说明寻址方式指令中设置专门字段说明寻址方式例例. 某计算机指令的每个地址字段中各设置某计算机指令的每个地址字段中各

16、设置一个一个3位的寻址方式字段。位的寻址方式字段。源地址字段源地址字段目的地址字段目的地址字段3位位3位位操作码操作码 寻址方式寻址方式 R 寻址方式寻址方式 R 3. 寻址方式类型和数量的选择寻址方式类型和数量的选择指令系统设计时指令系统设计时, 选择什么寻址方式选择什么寻址方式: 使编程方便、灵活使编程方便、灵活 在寻址方式种类、地址数量与与硬件复杂在寻址方式种类、地址数量与与硬件复杂性上进行权衡。性上进行权衡。4. 如何扩展寻址空间如何扩展寻址空间针对寄存器位数不能寻址全存储空间。针对寄存器位数不能寻址全存储空间。例例1: 通过变换表扩大地址位数通过变换表扩大地址位数设设: 主存空间主存空间1M, 需要需要20位地址位地址, 但寄存器只但寄存器只能产生能产生16位地址位地址, 需要扩展地址位数。需要扩展地址

温馨提示

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

评论

0/150

提交评论