Está en la página 1de 11

INSTITUTO TECNOLGICO DE ACAPULCO

Ingeniera en Sistemas Computacionales

MATERIA: LENGUAJES DE INTERFAZ


Maestro: Ing. Dagoberto Urza Osorio

PROGRAMA 6
Integrantes:
DAZ NAVARRETE TANIA

12320712

ESCOBAR ARREDONDO DIANA

12320719

JUSTO GARCA PAMELA LIZETTE

12320761

LOPEZ SIERRA JESSICA

12320770

Horario: 11:00-13:00
Aula: 604
NDICE
Introduccin.....3
1

Marco terico...4
Planteamiento del problema...4
Solucin del problema5
Desarrollo.6
Resultados......8
Conclusiones......12
Bibliografa...13

INTRODUCCIN
Independientemente de lo que pretendamos hacer en nuestro programa, ste siempre deber contar con
unos elementos que podramos considerar mnimos. Es algo que ocurre en todos los lenguajes, sin
importar su nivel. En el caso concreto del ensamblador, adems, esos elementos dependern, por una
parte, del sistema operativo para el que estemos desarrollando y, por otra, del ensamblador (la
herramienta) que vayamos a usar para ensamblar. Al escribir un programa para DOS, por ejemplo, hay
que tener en cuenta que estamos creando un programa para un entorno de 16 bits que utiliza un modelo
de memoria segmentada. Esto se reflejar en el cdigo del programa en ensamblador, ya que es
2

necesario definir dichos segmentos. La sintaxis, adems, es distinta segn usemos MASM o NASM, por
poner un ejemplo. Cuando el programa va a tener como destino Windows o Linux no existen segmentos,
pero s secciones. Adems, puede ser necesaria la inclusin de archivos de cabecera para poder acceder
a servicios del sistema.
Programas Windows
A diferencia de DOS y Linux, que son sistemas operativos esencialmente basados en modo texto,
Windows utiliza una interfaz grfica como elemento central para comunicarse con el usuario. Es cierto
que podramos abrir una consola de lnea de comandos y, por supuesto, es posible crear aplicaciones de
consola para Windows. En la mayora de los casos, sin embargo, las aplicaciones contarn con una
interfaz grfica.
Para acceder a los servicios de Windows, lo que habitualmente se conoce como su API (Application
Vrogramming Interface), es necesario contar con definiciones de funciones, constantes, estructuras de
datos, etc. Todas esas definiciones hacen ms fcil utilizar dichos servicios. Adems, tambin son
precisas bibliotecas que permitan al ensamblador localizar las funciones a las que invoquemos.
El cdigo
Al igual que ocurre en Linux, en Windows trabajaremos siempre sobre un modelo
de memoria plano de 32 bits, sin necesidad de usar segmentos. Esto hace que el cdigo, que puede ver
a continuacin, sea algo ms simple.
.386
.model flat,stdcall
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
Titulo db "Programacin en ensamblador",0
Texto db "Hola Windows!",0
. code
Main:
invoke MessageBox, 0, offset Texto, offset Titulo, MB_OK
invoke ExitProcess, 0
end Main

Las dos primeras lneas del programa son directivas que le indican al ensamblador
el conjunto de instrucciones que vamos a usar, as como el modelo de memoria y la convencin de
llamadas a funciones.

MARCO TERICO
3

Lenguaje
ensamblador:
es
un lenguaje
de
programacin
de bajo
nivel para
los computadores, microprocesadores, micro-controladores y otros circuitos integrados programables.
Implementa una representacin simblica de los cdigos de mquina binarios y otras constantes
necesarias para programar una arquitectura dada de CPU y constituye la representacin ms directa
del cdigo mquina especfico para cada arquitectura legible por un programador.
Emu 8086: ms que nada es un depurador, es decir, con este programa no se puede ensamblar ni
enlazar, si no que ms que nada sirve para abrir archivos con extensin .exe o sea el ejecutable que
resulta al final, y al abrir sirve para depurar errores , ir viendo paso a paso el programa. Es de mucha
ayuda para poder encontrar errores o ver el funcionamiento lnea por lnea del programa.

PLANTEAMIENTO DEL PROBLEMA


