cpu
指令系统——指令中的寻址方式
寻址方式:指形成操作数地址或寻找操作数的方式
1条指令,可能会涉及多种寻址方式
1.常见的寻址方式
(1)立即寻址
指令中直接包含了操作数
用来提供偏移量、常数、设置初值等
指令功能:
取指令后,直接截取指令中的低16位代码,就能立即得到真值为5的操作数。因此,得到5的方式就是立即寻址。
(2)直接寻址
指令中直接给出操作数的地址码。
存储单元地址(数在M中)
寄存器编号(数在R中)
主存直接寻址(绝对寻址)
操作数:s=(D)
寄存器直接寻址
针对操作数在寄存器中的情况
(3)间接寻址
指令给出操作数的间接地址
存储单元地址(数在M中)
寄存器编号(数在M中)
一般只在CISC中使用,RISC中一般不用;
主存间接寻址
寄存器间接寻址
R的地址位数少,R可提供全字长地址码,修改R内容比M快。
指针不变(由指令指定),指针内容可变,使同一指令可指向不同存储单元,以实现程序的循环,共享,并提供转移地址。
堆栈间接寻址
(4)变址、基址寻址及其变化
变址寻址
指令给出一个寄存器号和一个地址量寄存器,内容与地址量之和为有效地址。
格式
基址寻址
指令给出一个计算器号和一个地址量,寄存器内容与地址量之和为有效地址(二维数组的读写)
变址与基址的区别
有效地址=寄存器中的内容(R)+指令中的立即数(M)
变址寻址:指令提供基准量,寄存器提供偏移量
基址寻址:指令提供偏移量,寄存器提供基准量
基址+变址
指令给出两个计算器号和你的地址量,计算机内容与地址量之和为有效地址(处理三维数组)
便于处理三维数组
(5)pc相对寻址
指令给出偏移量,pc当前值与偏移量相加得到有效地址。
是一种特殊的基址寻址方式
有效地址相对于pc浮动,编程方便
(6)页面寻址