Vous êtes sur la page 1sur 1

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
ROJO
VERDE
AZUL
GRIS

Las instrucciones comunes y que se ejecutan sin importar ninguna condicin


Las instrucciones que se realizan a partir de la comparacin y que corresponden a la
introduccin de la letra M por parte del usuario
Las instrucciones que se realizan a partir de la comparacin y que corresponden a la
introduccin de la letra F por parte del usuario
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
Es el cdigo que no se realiza en cada situacin

SI EL USUARIO INTRODUCE UNA M


.MODEL small
.STACK
.DATA
cPeticion

.MODEL small
.STACK
.DATA

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

SI EL USUARIO INTRODUCE UNA F

Si se introdujo una M,
salta a la etiqueta
eEsHombre

CMP AL,'M'

cPeticion

.MODEL small
.STACK
.DATA

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

SI EL USUARIO INTRODUCE OTRO


CARACTER

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

Si NO se introdujo una
M, compara si se
introdujo una F y si es
as, salta a la etiqueta
eEsMujer

MOV AH,01H
INT 21H

CMP AL,'F'
JE eEsMujer

CMP AL,'F'
JE eEsMujer

CMP AL,'M'
JE eEsHombre
CMP AL,'F'
JE eEsMujer

MOV AH,09H
LEA DX,cError
INT 21H
JMP eSalir

MOV AH,09H
LEA DX,cError
INT 21H
JMP eSalir

MOV AH,09H
LEA DX,cError
INT 21H
JMP eSalir

eEsHombre:
MOV AH,09H
LEA DX,cHombre
INT 21H
JMP eSalir

eEsHombre:
MOV AH,09H
LEA DX,cHombre
INT 21H
JMP eSalir

JE eEsHombre

Muestra el mensaje Es
HOMBRE almacenado
en la variable cHombre

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

SALTA al final del


programa (a la
etiqueta eSalir) y
omite el cdigo de
abajo

eEsMujer:
MOV AH,09H
LEA DX,cMujer
INT 21H
eSalir:
MOV AX,4C00H
INT 21H
END

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.

eEsMujer:
MOV AH,09H
LEA DX,cMujer
INT 21H

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

eSalir:
MOV AX,4C00H
INT 21H
END

------------------------------------------------

; Propiedad intelectual: L.I. Ricardo Cesar Cruz Robles (1)


------------------------------------------------------------------------------------------

Vous aimerez peut-être aussi