Sie sind auf Seite 1von 22

Reporte:

Practica 2: men y prctica 3: secuencia

Materia:
Lenguajes de Interfaz

Alumno(a):
Nydia Karen Ocaa Lpez

Catedrtico:
M.C Nstor Antonio Morales Navarro

Fecha:
05/Julio/2013

LENGUAJE DE INTERFAZ

Practica 1: Men. Introduccin: En esta prctica se realizara un men en el emu 8086, el cual debe contener cuatro opciones: 1: Comparar dos nmeros. 2: determinar si un nmero es mayor que otro. 3: cambiar a mayscula. 4: salir El usuario al realizar al cdigo el debe obtener el men en el que debe elegir una de las cuatro opciones que se presentaron, si oprime algo de lo que no est contemplado le mostrar un mensaje de error. En la opcin 1. El usuario digitara 2 nmeros de los cuales mostrara si son iguales o no. En la opcion2. Se insertaran dos nmeros y el programa mostrar el nmero mayor La opcion3. Se insertar una letra minscula que se transformar en mayscula, de lo contrario se mostrar un mensaje de error. Y opcin 4. Al digitar est opcin saldr el programa. Descripcin del programa: Primeramente se declar todas las variables para las cuatro opciones del men; despus el desarrollo del algoritmo, donde se usaron diversos comandos nuevos.

lea: manda a llamar el mensaje almacenndola en un registro de operacin. Cmp: son operaciones de la cual verifica el resultado de operaciones.

LENGUAJE DE INTERFAZ

je: son saltos condiciones, indica salta a la etiqueta si es igual jne: Salta si no es igual o salta si no es cero.
Jae: salto si es mayor o igual. Si no menor. Lea: cargamos en dx la direccin efectiva del texto que vamos a imprimir por pantalla. Jmp: salto incondicional, estn dados para alterar el flujo de la ejecucin del programa enviando el control a la direccin indicada.

Cdigo:

.model small .stack .data N db ?

; modelo pequeo de compilacion ; segmento de pila ;comienzo del segmento de datos ;

menu db 10,13,"----------------------MENU----------------------$" op1 db 10,13, "1.- comparar dos numeros$" op2 db 10,13, "2.- determinar si un numero es mayor que otro$" op3 db 10,13, "3.- cambiar a mayuscula$" op4 db 10,13, "4.- salir$" espacio db 10,13,"$" error1 db 10,13,"ERROR1: Seleccione una de las opciones . . .$" ;variables para op1 msj1 db 10,13, "Inserta un numero: $" msj2 db 10,13, "Inserta otro numero: $"

LENGUAJE DE INTERFAZ

msj3 db 10,13, "Los numeros son iguales$" msj4 db 10,13, "Los numeros no son iguales$" error2 db 10,13, "ERROR2: Debe ingresar un numero...$" ;variables para op2 msj5 db 10,13, "El numero mayor es: $",10,13 ;variables para op3 msj6 db 10,13, "Inserta una letra: $" msj7 db 10,13, "Caracter Cambiado: $" error3 db 10,13, "ERROR3: Debe ingresar una letra (minuscula): $" .code .startup SELECCION: ;IMPRIMIR MENU mov ah, 09h lea dx, espacio int 21h mov ah, 09h lea dx, menu int 21h mov ah, 09h lea dx, op1 int 21h mov ah, 09h ;comienzo del segmento de datos

LENGUAJE DE INTERFAZ

lea dx, op2 int 21h mov ah, 09h lea dx, op3 int 21h mov ah, 09h lea dx, op4 int 21h mov ah, 09h lea dx, espacio int 21h ;esperar a que el usuario ingrese numero mov ah,01h int 21h sub al, 30h mov cl, al ;EL PROGRAMA BUSCA LA OPCION DEL USUARIO cmp cl,4 ;si CL = 4 je SALIR ;else jne MAYU

LENGUAJE DE INTERFAZ

