执行 1 - X 的替代方法?
Alternate way to perform 1 - X?
我想把 C 表达式 y = 1 - X 变成 MIPS 编译语言。
假设 x = $s0 和 y = $s1
addi $s1, 1, -$s0
有其他方法吗?
是的。先取反$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
也许是这样:
li $s1, 1
subu $s1, $s1, $s0
我想把 C 表达式 y = 1 - X 变成 MIPS 编译语言。 假设 x = $s0 和 y = $s1
addi $s1, 1, -$s0
有其他方法吗?
是的。先取反$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
也许是这样:
li $s1, 1
subu $s1, $s1, $s0