0
我有一項家庭作業,我必須在MIPS Assembly中編寫一個函數,並且該函數必須使用移位,並且必須是最有效的可能。MIPS高效使用移位
彙編代碼是由func(n1,n2,n3,n4,n5);
這是我的代碼,它工作正常呼籲℃。
01 .data
02 .text
03 .globl func
04
05 func:
06
07 lw $8, 16($29)
08 addi $29,$29, -20
09 sw $31,0($29)
10
11 # f = 16x1 + 8x2 + 4x3 + 2x4 + x5 This is what the function do
12
13
14 li $9,0
15 li $10,0
16 li $11,16
17
18 # Load the five function parameter on function
19 sb $4,4($29)
20 sb $5,8($29)
21 sb $6,12($29)
22 sb $7,16($29)
23 sb $8,20($29)
24
25 la $25,4($29)
26 loop:
27
28 lb $24,0($25)
29 mul $12,$11,$24
30 add $9,$9,$12
31
32 srl $11,$11,1
33 addi $25,$25,4
34 #addi $29,$29,1
35
36 addi $10,$10,1
37 ble $10,4,loop
38
39
40 move $2,$9
41 end:
42
43 lw $31,0($29)
44 addi $29,$29,20
45 jr $31
所以我問的是,這個代碼可以使用班次最有效地完成?
我做了一個srl
來訪問值乘以,但不知道如果使用班次我可以訪問該函數的5參數。
非常感謝您的解釋。我的數學背景不是最好的,所以這個小東西變得不穩定:) – Favolas 2012-04-23 08:16:10