0
在MIPS類型的ISA中,有兩種類型的尋址功能分支和跳轉。這些是PC相對和僞直接。我想知道爲什麼我們對兩種類型的指令使用兩種不同的尋址方式?這是必要的嗎?另外,分支指令跳轉的最大大小是多少?那跳躍呢?關於跳躍功能的理論?
在MIPS類型的ISA中,有兩種類型的尋址功能分支和跳轉。這些是PC相對和僞直接。我想知道爲什麼我們對兩種類型的指令使用兩種不同的尋址方式?這是必要的嗎?另外,分支指令跳轉的最大大小是多少?那跳躍呢?關於跳躍功能的理論?
分支需要更多的位來描述操作數和分支比較類型。跳轉指令需要較少的信息,所以他們可以投入更多的比特到眼前。因此,跳躍可以比分支跳得更遠。
我不明白PC相對和「psuedodirect」之間的區別 - 它們都是PC相對的。唯一真正的區別是直接數量有多少。
需要PC相對編譯器可以移動代碼,而不必關心分支和目標的確切位置。此外,它需要更少的位來描述「分支前10條指令」與描述目標的絕對位置。同樣,跳轉有更多的可用位,所以它們可以跳得更遠。分支或跳轉的確切距離取決於具體的ISA。通常,具有32b大小指令的RISC ISA可以跳過2^i個字(或4 *(2^i)個字節),其中i是直接大小。