2011-06-28 9 views
0

私はMIPSのassamblerで小さなプログラムをコーディングしています。私の年齢を考えると、プログラムは4つの数学演算(加算、減算...)を行います。それは私の年齢(29)substractMIPSの減算結果として負の数を表示

、結果は私がMIPSはsubstractionに負の数を表示するために作る方法-7(29 = -7)、それは7

を示しすべきですか?

ありがとうございます。

.globl main 

    .data 
mensaje: .asciiz "Hola, mi nombre es Angel Pérez.\nHasta hace poco mi edad era 29 años.\n¿Que pasa si aplico las 4 operaciones matematicas a esos dos numeros...?\n\n" 
suma:  .asciiz "2 mas 9 es igual a: " 
resta:  .asciiz "2 menos 9 es igual a: " 
multiplicacion: .asciiz "2 por 9 es igual a: " 
division: .asciiz "2 entre 9 es igual a: " 
nueva_linea: .asciiz "\n" 
.text 

main: 
    la $a0, mensaje 
    li $v0, 4 
    syscall 

    la $a0, suma 
    li $v0, 4 
    syscall 

    li $t1, 2 
    li $t2, 9 

    li $v0, 1 
    add $t0,$t2,$t1 
    move $a0,$t0 
    syscall 

    la $a0, nueva_linea 
    li $v0, 4 
    syscall 

    la $a0, resta 
    li $v0, 4 
    syscall 

    li $v0, 1 
    sub $t0,$t2,$t1 
    move $a0,$t0 
    syscall 

    la $a0, nueva_linea 
    li $v0, 4 
    syscall 

    la $a0, multiplicacion 
    li $v0, 4 
    syscall 

    li $v0, 1 
    mul $t0,$t2,$t1 
    move $a0,$t0 
    syscall 

    li $v0, 10 
    syscall 
+0

コードサンプルを渡すことができます。オペランドの順序が正しいことを確認してください:sub res、left、right。 –

+0

Sooooorry、私は自分のコードのセクションを追加するのを忘れました...今すぐ追加してください。 – Ashir

答えて

1

減算順序が間違っている:あなたは9-2

sub $t0,$t1,$t2 

は何が必要です引いている

sub $t0,$t2,$t1 

+0

私は9-2から2-9を引いているわけではないので、結果として負の数を表示する方法を尋ねます。 9-2は7、私は-7を、2-9の結果としたい。それは私が本当に必要なものです。 – Ashir

+0

右、サブオペランドの順序を見てください。あなたはそれらを後方に持っています。あなたは2-9をしたいときに9-2をやっています。 –

+0

あなたは正しい人です。ありがとう! – Ashir

1

9-2が返すものは何でしたか? subの2つのオペランドが反転されます。他のオペレーションも反転オペランドを持ちますが、それらは可換です。

+0

私は9-2でなく2-9を引くわけではないので、実際には、それは逆にされていません。 – Ashir