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