Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.80 KB | None | 0 0
  1. ; You may customize this and other start-up templates;
  2. ; The location of this template is c:\emu8086\inc\0_com_template.txt
  3.  
  4. org 100h
  5.  
  6. .DATA
  7.  
  8. MAXLONG equ 20
  9. OCULTA db MAXLONG+1 dup (0)
  10. AUX db MAXLONG+1 dup (0)
  11. LONGITUD db 0
  12. BIEN db 0
  13. REGULAR db 0
  14. INTENTOS db 10
  15. GANO db "GANO$"
  16. PERDIO db "PERDIO$"
  17. NUMEROS db "0123456789$"
  18. enter db 13,10,"$"
  19. BIENTEXTO db " Bien: $"
  20. REGULARTEXTO db " Regular: $"
  21.  
  22. .CODE
  23. CALL INICIO
  24. CALL INGRESAR_OCULTA
  25.  
  26. INTENTO:
  27. call copiar
  28.  
  29. MOV dl, LONGITUD
  30. MOV bx, 0
  31. MOV BIEN,0
  32. MOV REGULAR,0
  33. BUCLE:
  34. CMP dl,bl
  35. JE TERMINAR
  36. CALL INGRESAR
  37. CALL MARCAR
  38. JMP BUCLE
  39.  
  40.  
  41. TERMINAR:
  42.  
  43. ;MOV dh, BIEN
  44. ;MOV bh, REGULAR
  45. CALL MOSTRAR_BIEN
  46. CALL MOSTRAR_REGULAR
  47. MOV dl, LONGITUD
  48. CMP BIEN, dl
  49. JE MOSTRAR_GANO
  50. DEC INTENTOS
  51. CMP INTENTOS,0
  52. JE MOSTRAR_PERDIO
  53. CALL MOSTRAR_ENTER
  54. JMP INTENTO
  55.  
  56.  
  57. ;CMP bx, 0
  58. ;JA MOSTRAR_PERDIO
  59. ;CMP cx, 0
  60. ;JB MOSTRAR_PERDIO
  61.  
  62. ret
  63.  
  64. INICIO:
  65.  
  66. mov INTENTOS, 10
  67. RET
  68.  
  69. ;Lee lo que ingresan por consola, y lo almacena en la variable texto
  70. INGRESAR_OCULTA:
  71. mov di, offset OCULTA ;para poder guardar la PALABRA PRINCIPAL
  72. INGRESAR_OCULTA_BUCLE:
  73. mov ah, 7
  74. int 21h
  75. cmp al, 13
  76. jne INGRESAR_OCULTA_LEER
  77. ;MOV [LONGITUD], di
  78. mov [di], 36
  79. mov dx, offset enter
  80. mov ah, 9
  81. int 21h
  82. ;call muestra
  83. RET
  84.  
  85. INGRESAR_OCULTA_LEER:
  86. mov [di], al
  87. inc di
  88. inc LONGITUD
  89. mov dl, 42
  90. mov ah, 2
  91. int 21h
  92. jmp INGRESAR_OCULTA_BUCLE
  93.  
  94. MUESTRA:
  95. mov dx, offset OCULTA
  96. mov ah, 9
  97. int 21h
  98. call MOSTRAR_ENTER
  99. ret
  100.  
  101. MOSTRAR_ENTER:
  102. mov dx, offset enter
  103. mov ah, 9
  104. int 21h
  105. RET
  106.  
  107. INGRESAR:
  108. mov ah, 1
  109. int 21h
  110. inc bx
  111. RET
  112.  
  113. COPIAR:
  114.  
  115. MOV bx,0
  116. MOV dl, LONGITUD
  117. COPIAR_BUCLE:
  118. MOV al,OCULTA[bx]
  119. MOV AUX[bx], al
  120. INC bx
  121. CMP bl,dl
  122. JNE COPIAR_BUCLE
  123.  
  124. RET
  125.  
  126. MARCAR:
  127. CALL MARCAR_BIEN
  128.  
  129. RET
  130.  
  131. MARCAR_BIEN:
  132.  
  133. CMP al,OCULTA[bx-1]
  134. JE SUMARBIEN
  135.  
  136. CALL MARCAR_REGULAR
  137. SEGUIR:
  138. RET
  139.  
  140. SUMARBIEN:
  141. INC BIEN
  142. mov aux[bx-1],0
  143. JMP SEGUIR
  144.  
  145. MARCAR_REGULAR:
  146. XOR cx,cx ;limpio cx
  147. MOV ah, LONGITUD
  148.  
  149. REG_BUCLE:
  150. CMP cl, ah
  151. JA REG_TERMINA
  152. MOV si, cx
  153. ;Comparo la letra ingresada con el caracter de la pos del bucle.
  154. CMP al, aux[si-1]
  155. ;si es diferente, sigo
  156. JNE REG_SIGUE
  157. ;Si se da la coincidencia en la misma posicion, es BIEN.
  158. CMP cl, bl
  159. JE REG_SIGUE
  160.  
  161. INC REGULAR
  162.  
  163. REG_SIGUE:
  164. INC cl
  165. JMP REG_BUCLE
  166.  
  167. REG_TERMINA:
  168. RET
  169.  
  170. MOSTRAR_BIEN:
  171. MOV dx, offset BIENTEXTO
  172. MOV ah,9
  173. INT 21h
  174.  
  175. MOV DL, BIEN
  176. ADD DL, 48
  177. MOV ah,2
  178. INT 21h
  179. ; CALL MOSTRAR_ENTER
  180. ; XOR bx,bx
  181. ; MOV bl, BIEN
  182. ; MOV dl, NUMEROS[bx]
  183. ; MOV ah,2
  184. ; INT 21h
  185. RET
  186.  
  187. MOSTRAR_REGULAR:
  188. MOV dx, offset REGULARTEXTO
  189. MOV ah,9
  190. INT 21h
  191.  
  192. MOV DL, REGULAR
  193. ADD DL, 48
  194. MOV ah,2
  195. INT 21h
  196. ; CALL MOSTRAR_ENTER
  197. ; XOR bx,bx
  198. ; MOV bl, REGULAR
  199. ; MOV dl, NUMEROS[bx]
  200. ; MOV ah,2
  201. ; INT 21h
  202. RET
  203.  
  204. MOSTRAR_GANO:
  205. CALL MOSTRAR_ENTER
  206. MOV dx, offset GANO
  207. MOV ah,9
  208. INT 21h
  209. RET
  210.  
  211. MOSTRAR_PERDIO:
  212. CALL MOSTRAR_ENTER
  213. MOV dx, offset PERDIO
  214. MOV ah,9
  215. INT 21h
  216. RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement