MIPS关于指令跳转的跳转范围

倍数关系
  • (一般来讲) 1个地址单元存储有有8 bits(8比特)
  • 8 bits = 1 B(1字节)
  • 1024 B = 1 KB(1千字节)
  • 1024 KB = 1 MB(1兆字节)
  • 1024 MB = 1 GB(1吉字节)
  • 1024 GB = 1 TB(1太字节)
  • 210 = 1024
j指令

j指令属于J指令范围,有26位用于存储跳转的地址,当跳转时,低位补两位0(因为指令存储地址时字(32bits)对齐的),高位补PC+4的高4位(伪直接寻址),故跳转范围由26位决定。
故,可跳转226+2=228个地址单元,即228+3bits = 256 MB。

jr指令

jr指令属于R指令,采用 寄存器寻址方式寻址,跳转到$ra寄存器保存的地址,因为$ra寄存器保存32位数据,故可跳转地址范围大小是232个地址单元,即232+3 = 235bits = 4 GB的数据内容范围。

beq指令

beq指令属于I型指令,跳转到 label 所指的代码,采用PC相对寻址。beq指令中imm立即数保存的是 imm = (label 所指代码行行数)-(当前代码行+1),寻址跳转时对imm左移两位(相当于乘4,由行数差转变为地址单元差)再进行符号扩展,最后加(PC +4)得到最终要跳转到的地址单元。故,跳转代码范围是216+2个地址单元,即216+2+3 bits = 256 KB。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值