PDF de programación - enunciados de prácticas de programación en Ensamblador - Cuadernos Practicas Informática Industrial - Módulo 1

Imágen de pdf enunciados de prácticas de programación en Ensamblador - Cuadernos Practicas Informática Industrial - Módulo 1

enunciados de prácticas de programación en Ensamblador - Cuadernos Practicas Informática Industrial - Módulo 1gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 11 de Marzo del 2018)
915 visualizaciones desde el 11 de Marzo del 2018
1,2 MB
113 paginas
Creado hace 4a (24/06/2016)
CUADERNOS DE PRÁCTICAS

DE

INFORMÁTICA INDUSTRIAL

MÓDULO 1:

ENUNCIADOS DE PRÁCTICAS DE

PROGRAMACIÓN EN ENSAMBLADOR



MATERIAL DIDÁCTICO

Ingenierías

nº 20



Francisco Javier Martínez de Pisón Ascacíbar

Joaquín Ordieres Meré
Manuel Castejón Limas

Francisco Javier de Cos Juez

Montserrat Gil Martínez

CUADERNOS DE PRÁCTICAS

DE

INFORMÁTICA INDUSTRIAL

MÓDULO 1:

ENUNCIADOS DE PRÁCTICAS DE

PROGRAMACIÓN EN ENSAMBLADOR

UNIVERSIDAD DE LA RIOJA
SERVICIO DE PUBLICACIONES

2001















Cuadernos de prácticas de informática industrial.

Módulo 1: enunciados de prácticas de programación en ensamblador

de Francisco Javier Martínez de Pisón Ascacíbar, Joaquín Ordieres Meré, Manuel Castejón Limas, Francisco Javier de

Cos Juez, Montserrat Gil Martínez (publicado por la Universidad de La Rioja) se encuentra bajo una Licencia

Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.

Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los titulares del copyright.














publicaciones.unirioja.es

© Los autores
© Universidad de La Rioja, Servicio de Publicaciones, 2011

E-mail: publicaciones@unirioja.es

ISBN: 978-84-694-0879-7

INTRODUCCIÓN

La programación en ensamblador, aunque en nuestros días es ignorada y apartada de
muchos cursos docentes debido a su dificultad, permite que el alumno adquiera conocimientos
prácticos del funcionamiento a bajo nivel de un ordenador que con otros lenguajes no se obtie-
ne tan fácilmente. Conceptos como: los modos de direccionamiento de la memoria, tipos de
registros, funcionamiento de la Pila, los flags, modos de funcionamiento de la CPU, puertos de
entrada/salida, programación de dispositivos hardware, manejo de la memoria, tipos de ins-
trucciones de un microprocesador, manejo de interrupciones, la BIOS, programas residentes,
métodos de parametrización y paso de información entre subrutinas, funcionamiento de la pan-
talla en modo texto y gráfico, conversión de datos, aritmética entera y en coma flotante, etc.,
son conocimientos básicos que todo Ingeniero Electrónico o Informático debe conocer.
Además, este tipo de aprendizaje, aunque es una ardua tarea, crea una base sólida para com-
prender la programación de cualquier otro microprocesador, microcontrolador, DSP, sistema de
desarrollo, etc., que pueda utilizarse en el futuro.

Este primer volumen forma parte de un conjunto de prácticas de Ensamblador que se han
ido realizado durante varios años como parte inicial de la asignatura de Informática Industrial
de la carrera de Ingeniería Técnica Industrial Electrónica en la Universidad de La Rioja. Este
módulo tiene como objetivo principal que el alumno adquiera todos los conceptos arriba
expuestos de una forma lo más práctica y didáctica posible. Se pretende, por lo tanto, que el
estudiante mediante una serie de ejercicios propuestos que deba resolver, vaya asimilando pro-
gresivamente todos estos conceptos. Por supuesto, estos conocimientos tienen que completar-
se con otros contenidos como por ejemplo: metodologías de programación, lenguajes de alto
nivel, sistemas operativos, etc., que sirvan para perfeccionar la formación del Ingeniero
Electrónico en el campo del desarrollo de software del sector Eléctrico/Electrónico.

Por último destacar, que los ejercicios de ejemplo que se plantea en cada uno de los capí-
tulos de este libro, se han probado y realizado con la versión 2.0 del compilador Turbo
Assembler® de la Compañía Borland, aunque son fácilmente convertibles a otros compilado-
res (Microsoft Assembler, etc.).

7

PRÁCTICA 1

1. MANEJO DE ENSAMBLADOR, LINKER Y DEBUGGER

