feat: Initial commit
This commit is contained in:
70
Laboratorio9/bisestile.asm
Normal file
70
Laboratorio9/bisestile.asm
Normal file
@@ -0,0 +1,70 @@
|
||||
LUNG =, 6
|
||||
.data
|
||||
anni: .word 1945, 2008, 1800, 2006, 1748, 1600
|
||||
ris: .space LUNG
|
||||
.text
|
||||
.globl main
|
||||
.ent main
|
||||
main:
|
||||
la $a0, anni
|
||||
la $a1, ris
|
||||
li $a2, LUNG
|
||||
jal bisestile
|
||||
li $v0, 10 # codice per uscita dal programma
|
||||
syscall # fine
|
||||
.end main
|
||||
|
||||
.ent bisestile
|
||||
bisestile:
|
||||
addi $sp, $sp, -4
|
||||
sw $ra, ($sp)
|
||||
|
||||
li $s0, 0
|
||||
sll $a2, $a2, 2
|
||||
addu $s1, $a0, $a2
|
||||
move $s2, $a0
|
||||
move $s3, $a1
|
||||
|
||||
loop:
|
||||
lw $a0, ($s2)
|
||||
jal bisestileS
|
||||
beq $v0, $0, skip
|
||||
addiu $s0, $s0, 1
|
||||
skip:
|
||||
sb $v0, ($s3)
|
||||
|
||||
addiu $s2, $s2, 4
|
||||
addiu $s3, $s3, 1
|
||||
bne $s2, $s1, loop
|
||||
|
||||
move $v0, $s0
|
||||
lw $ra, ($sp)
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
.end bisestile
|
||||
|
||||
.ent bisestileS
|
||||
bisestileS:
|
||||
# anno in $a0
|
||||
li $t0, 400
|
||||
div $a0, $t0
|
||||
mfhi $t0
|
||||
beq $t0, 0, bis
|
||||
|
||||
li $t0, 100
|
||||
div $a0, $t0
|
||||
mfhi $t0
|
||||
beq $t0, 0, nbis
|
||||
|
||||
li $t0, 4
|
||||
div $a0, $t0
|
||||
mfhi $t0
|
||||
beq $t0, 0, bis
|
||||
|
||||
nbis:
|
||||
li $v0, 0
|
||||
jr $ra
|
||||
bis:
|
||||
li $v0, 1
|
||||
jr $ra
|
||||
.end bisestileS
|
||||
Reference in New Issue
Block a user