etc bla bla

Páginas: 7 (1565 palabras) Publicado: 19 de mayo de 2013
LENGUAJE ENSAMBLADOR

Reporte de Investigación
Aleatorio
Ciclo loop
Lectura de caracteres
Interrupciones

Practica
Juego del topo

Dr. Carlos Torres Reyes

1

mayo 2013

Generación de un número aleatorio
En un número aleatorio lo más importante es saber cuál será la base para generarlos en este caso
se tomó el timer del sistema en este caso usando los milisegundo. Parautilizarlo se utilizó la
interrupción 21h con la función 2ch donde su comportamiento en los registros es el siguiente:
“mov ah,2Ch ;determina la hora del sistema
Int 21h
CH contiene la hora (00 - 23)
DH contiene segundos (00 - 59)
CL contiene minutos (00 - 59)
DL contiene milisegundos (00 - 59)

El primer intento por generar el aleatorio usando el registro DL “que contiene los milisegundos”pero se tenía muchas fallas ya que se obtenían símbolos raros en donde la obtención de ellos era
con uso de las teclas especiales y muy difíciles de obtenerlos. Todos estos símbolos se tenían que
eliminar.
La solución fue utilizar un registro completo en este caso AX y usamos aaa “Convierte el número
almacenado en AL a BCD desempaquetado. La idea es aplicarlo después de sumar BCDs
noempaquetados.” ” Tenemos en AX el BCD no empaquetado 47 (0407h) y en BX 14
(0104h). Queremos sumarlos, y que el resultado siga siendo un BCD no empaquetado,
para obtener un resultado coherente. ”
Para generar un numero un poco más complejo ya que se un registro ax a otros pero l y h luego se
sumaban y se tenía un solo número.

Solución a la elección de juego “con números, letras mayúsculas y letrasminúsculas”
Lo fácil de usar el lenguaje ensamblador es que simple se están usando números, y las
comparaciones se hacen más fáciles.
Solo se tienen que fijar intervalos para cada tipo de carácter “letras, números”. El punto clave para
hacer esto es la suma y solo se tiene que hacer una comparación ya que mi numero principal es de
0 a 9 y no se dé requiere hacer la comparación de a39
h
siImprimir num

Leer numUsuario
no

Fin

Fallo++

Num=
numUsuario

si
Imprimir
“marcador”
Fallos=fallos
Aciertos=marcador

Marcador++

no
3

Repeticione
s>0

si

mayo 2013

Código
.model small
.data
la db ?
lb db ?
lc db ?
ld db ?
le db ?
marcador db ?
fallos db ?
opciones db ?
repeti db ?
rep1 db ?
rep2 db ?
rep3 db ?
msg db "",0ah,0dh, "$"
xxx db0ah,0dh, "mi
numeros: $"
xxxx db 0ah,"Regresando al
menu$"
v
db " ",0ah,0dh, "$"
x
db " X ",0ah,0dh, "$"
num1 db ?
num2 db ?
num db ?
usua db ?
punt db ?
opc db ?
msg1 db "Dame Tu
GamerName [solo letras]:$"
msgI db
"Instrucciones",0ah,0dh,"$"
msgT db "*El juego del Topo
consiste en oprimir la tecla
con el valor mencionado por
la computador dentro del
limite de
tiempo",0ah,0dh,"$"msT db "*Tendras 10
oportunidades",0ah,0dh,"$"
msgM db "Menu [Selecciona
el numero de la
opcion]",0ah,0dh,"$"
opc1 db "1.-Topo
numerico",0ah,0dh,"$"
opc2 db "2.-Topo Letras
Mayusculas",0ah,0dh,"$"
opc3 db "3.-Topo Letras
Minusculas",0ah,0dh,"$"
msgR db "Tu opcion $"
sali db "0.-Salir",0ah,0dh,"$"
tituloA db "El TOPO con
Numeritos",0ah,0dh,"$"
tituloB db "El TOPO conMayusculas",0ah,0dh,"$"
tituloC db "El TOPO con
Minusculas",0ah,0dh,"$"
msg2 db "OKY Bye Bye$"
msgM1 db "Tu Marcador $"

4

msgM2 db "Aciertos--------$"
msgM3 db "Fallos----------$"
.code
.startup
clear macro
mov ah,00h ;limpia la
pantalla
mov al,03h
int 10h
endm
espera macro
mov ah,0h
int 16h
endm
abajo macro:
lea dx, msg
mov ah,9h
int 21h
endm
mov ah,09h
lea dx,msg1
int 21h
movah,01h
int 21h
mov la,al
mov ah,01h
int 21h
mov lb,al
mov ah,01h
int 21h
mov lc,al
mov ah,01h
int 21h
mov ld,al
mov ah,01h
int 21h
mov le,al
clear
mov ah,09h
lea dx,msgI
int 21h
mov ah,09h
lea dx,msgT
int 21h
mov ah,09h
lea dx,msT
int 21h
espera
clear
Menu:
mov ah,09h
lea dx,msgM
int 21h
mov ah,09h
lea dx,opc1
int 21h
mov ah,09h
lea dx,opc2

int 21h
mov...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Bla bla bla bla ...
  • Bla bla bla bla bla
  • bla bla bla bla
  • bla bla bla bla bla
  • bla bla bla bla
  • Bla Bla Bla Bla
  • Bla bla bla bla
  • Bla bla bla

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS