Chinaunix

标题: 指令长度问题啊 [打印本页]

作者: 1ming0    时间: 2012-01-12 11:51
标题: 指令长度问题啊
x86下  jmp指令 占一个字节 ,地址占位是可变的的  可以理解。

但是mips下定长指令 ,总是32位,jalr占了6位 ,还有26位偏移地址,如何帮助64位系统(64位地址空间)寻址啊。

恕我有点白。
作者: amarant    时间: 2012-01-12 15:19
32位地址空间就不足够,本来就不能寻址64位的。
jmp只用26位,寻址空间当然只有2^26这么大了
不过一般还有一条指令jr 是跳转到寄存器里包含的内容,这样就可以寻址4G的空间了。
作者: 1ming0    时间: 2012-01-13 09:26
本帖最后由 1ming0 于 2012-01-13 09:34 编辑

回复 2# amarant


    恩 谢谢 那么如何区分如何通过机器码区分带不带寄存器的指令 j jr    jal jalr ??     j和jal可以通过机器码(02,03)区分。
   
                跳转指令后面跟的26位是相对于当前指令的偏移,还是相对于代码段首地址??   和x86不太一样吧。
作者: amarant    时间: 2012-01-13 09:29
回复 3# 1ming0


    每种指令的格式不一样,你自己看手册吧。
作者: 1ming0    时间: 2012-01-13 09:30
本帖最后由 1ming0 于 2012-01-13 09:33 编辑

我只说 J格式的  手册是只有区分j jal的
作者: 1ming0    时间: 2012-01-13 09:31
我现在想在mips下做钩子  找到要钩的函数
作者: amarant    时间: 2012-01-13 11:39
回复 5# 1ming0


    mips的好像是叫br 你自己看看吧。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2