我試圖使用跳轉表中的標籤陣列跳到以實現MIPS開關的情況下實現開關的情況下:在MIPS
.data
JumpTable:
.word L0, L1, L2, L3
.text
.globl main
main:
la $t4, JumpTable # address of JumpTable
sll $t1, $s5, 2 # s5 is value of the variable witch we want to switch on it.
add $t1, $t1, $t4
lw $t0, 0($t1)
jr $t0
L0:
...
L1:
...
L2:
...
L3:
...
我的問題是,有沒有辦法爲不這樣做連續的變量?(如1,4,19,40)
在這種情況下,唯一的方法是比較跳轉 –
你是否暗示跳轉表沒有辦法做到這一點? – Branky
是的,嘗試從C編譯並查看反彙編,並非所有情況都可以與跳轉表一起使用。當然,你可以使用地址填充未使用的案例以跳出案例,但它會佔用內存,並不是所有案例都可以使用。例如,如何爲具有0,1,0000000,500000000個案例的交換機制作跳轉表? –