Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 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. jmp REG_TERMINA
  163.  
  164. REG_SIGUE:
  165. INC cl
  166. JMP REG_BUCLE
  167.  
  168. REG_TERMINA:
  169. RET
  170.  
  171.  
  172.  
  173. MOSTRAR_BIEN:
  174. MOV dx, offset BIENTEXTO
  175. MOV ah,9
  176. INT 21h
  177.  
  178. MOV DL, BIEN
  179. ADD DL, 48
  180. MOV ah,2
  181. INT 21h
  182. ; CALL MOSTRAR_ENTER
  183. ; XOR bx,bx
  184. ; MOV bl, BIEN
  185. ; MOV dl, NUMEROS[bx]
  186. ; MOV ah,2
  187. ; INT 21h
  188. RET
  189.  
  190. MOSTRAR_REGULAR:
  191. MOV dx, offset REGULARTEXTO
  192. MOV ah,9
  193. INT 21h
  194.  
  195. MOV DL, REGULAR
  196. ADD DL, 48
  197. MOV ah,2
  198. INT 21h
  199. ; CALL MOSTRAR_ENTER
  200. ; XOR bx,bx
  201. ; MOV bl, REGULAR
  202. ; MOV dl, NUMEROS[bx]
  203. ; MOV ah,2
  204. ; INT 21h
  205. RET
  206.  
  207. MOSTRAR_GANO:
  208. CALL MOSTRAR_ENTER
  209. MOV dx, offset GANO
  210. MOV ah,9
  211. INT 21h
  212. RET
  213.  
  214. MOSTRAR_PERDIO:
  215. CALL MOSTRAR_ENTER
  216. MOV dx, offset PERDIO
  217. MOV ah,9
  218. INT 21h
  219. RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement