计算机原理 5.3 操作数寻址方式

操作数寻址方式:

含义:形成操作数有效地址的方法

1、立即数寻址

地址码字段是操作数本身

 例:MOV AX,200H(AX<---200H)

S=D

特点:

取指操作将数据与指令一并读入CPU内部的寄存器,指令执行速度块

便于程序设计(变量赋初值)

数据大小受字段位数限制

2、寄存器寻址

操作数在cpu的内部寄存器中

 例 MOV AX,BX(AX<---(BX)   )

特点:

操作数在寄存器中,指令执行速度快

能访问的数据大小一般与计算机字长有关

地址字段的位数与计算机通用寄存器数量相关 

 

3、直接寻址

地址码字段直接给出操作数在内存的地址,

例  MOV AX,[200H]

 特点:

提供访问主存的操作

获得数据要访问主存,指令执行速度慢

地址字段的位数决定了访存空间大小

4、间接寻址

地址码字段给出的是操作数主存地址的地址

例  MOV AX,I[200H]

 这里的I表示间接寻址

特点:

解决了直接寻址方式下地址字段的位数限制访存范围大小的问题

获得数据要访问主存2次,指令执行速度太慢。

5、寄存器间接寻址

地址码给出的是寄存器编码R

 特点:

解决了直接寻址方式下地址字段的位数限制访存范围大小的问题

获得数据只需访问主存1次

6、相对寻址

 特点:

可节省指令中的地址位数,便于程序在内存中成块移动

注意PC的改变对计算E的影响,如  本例中E=200+2000+2

 若计算机字长32位,且PC的值在取值阶段修改,则读完地址后,PC要加4,因为32位占了四个字节。

7、基址寻址

指定一个基址寄存器B,与本指令地址无关

E=D+(B),D为指令中地址字段的值

例:

MOV AX,32[B]

 特点:

使用基址寄存器可以访问更大的主存空间(基址寄存器可以设置成比通用寄存器还大的位数)

对某一程序而言,基址值设定后不变,故要访问不同数据需修改D

8、变址寻址

指定一个变址寄存器X,与本指令地址无关,内容可随便要求改变

E=D+(X),D为指令中地址字段的值

MOV AX,32[SI]  SI,DI都称为变址寄存器

特点:

不改变指令即可改变数据的有效地址,可在循环中使用

在字符串处理,向量运算等等成批数据处理中非常有用

9、数据寻址方式总结

原文地址:https://www.cnblogs.com/fate-/p/13179071.html