MIPS中有关于分支指令及跳转寻址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MIPS中有关于分支指令及跳转寻址相关的知识,希望对你有一定的参考价值。

分支指令

分支指令包含该指令,和两个操作数,以及跳转的分支地址,该地址是相对于下一条指令的相对地址


分支指令占6位   操作数1占5位     操作数2占5位     分支指令16位


 例如

bne   $s0  ,  $s1,EXIT

执行bne分支指令,比较$s0和$s1两个操作数中的数据,如果不相等则跳转到EXIT指定的地址,

如何到达EXit的地址?

这就要利用分支指令那16位二进制数了

16位二进制可以表示的范围为-2^15~2^15也就是-128~127,通过下一指令的地址加上该分支指令值就能得到目标地址

如何进行地址的加减就要用到二进制的补码来进行运算

16位中负数最小值的补码演变:0X0000FFFF(原码)因为是负数所以在FFFF前加一得到OX0001FFFF,再进行按位取反得到OXFFFE0000(补码)

加上下一条指令的地址就是目标地址了

16位中正数的补码就是原码最大值为Ox00007FFFF



 

跳转指令

 

跳转指令则只有该指令和跳转的目标地址组成

 


 跳转指令6位      相对跳转地址16位


因为地址都是4位一组所以将该26位地址进行左移2位表示28位的地址

其没有正负之分因此相对简单

OX6位指令码+(11)多的2位二进制码FFFFFF(24位)

左移之后变成

保留6位指令当中的最高4位,之后的目标地址等于原来的26位加上补上的2位得到

OX0FFFFFFC(最大移动地址)

 

以上是关于MIPS中有关于分支指令及跳转寻址的主要内容,如果未能解决你的问题,请参考以下文章

MIPS汇编指令集

MIPS指令学习二

MIPS中j,jr,jal这三个跳转指令有啥区别,最好能举下例子说明下,谢谢了

计算机系统5-; 计组与体系结构2 | MIPS指令集(上)| 指令系统

计算机原理 5.5 MIPS指令概述

关于vue路由对不同界面进行传参及跳转的总结