Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- CONTROL: .word32 0x10000
- DATA: .word32 0x10008
- msj: .asciiz "Ingrese una coordenada para X"
- msj2: .asciiz "Ingrese una coordenada para Y"
- error: .asciiz "Ingrese nuevamente la coordenada"
- coorX: .byte 0
- coorY: .byte 0
- color: .byte 0, 0, 0, 0
- x: .byte 0
- y: .byte 0
- .code
- lwu $s0,DATA($0)
- lwu $s1,CONTROL($0)
- daddi $t0,$0,6
- sd $t0,0($s1) ;limpio la pantalla de texto
- loop: daddi $t0,$0,msj
- sd $t0,0($s0) ;cargo el mensaje
- daddi $t0,$0,4
- sd $t0,0($s1);imprimo mensaje
- daddi $t0,$0,8
- sd $t0,0($s1) ;leo
- lwu $a0, 0($s0)
- daddi $t0,r0,msj2
- sd $t0,0($s0) ;cargo la direccion para leerla
- daddi $t0,r0,4
- sd $t0,0($s1);imprimo mensaje
- daddi $t0,r0,8
- sb $t0,0($s1) ;leo
- lwu $a1, 0($s0) ; los guardo para pasarlos a las subrutinas
- jal verificar
- bnez $v0, cont
- daddi $t0,$0,error
- sd $t0,0($s0) ;cargo el mensaje de error
- daddi $t0,$0,4
- sd $t0,0($s1);imprimo mensaje
- j loop
- cont: sd $a2, coorX($0)
- sd $a3, coorY($0)
- jal imprimir
- halt
- ; slt rd, rf, rg Compara rf con rg, dejando rd=1 si rf es menor que rg (valores con signo)
- ; bne rd, rf, offN Si rd no es igual a rf, salta a la dirección rotulada offN
- verificar: daddi $v0, $0, 0
- daddi $t4, $0, 25
- daddi $t5, $0, 1
- slti $v0, $a0, 50 ; si vale 1 la de x es menor que 50
- bne $v0, $t5, mal
- slt $v0, $t4, $a0
- bne $v0, $t5, mal
- slti $v0, $a1, 50 ; si vale 0 la de y es menor que 50
- bne $v0, $t5, mal
- slt $v0, $t4, $a1
- mal: jr $ra
- imprimir: lbu $t8, coorX($0)
- lbu $t9, coorY($0)
- daddi $s4, $0, 7
- lbu $s5, x($0); esta va a ser la coord x
- sd $s4, 0($s1); limpio la pantalla grafica
- daddi $t0, $0, 1
- lwu $s3, color($0)
- loop1: sw $s3, 0($s0) ; cargo el color
- sb $t9, 4($s0) ;cargo la coord y
- sb $s5, 5($s0); cargo la coord x
- daddi $s6, $0, 5
- sd $s6, 0($s1) ;imprime
- daddi $s5, $s5, 1
- slti $t1, $s5, 50
- beq $t0, $t1, loop1
- lbu $s2, y($0); esta va hacer la coord y
- loop2: sb $s2, 4($a0); cargo la coord y
- sb $t8, 5($a0) ;cargo la coord x
- daddi $t3, $0, 5
- sb $t3, 0($s1)
- daddi $s2, $s2, 1
- slti $t1, $s2, 50
- beq $t0, $t1, loop2
- jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement