1
我有一個函數,需要一個內存地址爲$a0
和我訪問(可變)的單詞數x($a0)
,其中x
是8的倍數。我需要存儲這些在$sp
寄存器中,所以我可以使用$a0
寄存器將參數傳遞給其他函數。 MIPS彙編全新,所以這裏的任何指針都會有所幫助! 8展開可變數量的參數在內存中的參數空間
我有一個函數,需要一個內存地址爲$a0
和我訪問(可變)的單詞數x($a0)
,其中x
是8的倍數。我需要存儲這些在$sp
寄存器中,所以我可以使用$a0
寄存器將參數傳遞給其他函數。 MIPS彙編全新,所以這裏的任何指針都會有所幫助! 8展開可變數量的參數在內存中的參數空間
倍數我假設你正在使用MIPS-64
第一U 8每次做一個循環,並增加A0:
loop: lw $t0, 0($a0) ;fetch data and store in t0
addi $sp,$sp,-8 ;increase stack
sw $t0, 0($sp) ;store data fetched
addi $a0,$a0,8 ;increment a0 to go to next entry
;here you check that you haven't reached x yet
;let's say 8*x+$a0(initial) is stored in $t1 (this is easy to do just use sll by 3 to multiply by 8 then add a0 before loop)
bne $a0,$t1,loop
;now you can use $a0