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