Advertisement
Mercedes

robben

Jul 10th, 2014
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. .data
  2. CONTROL: .word32 0x10000
  3. DATA: .word32 0x10008
  4. msj: .asciiz "Ingrese una coordenada para X"
  5. msj2: .asciiz "Ingrese una coordenada para Y"
  6. error: .asciiz "Ingrese nuevamente la coordenada"
  7. coorX: .byte 0
  8. coorY: .byte 0
  9. color: .byte 0, 0, 0, 0
  10. x: .byte 0
  11. y: .byte 0
  12. .code
  13. lwu $s0,DATA($0)
  14. lwu $s1,CONTROL($0)
  15.  
  16. daddi $t0,$0,6
  17. sd $t0,0($s1) ;limpio la pantalla de texto
  18.  
  19. loop: daddi $t0,$0,msj
  20. sd $t0,0($s0) ;cargo el mensaje
  21. daddi $t0,$0,4
  22. sd $t0,0($s1);imprimo mensaje
  23.  
  24. daddi $t0,$0,8
  25. sd $t0,0($s1) ;leo
  26. lwu $a0, 0($s0)
  27.  
  28.  
  29.  
  30. daddi $t0,r0,msj2
  31. sd $t0,0($s0) ;cargo la direccion para leerla
  32. daddi $t0,r0,4
  33. sd $t0,0($s1);imprimo mensaje
  34.  
  35.  
  36.  
  37. daddi $t0,r0,8
  38. sb $t0,0($s1) ;leo
  39. lwu $a1, 0($s0) ; los guardo para pasarlos a las subrutinas
  40.  
  41. jal verificar
  42. bnez $v0, cont
  43.  
  44. daddi $t0,$0,error
  45. sd $t0,0($s0) ;cargo el mensaje de error
  46. daddi $t0,$0,4
  47. sd $t0,0($s1);imprimo mensaje
  48.  
  49. j loop
  50.  
  51.  
  52. cont: sd $a2, coorX($0)
  53. sd $a3, coorY($0)
  54. jal imprimir
  55.  
  56.  
  57.  
  58. halt
  59.  
  60. ; slt rd, rf, rg Compara rf con rg, dejando rd=1 si rf es menor que rg (valores con signo)
  61.  
  62. ; bne rd, rf, offN Si rd no es igual a rf, salta a la dirección rotulada offN
  63.  
  64. verificar: daddi $v0, $0, 0
  65. daddi $t4, $0, 25
  66. daddi $t5, $0, 1
  67. slti $v0, $a0, 50 ; si vale 1 la de x es menor que 50
  68. bne $v0, $t5, mal
  69. slt $v0, $t4, $a0
  70. bne $v0, $t5, mal
  71. slti $v0, $a1, 50 ; si vale 0 la de y es menor que 50
  72. bne $v0, $t5, mal
  73. slt $v0, $t4, $a1
  74. mal: jr $ra
  75.  
  76.  
  77.  
  78.  
  79. imprimir: lbu $t8, coorX($0)
  80. lbu $t9, coorY($0)
  81. daddi $s4, $0, 7
  82.  
  83.  
  84. lbu $s5, x($0); esta va a ser la coord x
  85. sd $s4, 0($s1); limpio la pantalla grafica
  86. daddi $t0, $0, 1
  87. lwu $s3, color($0)
  88.  
  89. loop1: sw $s3, 0($s0) ; cargo el color
  90. sb $t9, 4($s0) ;cargo la coord y
  91. sb $s5, 5($s0); cargo la coord x
  92. daddi $s6, $0, 5
  93. sd $s6, 0($s1) ;imprime
  94. daddi $s5, $s5, 1
  95. slti $t1, $s5, 50
  96. beq $t0, $t1, loop1
  97. lbu $s2, y($0); esta va hacer la coord y
  98.  
  99.  
  100. loop2: sb $s2, 4($a0); cargo la coord y
  101. sb $t8, 5($a0) ;cargo la coord x
  102. daddi $t3, $0, 5
  103. sb $t3, 0($s1)
  104. daddi $s2, $s2, 1
  105. slti $t1, $s2, 50
  106. beq $t0, $t1, loop2
  107. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement