Advertisement
Guest User

Untitled

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