feat: Initial commit
This commit is contained in:
52
Temi esame/cambio.asm
Normal file
52
Temi esame/cambio.asm
Normal file
@@ -0,0 +1,52 @@
|
||||
DIM =, 6
|
||||
.data
|
||||
vetB: .byte 2, 14, 119, 54, 10, 41
|
||||
vetN: .space DIM
|
||||
|
||||
.text
|
||||
.globl main
|
||||
.ent main
|
||||
main:
|
||||
la $a0, vetB
|
||||
la $a1, vetN
|
||||
li $a2, DIM
|
||||
jal Cambio
|
||||
li $v0, 10 # codice per uscita dal programma
|
||||
syscall # fine
|
||||
.end main
|
||||
|
||||
.ent Cambio
|
||||
Cambio:
|
||||
|
||||
li $t0, 0 # contatore di riga
|
||||
loop:
|
||||
|
||||
li $t1, 0 # numero di cambi
|
||||
addu $t2, $t0, $a0
|
||||
lb $t2, ($t2) # carico la parola
|
||||
li $t3, 0 # contatore bit
|
||||
|
||||
# inizializzo last val
|
||||
andi $t4, $t2, 0x00000001
|
||||
|
||||
rileva_cambi:
|
||||
srl $t2, $t2, 1
|
||||
andi $t5, $t2, 0x00000001
|
||||
|
||||
beq $t4, $t5, cont
|
||||
addiu $t1, $t1, 1
|
||||
|
||||
cont:
|
||||
move $t4, $t5
|
||||
|
||||
addiu $t3, $t3, 1
|
||||
bne $t3, 7, rileva_cambi
|
||||
|
||||
addu $t2, $t0, $a1
|
||||
sb $t1, ($t2) # salvo il risultato in vetN
|
||||
|
||||
addiu $t0, $t0, 1
|
||||
bne $t0, $a2, loop
|
||||
|
||||
jr $ra
|
||||
.end Cambio
|
||||
Reference in New Issue
Block a user