:请教怎么实现大范围指令的跳转?
求助:请问如何实现大范围指令的跳转???
不管是跳到相对位置还是绝对位置,由于立即数和转移地址码 分别只有16和26位 这样一次jump转移不了多少,因为前4位已经限制了转移范围!
所以是不是一次转移还不能满足在所有指令中跳转????
举个例子:比如系统里有许多的程序在执行,有很多很多条在执行指令在内存中,如何进行一次跳转可以从头跳到尾?????
当然如果一直让他PC+4执行下去,倒是可以执行完所有的指令...
32位字长系统MIPS.....
------解决方案--------------------
这就是RISC定长指令的缺陷了。
要么多级跳,要么把把跳转地址放在寄存器中,再jr $t0之类的。
不管是跳到相对位置还是绝对位置,由于立即数和转移地址码 分别只有16和26位 这样一次jump转移不了多少,因为前4位已经限制了转移范围!
所以是不是一次转移还不能满足在所有指令中跳转????
举个例子:比如系统里有许多的程序在执行,有很多很多条在执行指令在内存中,如何进行一次跳转可以从头跳到尾?????
当然如果一直让他PC+4执行下去,倒是可以执行完所有的指令...
32位字长系统MIPS.....
------解决方案--------------------
这就是RISC定长指令的缺陷了。
要么多级跳,要么把把跳转地址放在寄存器中,再jr $t0之类的。