4.4.1 指令和数据的寻址方式

寻址方式:确定本条指令的数据地址或下一条要执行的指令地址的方法。
在这里插入图片描述

4.4.2 数据寻址方式说明

目的操作数和源操作数均可采用不同的寻址方式;
两个操作数的类型必须一致。
AX表示16位寄存器,AH、AL表示其高低字节,可单独使用。

4.4.3 立即寻址

操作数就在指令中,紧跟在操作码后面,作为指令一部分存放在内存的代码段中,该操作数为立即数,这种寻址方式称为立即寻址方式。数据通常采用补码的形式存放。常用于给寄存器赋初值(作用);
在这里插入图片描述
举例: MOV AX , 34EAH;
在这里插入图片描述
注意
①立即数可以送到寄存器、一个存储单元(8位)、两个连续的存储单元(16位)中去;
立即数只能作源操作数,不能作目的操作数;
③以A~F打头的数字,前面必须加数字0
如下指令
MOV AL,3400H ×,前后格式不匹配
MOV AX,34H √,等价于 MOV AX,0034H
MOV 87H,BX ×,立即数不能作为目的操作数
MOV AX,F98AH ×,应为 MOV AX,0F98AH

设16位计算机中,存储器宽度为16位,一条指令占据一个机器字。
已知操作码为6位,目的操作数为寄存器编号,占4位;
源操作数寻址方式为 立即数寻址 ,以补码整数形式给出,
则该指令立即数寻址方式的数值范围是多少?

在这里插入图片描述
操作码占6位,目的操作数据占4位,那么立即数(源操作数)占6位,按补码的形式,第一位为符号位,所以数值范围为 -32~31 。

立即寻址方式的
优点:指令已经提供操作数,无需再次访问存储器。提供操作数最快
缺点
①操作数为指令一部分,不能修改,适用于给某一寄存器或存储单元赋初值等操作。
②指令中A的位数限制了这类指令所表述的立即数的范围。、

4.4.4 直接寻址

存储单元有效地址EA(即:操作数的有效地址)直接由指令给出。
作用:实现对存储单元的读/写操作。
特点:
访问存储器次数较少;
操作数地址在指令中,灵活性较差。
操作数A的位数限制了操作数的寻址范围。

4.4.5 (存储器)间接寻址

操作数所在内存单元的地址通过存储器间接给出。
优点:实现简便,对编程带来较大的灵活性,当操作数地址改变时,只需修改间接地址指示器的单元内容,而不必修改指令,原指令的功能照样实现。这给编程带来很大方便。
多次访问内存,增加了指令的执行时间;占用主存储器单元多。

4.4.6 寄存器寻址

操作数包含在寄存器中,寄存器的名称由指令指定。
常用于寄存器之间传递数据。优势是速度快。注意源操作数的长度必须与目的操作数一致

4.4.7 寄存器间接寻址

操作数所在内存单元的地址通过寄存器间接给出。
作用:有效地址可以存放在寄存器中。

4.4.8 相对地址

操作数的有效地址是程序计数器PC的内容与n位位移量
位移量的概念:在寄存器间接寻址给出的偏移地址上,加上一个相对偏移量。位移量是一个带符号的补码机器数。
可有效缩短地址的长度 。
兼具灵活性,只与PC相对位置有关,与绝对地址无关。

4.4.9 相对基址寻址

这种寻址方式下,EA是由两部分组成的,基址寄存器BX或BP的内容加上偏移量DISP。

4.4.10 相对变址寻址

这种寻址方式下,EA是由两部分组成的,变址寄存器的内容加上偏移量DISP。

与基址寻址类似。基址寻址,往往变化的是形式地址;变址寻址,往往形式地址不变,变化的是变址寄存器。

4.4.11 相对基址变址寻址

这种寻址方式下,EA是由三部分组成的,基址寄存器BX或BP的内容加上变址寄存器的内容,以及位移量的和。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