PIXEL_MIPS_MARS

Páginas: 2 (353 palabras) Publicado: 15 de mayo de 2013
# Programa Pixel: imprime en pantalla una unidad de 8 x 8 por pixel (Ajsutar bitmap)
.data

dirmemoria: .word 0x10040000
ancho: .word 64
cordX: .asciiz "Introducir la coordenadaX: " # 0 - 63
cordY: .asciiz "Introducir la coordenada Y: " # 0 - 63
mensaje1: .asciiz "Cordenada fuera de rango"
color: .asciiz "Introducir el valor del color: "
mensaje2:.asciiz "Error fuera de rango"

.text

posX:
li $v0, 51 # cargo el codigo de la llamada
la $a0, cordX # cargo el texto correspondiente
syscall # realizar llamada
bltz $a0,error1# salto si hay error por introducir numero negativo
bge $a0, 64, error1 # salto si hay error por introducir numero fuera de rango
move $s0, $a0 # salvo el valor introcucido.
## add $t0,$zero,$a0

posY:
li $v0, 51 # Cargo el codigo de la llamada
la $a0, cordY
syscall
bltz $a0,error2 # salto si hay error por introducir numero negativo
bge $a0, 64, error2 # salto sihay error por introducir numero fuera de rango
move $s1, $a0
##add $t1, $zero,$a0

Color:
li $v0,51
la $a0,color
syscall
bltz $a0,error3 #salto si hay error por numero negativo
bge $a0,0xFFFFFF,error3 # salto si el valor introducido es mayor a 0xFFFFFF
move $s2,$a0 # salvo el valor introducido

move $a0,$s0# a0 contiene la coordenada X del pixel
move $a1,$s1 # a2 contiene la coordenada Y del pixel
move $a2,$s2 # a3 contiene el color del pixel

jal Setpixel

fin:
li$v0, 10 # llamada a syscall para finalizar (EXIT)
syscall

##################################################################################################################
#Subrutina error

error1:
li $v0, 55 # LLamada para mensaje de error
li $a1, 0 # argumento del msj
la $a0, mensaje1
syscall
j posX # retorna PosX

error2:
li $v0, 55 #...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS