gpt4 book ai didi

java - 程序怎么可能超过 2^16 字节?

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:09 26 4
gpt4 key购买 nike

在汇编 (MIPS) 中,立即指令具有以下格式:

+----------+------+------+-------+
| opcode | rs | rt | IMM |
+----------+------+------+-------+

在哪里,

Opcode = 6 bits
Source register (rs) = 5 bits
Destination register (rt) = 5 bits
Immediate value (IMM) = 16 bits

也就是说,您可以跳转到远离当前指令(分支指令)的另一条指令 2^16 字节 = 64 kb 代码。程序(C、Java 等)怎么可能超过 2^16 字节的代码?

编辑:

正如@trashgod 所指出的,编译器可以使用 J instructions反而。但它仍然限于 26 位 地址,这意味着程序不能跨越 256MB。那么,这怎么可能呢?

最佳答案

我不是MIPS专家,但相对跳转的最大偏移与程序本身的大小无关。

跳转可以由编译器序列化或在汇编代码中手动序列化。这样一来,人们就可以毫无问题地向上或向下跳跃任何距离。

;it is pseudo code, not mips
start:
jmp to_the_limit
.....
.... 256MB bloated code
....
to_the_limit:
jmp even_further
....
.... another 256MB of even more bloated code.
....
even_further:
jmp this_code

关于java - 程序怎么可能超过 2^16 字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19439926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com