assembly mips!

penny99

Nuovo Utente
1
0
ciao a tutti, sono alle prime armi con il linguaggio assembly del mips.
oggi ho provato a scrivere un semplicissimo programma che addiziona tre numeri dati da tastiera, avvalendomi dello stack.
il programma compila, ma la somma dei tre numeri esce tipo "88475838384473847384", insomma, un numero lunghissimo e non esatto.
vi posto il codice, potete dirmi cosa ho sbagliato?

.data
input: .asciiz "Inserisci un numero: "
input2: .asciiz "Inserisci secondo numero: "
input3: .asciiz "Inserisci terzo numero: "
output: .asciiz "La loro somma è: "


.text
.globl main
main:


li $v0, 4 #leggo prima stringa
la $a0, input
syscall


li $v0, 5 #acquisisco primo numero
syscall
add $t0, $zero, $a0


li $v0, 4
la $a0, input2
syscall


li $v0, 5
syscall
add $t1, $zero, $a0


li $v0, 4
la $a0, input3
syscall


li $v0, 5
syscall
add $t2, $zero, $a0


sub $sp, $sp, 16
sw $t0, 12($sp)
sw $t1, 8($sp)
sw $t2, 4($sp)
sw $t3, 0($sp)
add $t3, $t0, $t1
add $t3, $t3, $t2


move $a0, $t3
lw $t3, 0 ($sp)
lw $t2, 4 ($sp)
lw $t1, 8 ($sp)
lw $t0, 12 ($sp)


add $sp, $sp, 16


li $v0,4
la $a0, output
syscall


li $v0,1
syscall






li $v0, 10
syscall
 

Entra

oppure Accedi utilizzando

Hot: E3 2021, chi ti è piaciuto di più?

  • Ubisoft

    Voti: 17 18.1%
  • Gearbox

    Voti: 1 1.1%
  • Xbox & Bethesda

    Voti: 67 71.3%
  • Square Enix

    Voti: 3 3.2%
  • Capcom

    Voti: 5 5.3%
  • Nintendo

    Voti: 14 14.9%
  • Altro (Specificare)

    Voti: 9 9.6%

Discussioni Simili