If you can't read please download the document
Upload
marco-cruz
View
217
Download
1
Embed Size (px)
DESCRIPTION
saltos ensamblador
Citation preview
EJEMPLO DE SALTOS EN ENSAMBLADOR
PROGRAMA: sexos.asm DESCRIPCIN DEL PROGRAMA: Este programa solicita un caracter (en mayscula) y muestra como resultado: Es Hombre, Es Mujer o Error en dato si se introduce una M, F o cualquier otro carcter, respectivamente. OBJETIVO DEL PROGRAMA: Mostrar de manera visual el hilo de ejecucin del programa en cada una de las opciones AUTOR: Profesor Ricardo Cesar Cruz Robles FECHA: Marzo 12, 2014
INDICACIONES: A continuacin te presento el programa que soluciona el problema planteado y te pongo en diferente color las instrucciones que se realizan dependiendo del carcter ledo. La tabla de colores a utilizar es la siguiente:
NEGRO Las instrucciones comunes y que se ejecutan sin importar ninguna condicin
ROJO Las instrucciones que se realizan a partir de la comparacin y que corresponden a la introduccin de la letra M por parte del usuario
VERDE Las instrucciones que se realizan a partir de la comparacin y que corresponden a la introduccin de la letra F por parte del usuario
AZUL Las instrucciones que se realizan a partir de la comparacin y que corresponden a la introduccin por parte del usuario de un carcter que no es ni M ni F
GRIS Es el cdigo que no se realiza en cada situacin .
SI EL USUARIO INTRODUCE UNA M SI EL USUARIO INTRODUCE UNA F SI EL USUARIO INTRODUCE OTRO
CARACTER
.MODEL small
.STACK
.DATA cPeticion DB 'Escribe tu sexo (M/F): ','$' cHombre DB 'Eres HOMBRE ','$'
cMujer DB 'Eres MUJER ','$'
cError DB 'Error en dato','$'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AH,09H
LEA DX,cPeticion
INT 21H
MOV AH,01H
INT 21H
CMP AL,'M'
JE eEsHombre
CMP AL,'F'
JE eEsMujer
MOV AH,09H
LEA DX,cError
INT 21H
JMP eSalir
eEsHombre:
MOV AH,09H
LEA DX,cHombre
INT 21H
JMP eSalir
eEsMujer:
MOV AH,09H
LEA DX,cMujer
INT 21H
eSalir:
MOV AX,4C00H
INT 21H
END
.MODEL small
.STACK
.DATA cPeticion DB 'Escribe tu sexo (M/F): ','$' cHombre DB 'Eres HOMBRE ','$'
cMujer DB 'Eres MUJER ','$'
cError DB 'Error en dato','$'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AH,09H
LEA DX,cPeticion
INT 21H
MOV AH,01H
INT 21H
CMP AL,'M'
JE eEsHombre
CMP AL,'F'
JE eEsMujer
MOV AH,09H
LEA DX,cError
INT 21H
JMP eSalir
eEsHombre:
MOV AH,09H
LEA DX,cHombre
INT 21H
JMP eSalir
eEsMujer:
MOV AH,09H
LEA DX,cMujer
INT 21H
eSalir:
MOV AX,4C00H
INT 21H
END
.MODEL small
.STACK
.DATA cPeticion DB 'Escribe tu sexo (M/F): ','$' cHombre DB 'Eres HOMBRE ','$'
cMujer DB 'Eres MUJER ','$'
cError DB 'Error en dato','$'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AH,09H
LEA DX,cPeticion
INT 21H
MOV AH,01H
INT 21 H
CMP AL,'M'
JE eEsHombre
CMP AL,'F'
JE eEsMujer
MOV AH,09H
LEA DX,cError
INT 21H
JMP eSalir
eEsHombre:
MOV AH,09H
LEA DX,cHombre
INT 21H
JMP eSalir
eEsMujer:
MOV AH,09H
LEA DX,cMujer
INT 21H
eSalir:
MOV AX,4C00H
INT 21H
END
------------------------------------------------
; Propiedad intelectual: L.I. Ricardo Cesar Cruz Robles (1) ------------------------ ------------------------------------------------------------------
Si se introdujo una M,
salta a la etiqueta
eEsHombre
Muestra el mensaje Es
HOMBRE almacenado
en la variable cHombre
SALTA al final del
programa (a la
etiqueta eSalir) y
omite el cdigo de
abajo
Si NO se introdujo una
M, compara si se
introdujo una F y si es
as, salta a la etiqueta
eEsMujer
Muestra el
mensaje Es
MUJER
almacenado en la
variable cMujer.
OJO!!, no se usa
otro salto, ya que
las instrucciones
de abajo ya
terminan con el
programa.
Si NO se tecle ni una
M, ni una F,
entonces
Se muestra el
mensaje de error y
SALTA al final del
programa (a la
etiqueta eSalir)
omitiendo todo el
cdigo de abajo