1.1. COMPILACIÓN Y EJECUCIÓN PASO A PASO DE UN PROGRAMA EJEMPLO

Entender el funcionamiento del siguiente programa “PRACT1A.ASM”, ensamblarlo y

ejecutarlo paso a paso viendo como se modifican los registros y los flags:

;PROGRAMA EJEMPLO: PRACT1A.ASM
;
;PROGRAMA EJEMPLO: ESCRIBIR UN TEXTO EN PANTALLA USANDO LA FUNCIÓN 09H
DEL DOS
;------------------------------------------------------------
CR EQU 13 ;Retorno de carro
LF EQU 10 ;Salto de línea
;
;------------------------------------------------------------
;
;Segmento de Datos
;---------
;
DATOS SEGMENT ;Comienzo segmento DATOS
TEXTO DB ‘ESTE ES UN TEXTO DE PRUEBA’,CR,LF ;TEXTO A IMPRIMIR

DB ‘$’ ;Delimitador de fin de texto

DATOS ENDS
;
;--------------------------------------------------
;
;Segmento de Pila
;--------------------------------------------------
;
PILA SEGMENT STACK ;Comienzo segmento PILA

DB 128 DUP(‘PILA’) ;Inicialización PILA

PILA ENDS
;
;--------------------------------------------------
;
;Segmento de Código
;------------------
;
CODIGO SEGMENT ;Comienzo segmento CODIGO
EJEMPLO PROC FAR

ASSUME CS:CODIGO,DS:DATOS,SS:PILA

;

;

;

PUSH DS ;Guarda Segmento en pila (DS:AX dirección retorno)
SUB AX,AX ;Borrar registro AX=0
PUSH AX ;Guarda en Pila AX (IP=0)

MOV AX,DATOS ;AX=DATOS (SEGMENTO DE DIRECCION DATOS)
MOV DS,AX ;DS=AX

11

CUADERNOS DE PRÁCTICAS DE INFORMÁTICA INDUSTRIAL

LEA DX,TEXTO ;DX=DESPLAZAMIENTO DE TEXTO
CALL ESCRIBIR ;SUBRUTINA DE ESCRIBIR TEXTO
RET ;RETORNA

;
EJEMPLO ENDP ;FIN DE PROCEDIMIENTO
;
ESCRIBIR PROC ;PROCEDIMIENTO ‘ESCRIBIR’

PUSH AX ;GUARDA EN PILA AX
MOV AH,9 ;AH=9 FUNCION NUMERO 9 ‘SALIDA DE CARACTERES’
INT 21H ;LLAMADA A INTERRUPCION DEL DOS, CON FUNCION 9
POP AX ;RECUPERA EL REGISTRO AX
RET ;RETORNAR

ESCRIBIR ENDP ;FIN DE PROCEDIMIENTO ESCRIBIR
CODIGO ENDS ;FIN DE SEGMENTO DE CODIGO

END EJEMPLO ;FIN DE PROGRAMA EJEMPLO

Figura 1-1. Programa que escribe una cadena de caracteres en pantalla.

1.2. ENSAMBLADOR (TASM), LINKADOR (TLINK) Y DEPURADOR (TD)

El programa de la Figura 1-1 se puede escribir con cualquier editor de textos, por ejem-

plo el editor del DOS “EDIT.COM”.

Una vez tenemos el archivo “Nombre.ASM” lo ensamblamos con “TASM.EXE” de la

siguiente forma:

TASM –zi Nombre.ASM

que nos generará otro archivo con extensión OBJ: “Nombre.OBJ”. El comando “-zi” incluye
las etiquetas del código fuente para el depurador.

Usando “TLINK.EXE” se linkan (“une”) todos los OBJ que necesitemos (en este caso

sólo tenemos uno) y nos generará un ejecutable “.EXE”.

TLINK –v Nombre.OBJ

que nos generará un archivo “Nombre.exe”, que podemos ejecutar y comprobar. El comando
“-v” incluirá la tabla de contenidos con las etiquetas en el ejecutable.

Para depurar usaremos el programa “TD.EXE”.

Ejemplo:

EDIT PRACT1.ASM

;EDITAMOS PRACT1.ASM

TASM –zi PRACT1.ASM

;ENSAMBLAMOS PRACT1.ASM

TLINK –v PRACT1.OBJ

;LINKAMOS PRACT1.ASM

PRACT1

;EJECUTAMOS PRACT1.ASM

TD PRACT1.EXE

;EJECUTAMOS CON TD (PARA DEPURAR)

12

PRÁCTICA 1. MANEJO DE ENSAMBLADOR, LINKADOR Y DEBUGGER

