0

オンラインで MIPS ASM 演習を行っていますが、他の ASM 言語も同様です。

次の質問に問題があります。13xを実行する必要があります。かんたんだよ:

## Compute 13x

ori $8,$0,1     # $8 = x

sll $9,$8,2     # x*2^2 = 4x
sll $10,$8,3        # x*2^3 = 8x
addu $10,$9,$10     # 4x+8x = 12x
addu $10,$10,$8     # 12x+x = 13x

ただし、さらに1 つの命令を追加するだけで -13x を計算するように指示されています。

私の考えは、2 の補数を取ることでした。ただし、それは 2 つの命令です。

## Calculate -13x with one additional instruction

nor $11,$10,$0      # 
addiu $11,$11,1     # flip bits and +1 to get two's comp?

1 つの追加命令で -13x を計算するにはどうすればよいですか?

これは、私の元の 13x コードが良くないことを意味していると思います。

これを行うための「汚いハック」を考えることができますが、それは教授が探しているものではないと思います.

注: 次の手順の使用のみが許可されています。

add     
sll
addi        
addiu   
addu        
and
andi        
or      
ori
nor
sub
subu
srl
xor
xori
4

1 に答える 1

2

気にしないで、私はばかげています。

私はちょうどそれを解決しました。単に0-13x!?!?!?

subu $11,$0,$10 # 0 - 13x = -13x
于 2013-03-02T14:15:09.010 に答える