es.:
a) Commentare passo passo il funzionamento del seguente programma in assembly MIPS,
spiegarne sinteticamente la finalità, e indicare il contenuto della memoria (sezione
.data) al termine dell’esecuzione usando le direttive di memorizzazione
dell’assemblatore (e cioè .word, .ascii, ecc.).
Commentare ciascuna istruzione a lato dell’istruzione stessa.
.text
main:
la $t0,dup
lbu $s0,0($t0)
la $t0,sin
la $t1,sout
la $t2,cnt
loop:
lbu $s1,0($t0)
beq $s1,$zero,end
bne $s1,$s0,write
sb $s1,0($t1)
addu $t1,$t1,1
lw $s2,0($t2)
addiu $s2,$s2,1
sw $s2,0($t2)
write:
sb $s1,0($t1)
addu $t0,$t0,1
addu $t1,$t1,1
j loop
end:
sb $zero,0($t1)
.data
cnt:
.word 0
dup:
.ascii "l"
sin:
.asciiz "sibila"
sout:
.space 20
b) Scrivere qui di seguito il valore contenuto nei registri dopo la prima scrittura (nel
registro stesso) e alla fine dell’esecuzione (per gli indirizzi usare i corrispondenti
simboli, es. $t0 = dup, $t1 = sin + 3).
$t0 =
$t1 =
$t2 =
$s0 =
$s1 =
$s2 =
c) Scrivere qui di seguito il contenuto della memoria al termine dell’esecuzione.
.data
cnt:
dup:
sin:
sout:
d) Scrivere qui di seguito la finalità del programma.
VI PREGO AIUTATEMI!!!!!!!!!!!!!!!!!!!!!
GRAZIE :)