lucas87
22-04-2007, 08:58
Salve l'esercizio in questione è sviluppato in assembler su processore mips.
L'esercizio è semplice, avendo una matrice in memoria, inserire da tastiera tramite syscall indice i,j e stampare il dato presente nella matrice a quel dato indice.
L'ho fatto e dovrebbe essere corretto ma non va.
Chi mi aiuta?
Grazie in anticipo
.data
mat: .byte 1,2,3,4,5,6,7,8,9,10,11,12
nrig: .byte 3
ncol: .byte 4
ind_i: .asciiz "i="
ind_j: .asciiz "j="
.text
.globl main
main:
#inserimento indici i,j
li $v0,4
la $a0,ind_i
syscall
li $v0,5
syscall
move $t0,$v0
li $v0,4
la $a0,ind_j
syscall
li $v0,5
syscall
move $t1,$v0
# stampa dell'elemento mat(i)(j)
la $t7,mat # carico l'indirizzo del primo elemento della matrice in $t7
# (ncol x i) + (j+1)
la $t3,ncol # $t3=ncol
mul $t3,$t3,$t0 # $t3=ncol x (i)
add $t2,$t1,1 # $t2=j+1
add $t3,$t3,$t2 # $t3=(ncol x i) + (j+1)
add $t7,$t7,$t3
lb $t8,($t7)
li $v0,1
move $a0,$t8
syscall
li $v0,10
syscall
L'esercizio è semplice, avendo una matrice in memoria, inserire da tastiera tramite syscall indice i,j e stampare il dato presente nella matrice a quel dato indice.
L'ho fatto e dovrebbe essere corretto ma non va.
Chi mi aiuta?
Grazie in anticipo
.data
mat: .byte 1,2,3,4,5,6,7,8,9,10,11,12
nrig: .byte 3
ncol: .byte 4
ind_i: .asciiz "i="
ind_j: .asciiz "j="
.text
.globl main
main:
#inserimento indici i,j
li $v0,4
la $a0,ind_i
syscall
li $v0,5
syscall
move $t0,$v0
li $v0,4
la $a0,ind_j
syscall
li $v0,5
syscall
move $t1,$v0
# stampa dell'elemento mat(i)(j)
la $t7,mat # carico l'indirizzo del primo elemento della matrice in $t7
# (ncol x i) + (j+1)
la $t3,ncol # $t3=ncol
mul $t3,$t3,$t0 # $t3=ncol x (i)
add $t2,$t1,1 # $t2=j+1
add $t3,$t3,$t2 # $t3=(ncol x i) + (j+1)
add $t7,$t7,$t3
lb $t8,($t7)
li $v0,1
move $a0,$t8
syscall
li $v0,10
syscall