在大會(MIPS),立即指令具有以下格式:程序如何超過2^16字節?
+----------+------+------+-------+
| opcode | rs | rt | IMM |
+----------+------+------+-------+
其中,
Opcode = 6 bits
Source register (rs) = 5 bits
Destination register (rt) = 5 bits
Immediate value (IMM) = 16 bits
這就是說,你只可以碼遠從當前指令跳到另一個指令2^16 bytes = 64 kb
(分支指令)。程序(C,Java等)如何超過2^16字節的代碼?
編輯:
由於@trashgod指出,編譯器可以使用J instructions代替。但是它的地址仍然限於26 bits
,這意味着程序不能跨越256MB。那麼,它怎麼可能?
在Java情況下:JVM。 JVM負責處理它,這是唯一相關的問題:C如何做到這一點?或者一般如何實現(回到理解MIPS)? – pedrofurla
另請參閱此[Q&A](http://stackoverflow.com/q/7877407/230513)。 – trashgod