MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 1 / 21
ENSAMBLADOR 8086 TASM/MASM/EMU8086
PROGRAMACIÓN PRÁCTICAS DE LABORATORIO
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 2 / 21
Introducción
Estas prácticas se han elaborado para orientar a los alumnos de la materia de INFORMÁTICA BÁSICA en
el aprendizaje de algoritmos computacionales dentro del Lenguaje Ensamblador y el entorno TASM /
MASM
Todas las prácticas de laboratorio estarán estructuradas de la siguiente forma:
Objetivo.
Recursos.
Teoría.
Desarrollo de ejercicios y entrega de resultados
NOTAS:
EL RESULTADO DE CADA PROGRAMA DE ESTA PRÁCTICA, SE ENVIARA AL CORREO: PROF. ING. JORGE
RAMOS GARCIA, [email protected] (pantalla de resultados y los archivos fuente .ASM)
REVISE Y ESTUDIE CADA EJERCICIO Y TRATE DE ENTENDERLOS PARA LOS EJERCICIOS QUE SE
REALIZARAN EN LAS SIGUIENTES PRACTICAS.
CUALQUIER DUDA O COMENTARIO FAVOR DE EXPRESARLO
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 3 / 21
PRACTICA NO. 01 INICIANDO. (Es para desarrollar en el centro de cómputo, el TASM funciona bajo WIN de 32 bits, para configuración superior utiliza el EMU8086)
OBJETIVO:
EN ESTA PRACTICA DESARROLLAREMOS EL USO y EL PROCEDIMIENTO DEL ENSAMBLADOR TASM PARA EL
MICROPROCESADOR 8086 Y SUPERIORES. Igualmente si utilizas el EMU8086 (descargar desde la web, es software con
licencia) podrás realizar esta práctica.
RECURSOS:
Para implementar los ejercicios de programación en lenguaje ensamblador se utilizarán las siguientes herramientas de
software:
Editor: EDIT / NE / o cualquier otro que genere archivos ASCII.
Ensamblador: TASM.EXE // Emu8086 // MASM 5.0
Enlazador: TLINK.EXE RTM.EXE para cierta versión de Tasm
TEORIA.
El Turbo Assembler (TASM), un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles.
Fue la oferta de Borland en el mercado de herramientas de programación en lenguaje ensamblador para la familia de los
microprocesadores x86. Como se pudiera esperar, trabajaban bien con los compiladores de lenguaje de alto nivel de Borland para
los PC, como Turbo C y Turbo Pascal. Junto con el resto de suite de lenguajes de programación Turbo, Turbo Assembler ya no es
mantenido.
El paquete Turbo Assembler vino junto con el enlazador Turbo Linker, y era interoperable con el depurador Turbo Debugger. Para
la compatibilidad con el ensamblador Microsoft Macro Assembler (MASM) de Microsoft, TASM también podía ensamblar los
archivos de código fuente del MASM por medio de su modo MASM. Al igual que éste, es un ensamblador de alto nivel
REFERENCIA: http://es.wikipedia.org/wiki/Turbo_Assembler
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 4 / 21
DESARROLLO.
1. OBTENER LOS ARCHIVOS QUE SE USARAN EN EL ENSAMBLADOR 8086 PARA ENSAMBLAR UN
ARCHIVO FUENTE .ASM Y REALIZAR SU EJECUCION. TODO ES LLEVARLO A CABO EN EL MODO DE
SISTEMA MSDOS.
PASO 1.
CONECTESE A INTERNET Y MEDIANTE UN BUSCADOR (EJ. GOOGLE) LOCALICE EL SITIO DONDE SE
ENCUENTREN LOS ARCHIVOS TASM.EXE Y TLINK.EXE EN CUALQUIERA DE LAS VERSIONES.
PASO 2.
UNA VEZ QUE TENGA LOCALIZADOS LOS ARCHIVOS DESCARGUELOS Y GRABELOS EN UN CARPETA
DE SU DISCO DURO (EJ. C:\INFORMATICA> ) O EN SU MEMORIA USB. (EJ. G:\INFORMATICA>). EN CASO DE
ESTAR COMPRIMIDOS, HAGA UNA EXTRACCION DE ESOS ARCHIVOS O TODOS SEGÚN SEA EL CASO.
PASO 3.
ABRA EL EDITOR DE TEXTO (EJ. BLOCK DE NOTAS DE WINDOWS) Y ESCRIBA EL SIGUIENTE
PROGRAMA EN ENSAMBLADOR. LA ESTRUCTURA SIGUIENTE ES LA FORMA ESTANDAR.
UNA VEZ ESCRITO LAS INSTRUCCIONES DEL SIGUIENTE PROGRAMA, GUARDELO EN LA CARPETA
DONDE SE LOCALIZA TAMBIEN LOS ARCHIVOS TASM.EXE Y TLINK.EXE, EL NOMBRE DEL ARCHIVO SERA
UTILIZANDO SOLO DE 1 A 8 CARACTERES DE LONGITUD Y LA EXTENSION DEBERA SER .ASM.
POR EJEMPLO GUARDELO COMO: HOLA.ASM EN SU CARPETA C:\INFORMATICA O G:\INFORMATICA
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 5 / 21
LISTADO DEL PRIMER PROGRAMA ESCRITO EN ENSAMBLADOR 8086 USANDO TASM
;--------------------------------------------------------- guarde este archivo como HOLA.ASM
;
; HOLA.ASM
;
; PROGRAMA CLASICO DE EJEMPLO EN ENSAMBLADOR. DESPLIEGA MENSAJE EN
PANTALLA
PILA SEGMENT STACK
DW 64 DUP(?)
PILA ENDS
DATA SEGMENT
SALUDO DB 'HOLA MUNDO, !!!!!!!!! ',10,13,'$' ; MENSAJE EN CADENA SALUDO
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:PILA
INICIO:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET SALUDO ;ENVIA EL MENSAJE A PANTALLA
MOV AH,09H ;SERVICIO PARA ENVIAR MENSAJE
INT 21H ;INTERRUPCION DOS
MOV AH,4CH ;SALIR A MODO DE SISTEMA
INT 21H
CODE ENDS
END INICIO
;----------------------------------------------------------------
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 6 / 21
PASO 4.
ABRA UNA VENTANA AL MODO DE SISTEMA (DOS) UTILIZANDO CUALQIERA DE LOS DOS METODOS
SIGUIENTES:
a) METODO 1.
DE CLICK EN INICIO
DE CLICK EN EJECUTAR
ESCRIBA EL COMANDO: CMD
APARECERA LA VENTANA
b) METODO 2.
dar click en inicio
dar click en todos los programas
dar click en accesorios
dar click en modo de sistema y aparecerá la misma venta activa del método 1
PASO 5.
ESTANDO EN LA VENTANA ACTIVA DE DOS, CAMBIE A SU CARPETA DE TRABAJO DONDE SE TIENEN
LOS ARCHIVOS TASM.EXE, TKINK.EXE Y HOLA.ASM DESDE MSDOS COMO SE INIDICA
SI SU CARPETA ESTA EN LA UNIDAD C:
CD ..
CD ..
CD INFORMATICA
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 7 / 21
SI SU CARPETA ESTA EN OTRA UNIDAD, EJEMPLO UNA USB DENOMINADA H:
SIMPLEMENTE ESCRIBA LA LETRA DE LA UNIDAD SEGUIDA DE DOS PUNTOS,
EJEMPLO H:
LUEGO APARECERA EL PROMOPT
H:>-
LUEGO ESCRIBA:
CD INFORMATICA
APARECERA
H:\INFORMATICA>
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 8 / 21
PASO 6.
DESDE LA VENTANA ACTIVA DE MSDOS ENSAMBLAMOS NUESTRO ARCHIVO HOLA.ASM
TECLEAMOS:
tasm /L /zi hola.asm
Turbo Assembler comenzará a ensamblar al programa desplegando:
Turbo Assembler Version 4.1 Copyright (c) 1988 by Borland International
Assembling file: HOLA.ASM
Error messages: None
Warning messages: None
Remaining memory: 407k
Use el comando DIR para observar los archivos generados por el programa Turbo Assembler,
tecleando: dir
Estos son: hola.obj
hola.lst
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 9 / 21
Para convertir el programa objeto en un programa ejecutable usaremos el programa TLINK.EXE,
tecleando:
tlink /v /m /s /L hola
TLink empezará a convertir el programa desplegando lo siguiente:
Turbo Link Version 2.0 Copyright (c) 1987, 1988 By Borland International
Use el comando DIR para observar los archivos generados por el programa TLink, tecleando:
dir
Estos son:
hola.map
hola.exe
PASO 7.
YA ENSAMBLADO Y COMPILADO EL ARCHIVO HOLA.ASM AL ARCHIVO HOLA.EXE, LO PODEMOS
EJECUTAR ESCRIBIENDO EL NOMBRE Y ENTER.
C:\INFORMATICA> HOLA <enter>
Resultado de la ejecución, mostrar en pantalla un mensaje “HOLA MUNDO, !!!!!!!!!”
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 10 / 21
2. EN ESTE PUNTO, SE LLEVARA A CABO EL MISMO PROCEDIMIENTO DESDE EL PASO 3 DEL PUNTO 1
ANTERIOR, ABRIENDO NUEVAMENTE EL EDITOR Y ESCRIBIR EL SIGUIENTE PROGRAMA EN
ENSAMBLADOR. ESTE PROGRAMA ESTARA ESCRITO OTRO FORMATO O ESTRUCTURA, SE LE DENOMINA
ESTRUCTURA COMPACTA.
ASMISMO, EL PROGRAMA YA ESCRITO SE GUARDARA CON EL NOMBRE DE ARCHIVO HELLO.ASM Y SE
ENSAMBLARA PARA SU EJECUCION- PRUEBE SU RESULTADO.
;-----------------------------------------------------------------
;HELLO.ASM – Presenta el mensaje "Hello World"
;
.MODEL SMALL
.STACK 100h
.DATA
HelloMessage DB ' ...... Hello , world …... ', 13, 10,'$' ;‘$’ es el terminador
;para la función 9
;de la INT 21h
.CODE
principal:
mov ax,@data ; punto de inicio del programa
mov ds,ax ; hace apuntar DS hacia el segmento de datos
mov ah,9 ; función de impresión de string de MS-DOS
mov dx, OFFSET HelloMessage ;carga DX con el offset de "Hello,
;world" dentro de DATA
int 21h ; llama a la INT 21h para imprimir el mensaje
mov ah, 4ch ; 4Ch es la función del DOS para terminar la
; ejecución de un programa
int 21h ; finaliza la ejecución, retorna al prompt del MS-DOS
END principal ; directiva que le notifica al TASM el fin del código
; ----------------------------------------------------------------
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 11 / 21
3. UTILIZANDO EL ARCHIVO HOLA.ASM, NUEVAMENTE LEERLO DESDE EL EDITOR DE TEXTO Y REALIZAR
LO SIGUIENTE:
modifique la línea 23 para que en lugar de tener la instrucción: mov DS,AX
se tenga un error de sintaxis: mob DS,AX
Grabe el programa y salga del editor.
Trate de ensamblar el programa, repitiendo los pasos de ensamblado como en el punto 1. El
ensamblador desplegará el siguiente mensaje de error:
4. A CONTINUACIÓN SE PRESENTA UN ARCHIVO DE PROCESAMIENTO POR LOTES (BATCH) QUE PERMITE
AUTOMATIZAR EL PROCESO DE ENSAMBLAR (TASM.EXE) Y ENLAZAR (TLINK.EXE) UN PROGRAMA EN
ENSAMBLADOR. UTILIZA EL EDITOR DE TEXTO PARA CREARLO Y GRÁBELO EN SU DISCO Y CARPETA DE
TRABAJO (C:\INFORMATICA>), CON EL NOMBRE COMPILAR.BAT.
------------------------------ ESCRIBA Y GRABE LO SIGUIENTE
Rem Este archivo de procesamiento por lotes ensambla y liga un
rem programa fuente usando el macroensamblador del 8086:
rem TURBO ASSEMBLER y el ligador TLINK de Borlant Int.
@echo off
rem Si no se incluyo el nombre del archivo
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 12 / 21
if $$%1 == $$ goto ERROR1
rem Si no existe el archivo
if not exist %1.asm goto ERROR2
rem llama al ensamblador
tasm /l /zi %1.asm
rem Si hubo un error al ensamblado
if errorlevel 1 goto FIN
rem Llama al ligador
tlink /v /m /s /l %1
goto FIN
:ERROR1
echo .
echo Uso: ASSM nomArch (omita la extension .asm)
echo .
goto FIN
:ERROR2
echo .
echo No existe el archivo %1.asm
echo .
:FIN
CON ESTE ARCHIVO, USTED YA NO ESCRIBIRA POR SEPARADO TASM O TLINK, SINO QUE SOLO ESCRIBIRA EL
NOMBRE COMPILAR Y EL ARCHIVO A ENSAMBLAR Y ENLAZAR, COMO SE MUESTRA:
C:\INFORMATICA> COMPILAR HOLA
DESPUES DE ESTO, SE HABRAN GENERADO LOS ARCHIVOS: .LST, .MAP, .OBJ Y .EXE DEL ARCHIVO
ENSAMBLADO.
AL UTILIZAR ESTA FORMA NO ES NECESARIO ESCRIBIR LA EXTENSION .ASM, TAL COMO SE MUESTRA
ARRIBA NI LA EXTENSION .BAT EN EL NOMBRE DE COMPILAR.
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 13 / 21
5. ENSAMBLE, COMPILE Y EJECUTE EL SIGUIENTE PROGRAMA.
; MOSTRANDO UN MENU EN PANTALLA
; SOLO SE EXHIBEN LAS OPCIONES, NO SE REALIZAR NINGUNA OPERACION
;----------------------------------------------------------------
.MODEL SMALL
.STACK
.DATA
CrLf db 10,13,10,13,'$'
menu db 10,13,' 1. ALTA '
db 10,13,' 2. BAJA '
db 10,13,' 3. MODIFICACION'
db 10,13,' 4. LISTADO '
db 10,13,' 5. IMPRIMIR '
db 10,13,' 6. SALIR '
db 10,13,' '
db 10,13,' Opcion?: $'
msg db 10,13,' -- MENU PRINCIPAL -- ',10,13,10,13,'$'
.CODE
_MENU:
;SEGMENTO DE DATOS
MOV AX,@DATA
MOV DS,AX
;-------------------------------------
;LIMPIAR PANTALLA
mov ah,00h
mov al,03h
int 10h
;MOSTRAR TITULO EN MSG
MOV DX,OFFSET MSG
MOV AH,09H
INT 21H
;MOSTRAR MENU
MOV DX,OFFSET MENU
MOV AH,09H
INT 21H
;LEER TECLADO
MOV AH,01H
INT 21H
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 14 / 21
;-------------------------------------
_SALIR_DOS:
MOV AH,4CH
INT 21H
END _MENU
6. DISEÑAR UN PROGRAMA EN ENSAMBLADOR UTILIZANDO LA ESTRUCTURA COMPACTA (como el programa
visto en punto 2) QUE MUESTRE EN PANTALLA TODO EL TEXTO QUE SE INDICA A CONTINUACION.
;-------------------------------------------------------------------------------------------
1. Arquímedes (científico griego, alumno de Euclides, 287-212 a.C.): "Dadme un punto de apoyoy levantaré el Mundo"
2. Aristóteles de Estagira (filósofo griego, discípulo de Platón y preceptor de Alejandro Magno, 384-322 a.C.): "Saber es acordarse"
3. Aristóteles de Estagira (filósofo griego, discípulo de Platón y preceptor de Alejandro Magno, 384-322 a.C.): " Lo que está en nuestro poder hacer, también está en nuestro no poder hacerlo"
4. Aristóteles de Estagira (filósofo griego, discípulo de Platón y preceptor de Alejandro Magno, 384-322 a.C.): "Todo lo que hacemos está puesto con el ojo en otra cosa"
5. Antístenes de Atenas (filósofo griego, discípulo de Gorgias y Sócrates, fundador de la escuela cínica, 455-360 a.C.): "Consulta el ojo de tu enemigo, porque es el primero que ve tus defectos"
6. Albert Einstein (físico alemán, nacionalizado suizo y luego estadounidense, 1879-1955): "No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras"
7. Albert Einstein (físico alemán, nacionalizado suizo y luego estadounidense, 1879-1955): "Si tu intención es describir la verdad, hazlo con sencillez y la elegancia déjasela al sastre"
8. Albert Einstein (físico alemán, nacionalizado suizo y luego estadounidense, 1879-1955): "Dios no juega a los dados" (Ver cita de Bohr).
9. Albert Einstein (físico alemán, nacionalizado suizo y luego estadounidense, 1879-1955): "la imaginacion es más importante que el conocimiento."
10. Thomas Alva Edison (inventor estadounidense, 1847-1931): "No sabemos ni un cienmilmillonésimo de nada"
;----------------------------------------------------------------------------------------------
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 15 / 21
APUNTES PARA ESTE EJERCICIO:
i. ESTRUCTURA COMPACTA DE UN PROGRAMA EN ENSAMBLADOR USANDO TASM
.MODEL SMALL
.STACK
.DATA ; variables a inicializar
.CODE
_INICIO:
MOV AX,@DATA
MOV DS,AX
;--------------------------------------
;--------------------------------------
_SALIR:
MOV AH,4CH
INT 21H
END _INICIO
ii. RUTINA PARA ENVIAR A PANTALLA DE TEXTO UN MENSAJE
MOV DX, OFFSET mensaje (LEA DX, mensaje)
MOV AH, 09H
INT 21H
iii. Rutina para enviar a pantalla un solo caracter.
MOV DL, caracter
MOV AH,02H
INT 21H
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 16 / 21
7. EJECUTAR EL SIGUIENTE PROGRAMA:
;------------------------------------
; fecha:
; Materia: Informatica Basica
; Universidad de Guanajuato
; ------------------------------------
Title caracteres_en_pantalla
.model small
.Stack
.data
linea1 db 10,13,' ********************************** $'
linea2 db 10,13,' ** ** $'
linea3 db 10,13,' ** informatica ** $'
linea4 db 10,13,' ** ** $'
linea5 db 10,13,' ********************************** $'
.code
programa_caracteres:
mov ax,@data
mov ds,ax
lea dx,linea1
mov ah,09h
int 21h
lea dx,linea2
mov ah,09h
int 21h
lea dx,linea3
mov ah,09h
int 21h
lea dx,linea4
mov ah,09h
int 21h
lea dx,linea5
mov ah,09h
int 21h
d_o_s:
mov ah,4ch
int 21h
end programa_caracteres
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 17 / 21
8. EMU8086. (también puede desarrollar los puntos anteriores en este emulador)
El Emulador EMU8086 es el programa que se utiliza en la programación de lenguaje ensamblador 8086, es un emulador que posee
una interfaz de usuario muy amistosa que permite familiarizarse con los fundamentos de la programación en lenguaje ensamblador
de forma muy intuitiva, aparte de eso brinda una serie de recursos para ejecutar y depurar los programas. También tiene algunas
desventajas como el de no soportar algunas de las interrupciones más interesantes que posee el sistema operativo y tampoco puede
acceder a los puertos físicos (reales), sino que los emula usando otros programas que ya están incluidos en su respectiva carpeta.
Una vez instalado se inicia ejecutando el archivo EMU886.exe, que se encuentra en la carpeta del mismo nombre.
a) Seleccionamos en NEW
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 18 / 21
b) Seleccionar en EXE
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 19 / 21
c) Iniciar la escritura del programa en ensamblador para generar el código fuente.
Para empezar a compilar le damos clic al botón emulate.
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 20 / 21
Si nuestro programa esta correcto nos se abre la pantalla del emulator y el código original
La pantalla del lado izquierdo muestra el código del programa que estamos compilando y la siguiente pantalla es del
emulador.
d) Para ejecutar en RUN
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 8:00am a 10:15am
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/EMU8086/MASM Correo Electrónico: [email protected] Pagina 21 / 21
9. RESUMEN.
El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un
fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente
por la máquina para la que se ha generado. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la
escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora,
es en la práctica imposible. La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también
la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.
Funcionamiento
El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por
su código de operación correspondiente en sistema binario para la plataforma que se eligió como destino en las opciones
específicas del ensamblador.
INVESTIGACIÓN para entregar dentro del reporte de la práctica.
a. Que es un DEPURADOR / Debugger.? Y su funcionamiento.
b. Que es un DESCOMPRESOR?
c. Que es un Desensamblaldor / Disassembler?
d. Que es el sistema numérico HEXADECIMAL?
e. Por su extensión cuantos tipos de archivo ejecutables hay (plataforma PC)?
f. Que es un archivo fuente?
g. Que es un archivo objeto?