MAYU: cmp cl,3 je MAYUSCULAS jne MAY MAY: cmp cl,2 je MAYOR jne COMP COMP: cmp cl,1 je COMPARAR jne E1 ;------Error1: cuando se ingresa numero en menu-------------E1: mov ah, 09h lea dx, espacio int 21h mov ah, 09h lea dx, error1 int 21h

LENGUAJE DE INTERFAZ

mov ah, 09h lea dx, espacio int 21h jmp SELECCION ;CAMBIAR A MAYUSCULAS MAYUSCULAS: mov ah, 09h lea dx, espacio int 21h ;se manda a pedir un caracter mov ah, 09h lea dx, msj6 int 21h mov ah, 01h ;espera a ingresar un caracter int 21h mov bl, al ;ERROR4: debe ser letra minuscula-------------mov al, 60h cmp bl, al jae simayor9 ;bl > al pasa a sig comprobacion jmp nomayor9 ;bl < al error2

LENGUAJE DE INTERFAZ

nomayor9: mov ah, 09h lea dx, error3 int 21h jmp MAYUSCULAS simayor9: mov al, 7Bh cmp bl, al jae simayor0 ; bl >40 error2 jmp nomayor0 ; bl <40 se ejecuta simayor0: mov ah, 09h lea dx, error3 int 21h jmp MAYUSCULAS nomayor0: ;---------------------------------------------mov ah, 09h lea dx, espacio

LENGUAJE DE INTERFAZ

int 21h sub bl, 20h; se transforma a Mayuscula mov ah, 09h lea dx, msj7 int 21h mov ah, 02h mov dl, bl ; se guarda en dl, para imprimir el caracter int 21h jmp SELECCION ;DETERMINAR SI UN NUMERO ES MAYOR QUE OTRO MAYOR: mov ah, 09h lea dx, espacio int 21h ;se pide el primer numero mov ah, 09h lea dx, msj1 int 21h mov ah, 01h int 21h

LENGUAJE DE INTERFAZ

mov bl, al ;ERROR3---------------------------mov al, 2Fh cmp bl, al jae simayor5 ;bl > al pasa a sig comprobacion jmp nomayor5 ;bl < al error2 nomayor5: mov ah, 09h lea dx, error2 int 21h jmp COMPARAR simayor5: mov al, 3Ah cmp bl, al jae simayor6 ; bl >40 error2 jmp nomayor6 ; bl <40 se ejecuta simayor6: mov ah, 09h lea dx, error2 int 21h

LENGUAJE DE INTERFAZ

jmp MAYOR nomayor6: ;---------------------------------;se pide el segundo numero mov ah, 09h lea dx, msj2 int 21h mov ah, 01h int 21h mov bh, al ;ERROR3---------------------------mov al, 2Fh cmp bh, al jae simayor7 ;bl > al pasa a sig comprobacion jmp nomayor7 ;bl < al error2 nomayor7: mov ah, 09h lea dx, error2 int 21h jmp COMPARAR

LENGUAJE DE INTERFAZ

simayor7: mov al, 3Ah cmp bh, al jae simayor8 ; bl >40 error2 jmp nomayor8 ; bl <40 se ejecuta simayor8: mov ah, 09h lea dx, error2 int 21h jmp MAYOR nomayor8: ;---------------------------------;se comparan cmp bh,bl jae bhmayor jmp blmayor bhmayor: mov ah, 09h lea dx, msj5 int 21h

LENGUAJE DE INTERFAZ

mov ah, 02h mov dl, bh int 21h jmp SELECCION blmayor: mov ah, 09h lea dx, msj5 int 21h mov ah, 02h mov dl, bl int 21h jmp SELECCION ;COMPARAR DOS NUMEROS COMPARAR: mov ah, 09h lea dx, espacio int 21h ;ingresa un numero mov ah, 09h lea dx, msj1

LENGUAJE DE INTERFAZ

