Practica 6. lenguaje ensamblador

15
INSTITUTO TECNOLÓGICO DE ACAPULCO Ingeniería en Sistemas Computacionales MATERIA: LENGUAJES DE INTERFAZ Maestro: Ing. Dagoberto Urzúa Osorio PROGRAMA 6” Integrantes: DÍAZ NAVARRETE TANIA 12320712 ESCOBAR ARREDONDO DIANA 12320719 1

description

Una practica para uso sencillo de lenguaje ensablador

Transcript of Practica 6. lenguaje ensamblador

INSTITUTO TECNOLGICO DE ACAPULCOIngeniera en Sistemas Computacionales

MATERIA: LENGUAJES DE INTERFAZMaestro: Ing. Dagoberto Urza Osorio

PROGRAMA 6Integrantes:DAZ NAVARRETE TANIA 12320712ESCOBAR ARREDONDO DIANA 12320719JUSTO GARCA PAMELA LIZETTE 12320761LOPEZ SIERRA JESSICA 12320770

Horario: 11:00-13:00Aula: 604

NDICE

Introduccin.....3

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 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 modelode 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,stdcallinclude \masm32\include\windows.incinclude \masm32\include\kernel32.incinclude \masm32\include\user32.incincludelib \masm32\lib\kernel32.libincludelib \masm32\lib\user32.lib.dataTitulo db "Programacin en ensamblador",0Texto db "Hola Windows!",0. codeMain:invoke MessageBox, 0, offset Texto, offset Titulo, MB_OKinvoke ExitProcess, 0end Main

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

MARCO TERICO

Lenguaje ensamblador: es unlenguaje de programacin debajo nivelpara loscomputadores,microprocesadores,micro-controladores y otroscircuitos integrados programables. Implementa una representacin simblica de loscdigos de mquinabinarios y otras constantes necesarias para programar unaarquitecturadada deCPUy constituye la representacin ms directa delcdigo mquinaespecfico 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 BABYSOLUCIN 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 .DATA2. 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 basura5. 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 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 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)1