1.3. PROGRAMA EJEMPLO “PRACT1B.ASM”. SITÚA TEXTO EN UNA POSICIÓN DETERMINADA

Escribir, ejecutar paso a paso el programa de la Figura 1-2 y comprender su funciona-

miento. Este programa sitúa en una posición determinada de la pantalla un texto.

EQU 13 ;Retorno de carro
EQU 10 ;Salto de línea
EQU 5 ;Posicion X (0 A 79)
EQU 5 ;Posicion Y (0 A 24)

;PROGRAMA PRACT1B.ASM
;
;ESCRIBIR EN UNA POSICIÓN DE LA PANTALLA
;----------------------------------------
;
CR
LF
POSX
POSY
;
;--------------------------------------------------------
;
;Segmento de Datos
;---------
;
DATOS SEGMENT
TEXTO DB ‘ESTO ESTA ESCRITO EN LA POSICION (5,5)’,CR,LF

;Comienzo segmento DATOS

;TEXTO A IMPRIMIR

DB ‘$’ ;Delimitador de fin de texto

DATOS ENDS
;--------------------------------------------------------
;
;Segmento de Pila
;----------------
;
PILA SEGMENT STACK ;Comienzo segmento PILA

DB 128 DUP(‘PILA’) ;Inicialización PILA

PILA ENDS
;
;--------------------------------------------------------
;
;Segmento de Código
;------------------
;
CODIGO SEGMENT ;Comienzo segmento CODIGO
EJEMPLO1B PROC FAR

ASSUME CS:CODIGO,DS:DATOS,SS:PILA

PUSH DS
SUB AX,AX
PUSH AX

;Guarda Segmento en pila (DS:AX dirección retorno)
;Borrar registro AX=0
;Guarda en Pila AX (IP=0)

MOV DL,POSX
MOV DH,POSY

;MUEVO EN DL LA POSICION X
;MUEVO EN DH LA POSICION Y

CALL POSICION ;SUBRUTINA PARA POSICIONAR EL CURSOR

MOV AX,DATOS
MOV DS,AX
LEA DX,TEXTO
CALL ESCRIBIR ;SUBRUTINA DE ESCRIBIR TEXTO

13

CUADERNOS DE PRÁCTICAS DE INFORMÁTICA INDUSTRIAL

RET ;RETORNA

EJEMPLO1B ENDP ;FIN DE PROCEDIMIENTO

; ##############################################
; # PROCEDIMIENTO POSICIONAR CURSOR ‘POSICION’ #
; ##############################################

POSICION PROC ;PROCEDIMIENTO ‘POSICION’

PUSH DX ;GUARDO REGISTRO DX EN PILA
PUSH BX ;GUARDO REGISTRO BX
PUSH AX ;GUARDO REGISTRO AX

CMP DL,0 ;COMPARA DL CON 0
JL FIN ;SI ES MENOR (LOW) SALTA A ‘FIN’
CMP DL,79 ;COMPARA DL CON 79
JG FIN ;SI ES MAYOR (GREATER) SALTA A ‘FIN’
CMP DH,0 ;COMPARA DH CON 0
JL FIN ;SI ES MENOR (LOW) SALTA A ‘FIN’
CMP DH,24 ;COMPARA DH CON 24
JG FIN ;SI ES MAYOR SALTA A ‘FIN’

MOV BH,0 ;PµGINA 0 DE LA PANTALLA EN MODO TEXTO
MOV AH,2 ;FUNCION 2 POSICIONAR CURSOR DE LA BIOS
INT 10H ;LLAMAR A LA INTERRUPCION BIOS

FIN: POP AX ;RECUPERA REGISTROS

POP BX
POP DX
RET
POSICION ENDP

; #################################################
; # PROCEDIMIENTO ESCRIBIR CARACTERES EN PANTALLA #
; #################################################
;
ESCRIBIR PROC ;PROCEDIMIENTO ‘ESCRIBIR’

PUSH AX ;GUARDA EN PILA AX
MOV AH,9 ;AH=9 FUN. NUM. 9 ‘SALIDA DE CARAC.’
INT 21H ;LLAMADA A INTERRUPCION DEL DOS, CON FUNCION 9
POP AX ;RECUPERA EL REGISTRO AX
RET ;RETORNAR

ESCRIBIR ENDP ;FIN
  • Links de descarga
http://lwp-l.com/pdf9437

Comentarios de: enunciados de prácticas de programación en Ensamblador - Cuadernos Practicas Informática Industrial - Módulo 1 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad