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