计算机组成学习记录-体系结构-寻址方式

MIPS有5种寻址方式:寄存器寻址,立即数寻址,基址寻址,相对PC寻址和伪直接寻址。

寄存器寻址

R指令都用寄存器寻址。寄存器作为操作数,直接通过读取相应寄存器获取所需数值。

立即数寻址

一些I指令的寻址方式。16位立即数与寄存器一起作为操作数被获取。

基址寻址

存储器中的地址通过基址与偏移量相加得到,从而获取存在 存储器中的操作数。

相对PC寻址

条件分支指令在进行跳转时使用相对PC寻址,从而得到PC新值。
beq register1, register2, label
这里label代表的并不是PC的新值,他是一个16位立即数,无法保存32位地址。它代表的是目标地址减去跳转前下一条指令地址(跳转前PC + 4)所获得的差值再除以4所得到的数值,也就是夹在分支指令和目标指令之间的指令数目。
当执行跳转时,处理器会将label所代表的立即数进行符号扩展并乘以4,再将结果与(跳转前PC + 4)相加,得到PC新值,从而找到目标地址。

伪直接寻址

j与jal都用这个寻址方式。直接寻址是通过指明32位地址从而进行跳转。但是MIPS指令使用32位指令,其中包括6位操作码,用来指明地址的就只剩下26位数。但是由于指令是字对齐的,每条指令地址都是4的倍数,所以地址的最低2位固定为0,我们可以直接舍弃地址的最低两位,把地址从低到高的第3位数到第28位数存在26位立即数中,当使用地址时再补上两位0。这样只有最高4位数存不进立即数。
MIPS采取折中办法,将(跳转前PC + 4)的最高四位直接当做地址的最高四位补全地址。这样导致跳转范围受到限制,但也实现了伪直接寻址。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lcandlyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值