我想把C表达式y = 1 - X并使其成为MIPS编译语言。 假设x = $ s0且y = $ s1
addi $s1, 1, -$s0
还有另一种方法吗?
答案 0 :(得分:4)
也许这个:
li $s1, 1
subu $s1, $s1, $s0
答案 1 :(得分:2)
是。首先否定$s0
作为二进制补码:
nor $t0, $s0, $zero # flip bits of X, store in $t0
addi $t0, $t0, 1 # add one to $t0
addi $s1, $t0, 1 # now, add 1 to -X, store result in $s1
您还可以将两个步骤合并为一个,并使用少一个寄存器。但这有点不太清楚:
nor $s1, $s0, $zero
addi $s1, $s1, 2