Architecture mips转换为汇编
我正在为以下语句编写MIPS汇编:Architecture mips转换为汇编,architecture,mips,Architecture,Mips,我正在为以下语句编写MIPS汇编: f = a - 20 + b + c - d 使用以下寄存器 $1 a $2 b $3 c $4 d $5 f $6 g $7 i $8 j $9 A 10$ D 我的答案是: add $5,$2, $3 // f=b+c addi 5$,5$,-20 // f=f+(-20) add $5,$1,5$ // f=a+f sub $5,$5,$4 // f=f-d sw $5,o($5) /
f = a - 20 + b + c - d
使用以下寄存器
$1 a
$2 b
$3 c
$4 d
$5 f
$6 g
$7 i
$8 j
$9 A
10$ D
我的答案是:
add $5,$2, $3 // f=b+c
addi 5$,5$,-20 // f=f+(-20)
add $5,$1,5$ // f=a+f
sub $5,$5,$4 // f=f-d
sw $5,o($5) // stores the answer
现在常数-20让我有点不舒服,我不确定我是否处理得对
或者我可以:
add $5,$2,$3
addi $5,$5,20
sub $5,$1,$5
sub $5,$5, $4
sw $5,0($5)
不要使用
$1
,它通常作为伪指令的$at
保留给汇编程序
您的代码可能如下所示
addui $5, $1, 0xFFEC # or a-20 in twos complement, but it should be the same
addu $5, $5, $2 #
addu $5, $5, $3 #
subu $5, $5, $4 #
这条线
sw $5,o($5) // stores the answer
没有多大意义,因为您正在将$5
保存到$5+o
,这看起来像是一个依赖于结果的位置
然而,您的第二个代码可能是不正确的,因为这意味着
f = a - (b + c + 20) - d
f = a - b - c - 20 - d