我在MIPS assambler编写一个小程序。鉴于我的年龄,该计划进行4项数学运算(加法,减法......)。
当它减去我的年龄(29)时,结果应该是-7(2 - 9 = -7),但它显示为7.
如何让MIPS在减法中显示负数?
提前致谢。
.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 :(得分:1)
减法顺序错误:
sub $t0,$t2,$t1
你正在减去9-2
sub $t0,$t1,$t2
是你需要的。
答案 1 :(得分:1)
你期望9-2回归什么? sub
的两个操作数是反转的。其他操作也有倒置的操作数,但它们是可交换的。