int 21h mov ah, 01h ;ingresa un numero int 21h mov bl, al ;pruebas buscar error2------------------------------mov al, 2Fh cmp bl, al jae simayor ;bl > al pasa a sig comprobacion jmp nomayor ;bl < al error2 nomayor: mov ah, 09h lea dx, error2 int 21h jmp COMPARAR simayor: mov al, 3Ah cmp bl, al jae simayor2 ; bl >40 error2 jmp nomayor2 ; bl <40 se ejecuta simayor2:

LENGUAJE DE INTERFAZ

mov ah, 09h lea dx, error2 int 21h jmp COMPARAR nomayor2: ;-------------------------------;ingresa otro numero mov ah, 09h lea dx, msj2 int 21h mov ah, 01h ;ingresa un caracter int 21h mov bh, al ;buscar error2 mov al, 2Fh cmp bh, al jae simayor3 ;bl > al pasa a sig comprobacion jmp nomayor3 ;bl < al error2 nomayor3: mov ah, 09h

LENGUAJE DE INTERFAZ

lea dx, error2 int 21h jmp COMPARAR simayor3: mov al, 3Ah cmp bh, al jae simayor4 ; bl >40 error2 jmp nomayor4 ; bl <40 se ejecuta simayor4: mov ah, 09h lea dx, error2 int 21h jmp COMPARAR nomayor4: ;----------------------------------;comparar bh y bl cmp bh, bl je iguales jne noigual

LENGUAJE DE INTERFAZ

iguales: mov ah, 09h lea dx, espacio int 21h mov ah, 09h lea dx, msj3 int 21h jmp SELECCION noigual: mov ah, 09h lea dx, espacio int 21h mov ah, 09h lea dx, msj4 int 21h jmp SELECCION ;SALIR SALIR: .exit end

LENGUAJE DE INTERFAZ

SECUENCIA DE NUMEROS. En este programa el usuario ingresa nmeros del 0 al 9, los cuales son declarados en un arreglo, cuando se llene dicho arreglo, se presionara enter, y el programa imprimir dichos nmeros en pantalla. Si el usuario ingresa otro carcter que no sean nmeros del 0 al 9, el programa no guarda el carcter. Comandos nuevos utilizados: dw: doble palabra. aam: ajuste ASCII para multiplicacin. inc: incremento jne: Salta si no es igual o salta si no es cero.
CODIGO:

data segment secuencia dw 1,2,3,1,1,3 valor dw ? mensaje1 dw 10, 13, "La secuencia guardada es: $" espacio db 10,13,"$"

ends

LENGUAJE DE INTERFAZ

stack segment dw 128 dup(0) ends

code segment mov ax, @data mov ds, ax

mov cx, 0

ciclo:

mov ah, 01h ;guarda en al int 21h mov bl, al cmp al, 0Dh je termina ; termina si es enter jne seguir ; pasa a comprobar que sea un numero

LENGUAJE DE INTERFAZ

seguir: ;error--------------------------

mov al, 2Fh cmp bl, al jae simayor ;bl > al pasa a sig comprobacion jmp nomayor ;bl < al error2

nomayor:

jmp ciclo

simayor: mov al, 3Ah cmp bl, al jae simayor2 ; bl >40 error2 jmp nomayor2 ; bl <40 se ejecuta

LENGUAJE DE INTERFAZ

simayor2:

jmp ciclo

nomayor2: ;------------------------------mov al, bl sub al, 30h aam

mov si, cx mov secuencia[si], ax inc cx mov valor, cx

jmp ciclo termina: mov cx, 0

LENGUAJE DE INTERFAZ

mov ah, 09h lea dx, espacio;separacion int 21h

imprimir:

mov si, cx mov ax, secuencia[si] add al, 30h mov ah, 0Eh int 10h inc cx cmp cx, valor jne imprimir mov ax, 4c00h int 21h ends

Das könnte Ihnen auch gefallen