Elaborar un programa en lenguaje ensamblador que muestre en pantalla 1 mensaje, en forma de men
de las operaciones bsicas. Aun teniendo la Lnea basura, ahora agregamos la opcin para que
apareciera un cursor en donde se pueda seleccionar una opcin mediante el teclado, se crearan las
etiquetas correspondientes para realizas las opciones necesarias en el men, en este caso todas las
operaciones faltantes, SUMA, RETSA, MUTIPLICACION Y DIVISION.
dago: MENU PRINCIPAL
1.- SUMA
2.-RESTA
3.-MULTIPLICACION
4.-DIVISION5
HASTA LA VISTA BABY

SOLUCIN DEL PROBLEMA


Realic la solucin elaborando el programa en lenguaje ensamblador con la siguiente lgica de
funcionamiento:
1. Prepar las variables para crear mi mensaje que contienen las cadenas de los mensajes en la
seccin .DATA
2. Llam a la funcin 09 de la interrupcin 21H para mostrar mi mensaje (dago).
3. Mostr en el display el mensaje antes escrito y un retorno de carro con ayuda de la interrupcin
21H y su funcin 02.
4. Despus de esto se declar un mensaje: bye db 10,13, 'HASTA LA VISTA BABY $'
;para este
programa esta lnea es basura
5. Se agreg una instruccin para que apareciera el cursos despus de SALIR (mov ah,01h).
6. Creamos la etiqueta SALIR, para que pudiramos mostrar en pantalla el mensaje HASTA LA
VISTA BABY, al introducir el nmero 5 en la pantalla.

7. Ya creadad todas las etiquetas restantes, con los nombres (uno,dos,tres,cuatro) ahora declaramos
los mensajes que queremos que se muestren en la pantalla despus de seleccionar la opcin
deseada.
8. Finalizo cerrando la ejecucin llamando a la funcin 4C00H de la interrupcin 21H regresando el
control al DOS.

DESARROLLO
.MODEL SMALL
.STACK
.DATA
DAGO DB 10,13, 'MENU PRINCIPAL'
DB 10,13, '1.-SUMA'
DB 10,13, '2.-RESTA'
DB 10,13, '3.-MULTIPLICACION'
DB 10,13, '4.-DIVISION'
DB 10,13, '5.-SALIR','$'
BYE DB 10,13, 'HASTA LA VISTA BABY $'
M1 DB 10,13, 'BIENVENIDOS A LA SUMA$'
M2 DB 10,13, 'BIENVENIDOS A LA RESTA$'
M3 DB 10,13, 'BIENVENIDOS A LA MULTIPLICACION$'
M4 DB 10,13, 'BIENVENIDOS A LA DIVISION$'
.CODE
MPRINCIPAL:
MOV AX,@DATA
MOV DS,AX
MOV DX,OFFSET DAGO
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
CMP AL,49
JE UNO
CMP AL,50
JE DOS
CMP AL,51
5

JE TRES
CMP AL,52
JE CUATRO
CMP AL,53
JE SALIR
JMP MPRINCIPAL
UNO:
MOV DX,OFFSET M1
MOV AH,09H
INT 21H
MOV AX,4C00H
INT 21H
DOS:
MOV DX,OFFSET M2
MOV AH,09H
INT 21H
MOV AX,4C00H
INT 21H
TRES:
MOV DX,OFFSET M3
MOV AH,09H
INT 21H
MOV AX,4C00H
INT 21H
CUATRO:
MOV DX,OFFSET M4
MOV AH,09H
INT 21H
MOV AX,4C00H
INT 21H
SALIR:
MOV DX,OFFSET BYE
MOV AH,09H
INT 21H
MOV AX,4C00H
INT 21H
END

RESULTADOS
En este men se puede seleccionar de entre estas opciones y se les da la bienvenida:

Opcin 1 es suma

Opcin 2 es resta

Opcin 3 es multiplicacin

Opcin 4 es divisin

Opcin 5 es salir y te enva un mensaje

CONCLUSIONES
En esta prctica nicamente realizamos un pequeo cambio a nuestro cdigo, que agregando la
instruccin (mov ah,01h), podemos meter un nmero a travs del teclado, resulto muy interesante. Una
10

vez, comenzamos a agregar las etiquetas correspondientes para cada opcin, en este caso hicimos la de
SALIR, que al presionar la opcin 5, nos sala el mensaje HASTA LA VISTA BABY.
Este programas al igual que los anteriores es la modificacin del primer programa que solo enva un
mensaje. Hasta este punto se muestra el men en donde ya se puede elegir de entre las cinco opciones
y te la bienvenida a las respectiva operaciones, y una opcin de salir que te muestra un mensaje final.

BIBLIOGRAFA
(Ojeda, 2009, pgs. 152-156)

11

También podría gustarte