6.6MIPS寻址方式210821

本文介绍了MIPS处理器中的五种寻址方式:寄存器寻址、立即数寻址、基址寻址、相对PC寻址和伪直接寻址。寄存器寻址使用寄存器中的值作为操作数;立即数寻址使用16-bit立即数;基址寻址通过基址和符号扩展的立即数计算地址;相对PC寻址用于确定指令序列,尤其是跳转指令的地址计算;伪直接寻址则受限于指令长度,通过组合PC值和指令中的地址字段来确定目标地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

寻址方式

  • 寻址方式就是怎样确定目标操作数的地址
  • MIPS中有五种寻址方式

寄存器寻址

  • 操作数在寄存器中
    • 例如: add $s0, $t2, $t3
    • 例如: sub $t8, $s1, $0

立即数寻址

  • 16-bit 立即数用作操作数
    • 例如: addi $s4, $t5, -73
    • 例如: ori $t3, $t7, 0xFF

基址寻址

  • 操作数地址为: 基址+符号扩展的立即数
    • 例如: lw $s4, 72($0)
      • 地址= $0 + 72
    • 例如: sw $ t2, -25($t1)
      • 地址= $t1 -25

相对PC寻址

  • 前三种是对操作数的寻址,而相对PC寻址是对指令的寻址
  • 想要形成完整的指令序列,不单单要知道本条指令的操作数在哪里,还要知道下一条指令的地址
  • 通常情况下,指令顺序执行,下一条地址就是程序计数器PC的值+4
  • 一些涉及到跳转的指令则要利用相对PC寻址来确实PC的新值
  • 新的PC值= 立即数字段中偏移量×4 + PC值
  • 下图就给出了示例,beq是跳转指令,在编译后会把它与目标指令的偏移量(相差的指令条数)以立即数的形式存储,然后通过相对PC寻址方式计算出目标指令的地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值