PRACTICA_0_INICIANDO_PRIM09

Anuncio
MATERIA: INFORMATICA BÀSICA
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
PRACTICA NO. 0
INICIANDO.
OBJETIVO:
EN ESTA PRACTICA DESARROLLAREMOS EL USO DEL ENSAMBLADOR TASM PARA EL MICROPROCESADOR
8086 Y SUPERIORES.
RECURSOS:
Para implementar los ejercicios de programación en lenguaje ensamblador se utilizarán las siguientes herramientas de
software:
Editor:
Ensamblador:
Enlazador:
Depurador:
EDIT / NE / o cualquier otro que genere archivos ASCII.
TASM.EXE
TLINK.EXE
TD.EXE
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
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.
MATERIA: INFORMATICA BÀSICA
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
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
LISTADO DEL PRIMER PROGRAMA ESCRITO EN ENSAMBLADOR 80 86 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
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
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




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
b) METODO 2.
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
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
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:

APARECERA
CD INFORMATICA
H:\INFORMATICA>
MATERIA: INFORMATICA BÀSICA
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
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
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
MATERIA: INFORMATICA BÀSICA
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
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
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
2.
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
EN ESTE PUNTO, SE LLEVAREA 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
mov ds,ax
mov ah,9
mov dx, OFFSET HelloMessage
int 21h
mov ah, 4ch
int 21h
; punto de inicio del programa
; hace apuntar DS hacia el segmento de datos
; función de impresión de string de MS-DOS
;carga DX con el offset de "Hello,
;world" dentro de DATA
; llama a la INT 21h para imprimir el mensaje
; 4Ch es la función del DOS para terminar la
; ejecución de un programa
; 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
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
3.
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
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
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
MATERIA: INFORMATICA BÀSICA
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
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 UTLIZAR ESTA FORMA NO ES NECESARIO ESCRIBIR LA EXTENSION .ASM, TAL COMO SE MUESTRA ARRIBA
NI LA EXTENSION .BAT EN EL NOMBRE DE COMPILAR.
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?: $'
MATERIA: INFORMATICA BÀSICA
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
msg db 10,13,'
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
-- 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
;------------------------------------_SALIR_DOS:
MOV AH,4CH
INT 21H
END _MENU
6. DISEÑAR UN PROGRAMA EN ENSAMBLADOR UTILIZANDO LA ESTRUCTURA COMPACTA 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 apoyo
2.
3.
4.
5.
y levantaré el Mundo"
Arquímedes (científico griego, alumno de Euclides, 287-212 a.C.): "¡Eureka!" (que significa
"¡Lo encontré!")
Aristóteles de Estagira (filósofo griego, discípulo de Platón y preceptor de Alejandro Magno,
384-322 a.C.): "Saber es acordarse"
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"
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"
MATERIA: INFORMATICA BÀSICA
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
6. Aristóteles de Estagira (filósofo griego, discípulo de Platón y preceptor de Alejandro Magno,
384-322 a.C.): "La virtud está en el término medio"
7. Antístenes de Atenas (filósofo griego, discípulo de Gorgias y Sócrates, fundador de la escuela
8.
9.
10.
11.
12.
cínica, 455-360 a.C.): "Consulta el ojo de tu enemigo, porque es el primero que ve tus
defectos"
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"
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"
Albert Einstein (físico alemán, nacionalizado suizo y luego estadounidense, 1879-1955):
"Dios no juega a los dados" (Ver cita de Bohr).
Albert Einstein (físico alemán, nacionalizado suizo y luego estadounidense, 1879-1955): "la
imaginacion es más importante que el conocimiento."
Thomas Alva Edison (inventor estadounidense, 1847-1931): "No sabemos ni un
cienmilmillonésimo de nada"
;---------------------------------------------------------------------------------------------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 ENVIASR A PANTALLA DE TEXTO UN MENSAJE
MATERIA: INFORMATICA BÀSICA
CLAVE: CEI02.09
PREREQUISITOS: Leguaje de programación.
DPTO.: COMUNICACIONES Y ELECTRÒNICA
SALON: 308
TRIM: PRIMAVERA 2009
GPO: A
DICIS – DIV. INGENIERIAS CAMPUS SALAMANCA – IRAPUATO
UNIVERSIDAD DE GUANAJUATO
HORARIO: MAR Y JUE de 8:00 a 10:15
MOV DX, OFFSET mensaje
MOV AH, 09H
INT 21H
NOTAS:



EL RESULTADO DE CADA PROGRAMA DE ESTA PRACTICA, SE ENVIARA AL CORREO:
[email protected] (pantalla de resultados: ventana de modo de sistema)
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
Documentos relacionados
Descargar