Sunteți pe pagina 1din 54

UNVERSDAD

AUTNOMA DEL
ESTADO DE HDALGO
INSTITUTO DE CIENCIAS BSICAS E INGENIERA
LICENCIATURA EN SISTEMAS COMPUTACIONALES
MANUAL DE PRCTICAS
ASIGNATURA:
MICROPROCESADORES
SEMESTRE: 5
[Manual de prcticas de Microprocesadores] [2010]
FECHA DE ELABORACIN:
ELABORARON:
NOMBRE FIRMA
M.en C. saas Prez Prez
M. en C. Gabriela Medina Njera

Vo. Bo. PRESIDENTE DE LA ACADEMIA DE COMPUTACIN
Dr. Roberto Hernndez Gmez
Vo. Bo. SECRETARIO DE LA ACADEMIA DE COMPUTACIN
L.S.C. Alberto Surez Navarrete
Vo.Bo. COORDINADOR DE LA LICENCIATURA EN SISTEMAS COMPUTACIONALES
M.C.C. Luis slas Hernndez
FECHA DE PRXIMA REVISIN:
Pgina 2
Mayo 2010
[Manual de prcticas de Microprocesadores] [2010]
Contenido
Introduccin al DEBUG.................................................................................................................... 4
Guardar y cargar los programas en DEBUG....................................................................................
Mane!o de "ondiciones# ciclos y $i%urcaciones en DEBUG............................................................&&
Mane!o de interrupciones en el DEBUG......................................................................................... &'
Mane!o de Instrucciones aritm(ticas............................................................................................. &
Mane!o de Instrucciones )ritm(ticas *segunda parte+..................................................................2'
Mane!o de Instrucciones ,gicas................................................................................................... -.
Introduccin a las Interrupciones del BI/0 y D/0.........................................................................-4
"ondicionales *1M23s+.................................................................................................................... -4
"iclos *,//23s+.............................................................................................................................. 4-
2rocedimientos............................................................................................................................. 45
Macros.......................................................................................................................................... 44
Pgina -
[Manual de prcticas de Microprocesadores] [2010]
Introduccin al DEBUG
NOMBRE DE LA PRCTICA: ntroduccin al DEBUG
No. DE PRCTICA: 1 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: 1
OB!ETIVO:
Analizar la utilera DEBUG perteneciente al MS-DOS, manipulndolo a travs de sus comandos elementales,
con el fin de introducirse en su uso.
MARCO TEOR"CO:
Las actividades de introduccin de los programas, su ejecucin y depuracin de la programacin del
computador en lenguaje de mquina y ensamblador, es posible realizarla usando alguna utilera provista por el
propio sistema operativo; en el caso del MS-DOS existe para tal efecto la utilera DEBUG.
La utilera DEBUG de MS~DOS, es una herramienta que provee una interfaz que permite explorar el
contenido de la memoria del computador y de los registros del microprocesador, as como los medios para la
introduccin de programas y su depuracin, tanto en ensamblador como en lenguaje de mquina.
En MS~DOS existen dos tipos de archivos ejecutables: los .COM y .EXE. DEBUG solo puede crear archivos
con extensin .COM, y por las caractersticas de este tipo de programas, stos no pueden ser mayores de 64
KB, adems de que deben comenzar en el desplazamiento offset o direccin de memoria 0100H, dentro del
segmento especfico. Tambin es posible ejecutar programas .EXE (los cuales fueron ensamblados y
enlazados independientemente) dentro del DEBUG; esto es con la finalidad de poder observar los cambios en
los registros o el nmero de veces que un programa itera, entre otras cosas.
EUIPO # SOFT$ARE A UTILI%AR:
Computadora PC con microprocesador NTEL 80x86
Sistema Operativo Windows y MS-DOS
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Para empezar a trabajar con Debug, digite en el prompt de la computadora:
C:\> Debug [Enter]
En la siguiente lnea aparecer un guin, ste es el indicador del Debug, en este momento se pueden
introducir las instrucciones del Debug. Utilizando el comando:
- r [Enter]
Se desplegaran todos los contenidos de los registros internos de la UCP; una forma alternativa de mostrarlos
Pgina 4
[Manual de prcticas de Microprocesadores] [2010]
es usar el comando "r" utilizando como parmetro el nombre del registro cuyo valor se quiera visualizar. Por
ejemplo:
- rbx
Esta instruccin desplegar nicamente el contenido del registro BX y cambia el indicador del Debug de " - " a
" : "; estando as el prompt, es posible cambiar el valor del registro que se visualiz, tecleando el nuevo valor y
a continuacin [Enter], o se puede dejar el valor anterior presionando [Enter] sin teclear ningn valor.
Un primer programa
Vamos a crear un programa que sirva para ilustrar lo que hemos estado viendo; lo que haremos ser una
suma de dos valores que introduciremos directamente en el programa:
El primer paso es iniciar el Debug, este paso consiste nicamente en teclear Debug [Enter] en el prompt del
sistema operativo.
Para ensamblar un programa en el Debug se utiliza el comando "a" (assemble); cuando se utiliza este
comando se le puede dar como parmetro la direccin donde se desea que se inicie el ensamblado, si se
omite el parmetro, el ensamblado se iniciar en la localidad especificada por CS:P, usualmente 0100H, que
es la localidad donde deben iniciar los programas con extensin .COM y ser la localidad que utilizaremos
debido a que Debug solo puede crear este tipo especfico de programas.
Aunque en este momento no es necesario darle un parmetro al comando "a" es recomendable hacerlo para
evitar problemas una vez que se haga uso de los registros CS:P, por lo tanto, tecleamos:
- a0100 [Enter]
Al hacer sto aparecer en la pantalla algo como: 0C1B:0100 y el cursor se posiciona a la derecha de estos
nmeros; ntese que los primeros cuatro dgitos (en sistema hexadecimal) pueden ser diferentes, pero los
ltimos cuatro deben ser 0100, ya que es la direccin que indicamos como inicio. Ahora podemos introducir
las instrucciones:
0C1B:0100 mov ax,0002 ;coloca el valor 0002 en el registro ax
0C1B:0103 mov bx,0004 ;coloca el valor 0004 en el registro bx
0C1B:0106 add ax,bx ;le adiciona al contenido de ax el contenido de bx
0C1B:0108 int 20 ; provoca la terminacin del programa.
0C1B:010A
No es necesario escribir los comentarios que van despus del ";". Una vez digitado el ltimo comando, int 20,
se le da [Enter] sin escribir nada mas, para volver al prompt del debuger.
La ltima lnea escrita no es propiamente una instruccin de ensamblador, es una llamada a una interrupcin
del sistema operativo. Por el momento solo es necesario saber que nos ahorra un gran nmero de lneas y es
Pgina '
[Manual de prcticas de Microprocesadores] [2010]
muy til para accesar a funciones del sistema operativo.
Para ejecutar el programa que escribimos se utiliza el comando "g", al utilizarlo veremos que aparece un
mensaje que dice: "Program terminated normally". Naturalmente con un mensaje como ste no podemos estar
seguros que el programa haya hecho la suma, pero existe una forma sencilla de verificarlo, utilizando el
comando "r" del Debug podemos ver los contenidos de todos los registros del procesador, simplemente teclee:
- r [Enter]
Aparecer en pantalla cada registro con su respectivo valor actualizado:
AX=0006BX=0004CX=0000DX=0000SP=FFEEBP=0000S=0000D=0000
DS=0C1BES=0C1BSS=0C1BCS=0C1BP=010A NV UP E PL NZ NA PO NC
0C1B:010A 0F DB oF
Existe la posibilidad de que los registros contengan valores diferentes, pero AX y BX deben ser los mismos, ya
que son los que acabamos de modificar.
Otra forma de ver los valores, mientras se ejecuta el programa es utilizando como parmetro para "g" la
direccin donde queremos que termine la ejecucin y muestre los valores de los registros, en este caso sera:
g108, esta instruccin ejecuta el programa, se detiene en la direccin 108 y muestra los contenidos de los
registros.
Tambin se puede llevar un seguimiento de lo que pasa en los registros utilizando el comando "t" (trace), la
funcin de este comando es ejecutar lnea por lnea lo que se ensambl mostrando cada vez los contenidos
de los registros.
Para salir del Debug se utiliza el comando "q" (quit).
PREGUNTAS # E!ERCICIOS:
1)Qu paso con el contenido original del registro AX?
Realice un reporte impreso de su prctica, el cual contenga:
a)La impresin de las pantallas del debuger, donde se visualicen las acciones que fue realizando
b)Las respuestas a las preguntas y ejercicios que se le plantearon
c)La redaccin de sus conclusiones
CONCLUSIONES:
Pgina 5
[Manual de prcticas de Microprocesadores] [2010]
BIBLIOGRAF"A:
BSICA:
DOS 6. Manual de referencia
Kris Jamsa
Editorial Osborne/McGraw-Hill
COMPLEMENTARIA:
Manual del microprocesador 80386
Chris H. Pappas; William H. Murray
Editorial Osborne/Mc Graw-Hill
80386/80286. Programacin en lenguaje ensamblador
Chris H. Pappas; William H. Murray
Editorial Osborne/Mc Graw-Hill
Pgina 6
[Manual de prcticas de Microprocesadores] [2010]
Guardar y cargar los programas en DEBUG
NOMBRE DE LA PRCTICA: Guardar y cargar los programas en DEBUG
No. DE PRCTICA: 2 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: 1
OB!ETIVO:
Manipular la utilera DEBUG del MS-DOS, a travs de sus diversos comandos, para grabar y cargar los
diversos programas .COM generados
MARCO TEOR"CO:
Dentro de los entornos de los lenguajes de programacin de alto y bajo nivel, siempre es necesario guardar
en algn medio de almacenamiento los cdigos generados ya traducidos, por medio de alguna utilera para
tal propsito. El lenguaje ensamblador no es la excepcin a esta regla.
No sera prctico tener que digitar todo un programa cada vez que se necesite; para evitar eso, es posible
guardar un programa en el disco con la enorme ventaja de que ya ensamblado no ser necesario correr de
nuevo el DEBUG para ejecutarlo.
EUIPO # SOFT$ARE A UTILI%AR:
Computadora PC con microprocesador NTEL 80x86
Sistema Operativo Windows y MS-DOS
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Los pasos a seguir para guardar un programa ya almacenado en la memoria, dentro de la utilera del Debug,
son:
1)Obtener la longitud del programa restando la direccin final de la direccin inicial, naturalmente en
sistema hexadecimal
2)Darle un nombre al programa y extensin
3)Poner la longitud del programa en el registro CX
4)Ordenar a Debug que escriba el programa en el disco
Utilizando como ejemplo el programa de la prctica anterior, tendremos una idea ms clara de como llevar
estos pasos. Al terminar de ensamblar el programa se vera as:
0C1B:0100 mov ax,0002
0C1B:0103 mov bx,0004
0C1B:0106 add ax,bx
0C1B:0108 int 20
0C1B:010A
Pgina
[Manual de prcticas de Microprocesadores] [2010]
- h 10a 100
020a 000a
- n prueba.com
- rcx
CX 0000
:000a
-w
Writing 000A bytes
Para obtener la longitud de un programa se utiliza el comando "h", el cual nos muestra la suma y resta de dos
nmeros en hexadecimal. Para obtener la longitud del nuestro le proporcionamos como parmetros el valor de
la direccin final de nuestro programa (10A) y el valor de la direccin inicial (100). El primer resultado que nos
muestra el comando es la suma de los parmetros y el segundo es la resta.
El comando "n" nos permite poner un nombre al programa.
El comando "rcx" nos permite cambiar el contenido del registro CX al valor que obtuvimos del tamao del
archivo con "h", en este caso 000a, ya que nos interesa el resultado de la resta de la direccin inicial a la
direccin final. Por ltimo, el comando "w escribe nuestro programa en el disco, indicndonos cuantos bytes
escribi.
Para cargar un archivo ya guardado son necesarios dos pasos:
1)Proporcionar el nombre del archivo que se cargar
2)Cargarlo utilizando el comando "l" (load)
Para obtener el resultado correcto de los siguientes pasos es necesario que previamente se haya creado el
programa anterior. Dentro del Debug escribimos lo siguiente:
- n prueba.com
- l
- u 100 109
0C3D:0100 B80200 MOV AX,0002
0C3D:0103 BB0400 MOV BX,0004
0C3D:0106 01D8 ADD AX,BX
0C3D:0108 CD20 NT 20
El ltimo comando, "u", se utiliza para verificar que el programa se carg en memoria, lo que hace es
desensamblar el cdigo y mostrarlo ya desensamblado. Los parmetros le indican a Debug desde donde y
hasta donde desensamblar.
Debug siempre carga los programas en memoria en la direccin 100H, a menos que se le indique alguna otra.
Pgina 4
[Manual de prcticas de Microprocesadores] [2010]
PREGUNTAS # E!ERCICIOS:
1)Qu resultados arroja el comando "h, del Debug?
2)Con que fin se carga el registro CX?
Realice un reporte impreso de su prctica, el cual contenga:
a)La impresin de las pantallas del debuger, donde se visualicen las acciones que fue realizando
b)Las respuestas a las preguntas y ejercicios que se le plantearon
c)La redaccin de sus conclusiones
CONCLUSIONES:
BIBLIOGRAF"A:
BSICA:
DOS 6. Manual de referencia
Kris Jamsa
Editorial Osborne/McGraw-Hill
COMPLEMENTARIA:
Manual del microprocesador 80386
Chris H. Pappas; William H. Murray
Editorial Osborne/Mc Graw-Hill
80386/80286. Programacin en lenguaje ensamblador
Chris H. Pappas; William H. Murray
Editorial Osborne/Mc Graw-Hill
Pgina &.
[Manual de prcticas de Microprocesadores] [2010]
ane!o de "ondiciones# ciclos y $i%urcaciones en DEBUG
NOMBRE DE LA PRCTICA: Manejo de condiciones, ciclos y bifurcaciones en DEBUG
No. DE PRCTICA: 3 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: &
OB!ETIVO:
Manipular la utilera DEBUG del MS-DOS, a travs de sus diversos comandos, para generar diversos
programas que utilicen condiciones, bifurcaciones y ciclos
MARCO TEOR"CO:
Dentro del contexto de los lenguajes de programacin y el lenguaje ensamblador no esta exento de ello,
existen diversas expresiones, sentencias e instrucciones de control del flujo del programa. En estas, tenemos
las siguientes:
a)La condicin es una expresin lgica, que puede generar resultados de verdadero o falso, en base a la
comparacin de dos operandos que poseen ciertos valores, regularmente numricos.
b)La bifurcacin es una sentencia de decisin, que se basa en una condicin lgica para tomar algn
curso de accin especfico dentro del programa.
c)El ciclo es una sentencia repetitiva, que en base a las decisiones de una sentencia de decisin que se
encuentra dentro de ella, logra tener el control del programa en forma de bucle; esto sucede hasta que
la condicin lgica, contenida dentro de la sentencia de bifurcacin, haga terminar el ciclo.

En general, estas estructuras o formas de control, le dan a la mquina un cierto grado de decisin basado en
la informacin que recibe.
EUIPO # SOFT$ARE A UTILI%AR:
Computadora PC con microprocesador NTEL 80x86
Sistema Operativo Windows y MS-DOS
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Vamos a crear tres programas que hagan lo mismo: desplegar un nmero determinado de veces una cadena
de caracteres en la pantalla. El cdigo es el siguiente:
- a100
0C1B:0100 jmp 125 ; brinca a la direccin 125H
0C1B:0102 [Enter]
- e 102 'Cadena a visualizar 15 veces' 0d 0a '$'
- a125
Pgina &&
[Manual de prcticas de Microprocesadores] [2010]
0C1B:0125 MOV CX,000F ; veces que se desplegara la cadena
0C1B:0128 MOV DX,0102 ; copia cadena al registro DX
0C1B:012B MOV AH,09 ; copia valor 09 al registro AH
0C1B:012D NT 21 ; despliega cadena
0C1B:012F LOOP 012D ; si CX>0 brinca a 012D
0C1B:0131 NT 20 ; termina el programa.
Por medio del comando "e" es posible introducir una cadena de caracteres en una determinada localidad de
memoria, dada como parmetro, la cadena se introduce entre comillas, le sigue un espacio, luego el valor
hexadecimal del retorno de carro, un espacio, el valor de lnea nueva y por ltimo el smbolo '$' que el
ensamblador interpreta como final de la cadena. La interrupcin 21 utiliza el valor almacenado en el registro
AH para ejecutar una determinada funcin, en este caso mostrar la cadena en pantalla. La cadena que se
muestra es la que est almacenada en el registro DX. La instruccin LOOP decrementa automticamente el
registro CX en uno y si no ha llegado el valor de este registro a cero, brinca a la casilla indicada como
parmetro, lo cual crea un ciclo que se repite el nmero de veces especificado por el valor de CX. La
interrupcin 20 termina la ejecucin del programa.
Otra forma de realizar la misma funcin pero sin utilizar el comando LOOP, es la siguiente:
- a100
0C1B:0100 jmp 125 ; brinca a la direccin 125H
0C1B:0102 [Enter]
- e 102 'Cadena a visualizar 15 veces' 0d 0a '$'
- a125
0C1B:0125 MOV BX,000F ; veces que se desplegara la cadena
0C1B:0128 MOV DX,0102 ; copia cadena al registro DX
0C1B:012B MOV AH,09 ; copia valor 09 al registro AH
0C1B:012D NT 21 ; despliega cadena
0C1B:012F DEC BX ; decrementa en 1 a BX
0C1B:0130 JNZ 012D ; si BX es diferente a 0 brinca a 012D
0C1B:0132 NT 20 ; termina el programa.
En este caso se utiliza el registro BX como contador para el programa y por medio de la instruccin "DEC" se
disminuye su valor en 1. La instruccin "JNZ" verifica si el valor de B es diferente a 0, esto con base en la
bandera NZ; en caso afirmativo, brinca hacia la direccin 012D; en caso contrario, contina la ejecucin
normal del programa y por lo tanto termina.
Una ltima variante del programa es utilizando de nuevo a CX como contador, pero en lugar de utilizar LOOP,
utilizaremos decrementos a CX y comparacin de CX a 0.
Pgina &2
[Manual de prcticas de Microprocesadores] [2010]
- a100
0C1B:0100 jmp 125 ; brinca a la direccin 125H
0C1B:0102 [Enter]
- e 102 'Cadena a visualizar 15 veces' 0d 0a '$'
- a125
0C1B:0125 MOV DX,0102 ; copia cadena al registro DX
0C1B:0128 MOV CX,000F ; veces que se desplegara la cadena
0C1B:012B MOV AH,09 ; copia valor 09 al registro AH
0C1B:012D NT 21 ; despliega cadena
0C1B:012F DEC CX ; decrementa en 1 a CX
0C1B:0130 JCXZ 0134 ; si CX es igual a 0 brinca a 0134
0C1B:0132 JMP 012D ; brinca a la direcci&oaute;n 012D
0C1B:0134 NT 20 ; termina el programa
En este ejemplo se us la instruccin JCXZ para controlar la condicin de salto, el significado de tal funcin
es: brinca si CX=0
En definitiva, el tipo de control a utilizar depender de las necesidades de programacin en determinado
momento.
PREGUNTAS # E!ERCICIOS:
1)Qu condiciones se utilizaron en los programas abordados?
2)Qu instrucciones de bifurcacin y ciclo se utilizaron en los programas presentados?
Realice un reporte impreso de su prctica, el cual contenga:
a)La impresin de las pantallas del debuger, donde se visualicen las acciones que fue realizando
b)Las respuestas a las preguntas y ejercicios que se le plantearon
c)La redaccin de sus conclusiones
CONCLUSIONES:
Pgina &-
[Manual de prcticas de Microprocesadores] [2010]
BIBLIOGRAF"A:
BSICA:
DOS 6. Manual de referencia
Kris Jamsa
Editorial Osborne/McGraw-Hill
COMPLEMENTARIA:
Manual del microprocesador 80386
Chris H. Pappas; William H. Murray
Editorial Osborne/Mc Graw-Hill
80386/80286. Programacin en lenguaje ensamblador
Chris H. Pappas; William H. Murray
Editorial Mc Graw-Hill
Pgina &4
[Manual de prcticas de Microprocesadores] [2010]
ane!o de interrupciones en el DEBUG
NOMBRE DE LA PRCTICA: Manejo de interrupciones en el DEBUG
No. DE PRCTICA: 4 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: 1
OB!ETIVO:
Manipular la utilera DEBUG del MS-DOS, a travs de sus diversos comandos, para generar diversos
programas que utilicen interrupciones.
MARCO TEOR"CO:
Una interrupcin es una instruccin que detiene la ejecucin de un programa para permitir el uso de la UCP a
un proceso prioritario. Una vez concluido este ltimo proceso, se devuelve el control a la aplicacin anterior.
Por ejemplo, cuando estamos trabajando con un procesador de palabras y en ese momento llega un aviso de
uno de los puertos de comunicaciones, se detiene temporalmente la ejecucin de la aplicacin que estbamos
utilizando, para permitirle al microprocesador el manejo de la informacin que est llegando en ese momento.
Una vez terminada la transferencia de informacin, se reanudan las funciones normales del procesador de
palabras.
Las interrupciones ocurren muy seguido; sencillamente la interrupcin que actualiza la hora del da ocurre
aproximadamente 18 veces por segundo. Para lograr administrar todas estas interrupciones, la computadora
cuenta con un espacio de memoria, llamado memoria baja, donde se almacenan las direcciones de cierta
localidad de memoria donde se encuentran un juego de instrucciones que la UCP ejecutar para despus
regresar a la aplicacin en proceso.
El manejo directo de interrupciones es una de las partes ms fuertes del lenguaje ensamblador, ya que con
ellas es posible controlar eficientemente todos los dispositivos internos y externos de una computadora,
gracias al completo control que se tiene sobre las operaciones de entrada y salida.
EUIPO # SOFT$ARE A UTILI%AR:
Computadora PC con microprocesador NTEL 80x86
Sistema Operativo Windows y MS-DOS
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
En los programas anteriores hicimos uso de la interrupcin nmero 20H para terminar la ejecucin de
nuestros programas, ahora utilizaremos otra interrupcin para mostrar informacin en pantalla. Dentro de
Debug tecleamos:
- a100
2C1B:0100 JMP 011D
2C1B:0102 [ENTER]
- E 102 'Hola, como estas.' 0D 0A '$'
Pgina &'
[Manual de prcticas de Microprocesadores] [2010]
- A011D
2C1B:011D MOV DX,0102
2C1B:0120 MOV AH,09
2C1B:0122 NT 21
2C1B:0123 NT 20
En este programa la interrupcin 21H manda al monitor la cadena localizada en la direccin a la que apunta el
registro DX. El valor que se le da a AH determina cual de las opciones de la interrupcin 21H ser utilizada, ya
que esta interrupcin cuenta con varias opciones.
PREGUNTAS # E!ERCICIOS:
1)Dentro de la interrupcin 21H, Cules son los diversos valores (opciones) que puede tener el registro
AH?
Realice un reporte impreso de su prctica, el cual contenga:
a)La impresin de las pantallas del debuger, donde se visualicen las acciones que fue realizando
b)Las respuestas a las preguntas y ejercicios que se le plantearon
c)La redaccin de sus conclusiones
CONCLUSIONES:
BIBLIOGRAF"A:
BSICA:
DOS 6. Manual de referencia
Kris Jamsa
Editorial Osborne/McGraw-Hill
COMPLEMENTARIA:
Manual del microprocesador 80386
Chris H. Pappas; William H. Murray
Pgina &5
[Manual de prcticas de Microprocesadores] [2010]
Editorial Osborne/Mc Graw-Hill
80386/80286. Programacin en lenguaje ensamblador
Chris H. Pappas; William H. Murray
Editorial Mc Graw-Hill
Pgina &6
[Manual de prcticas de Microprocesadores] [2010]
ane!o de Instrucciones aritm&ticas
NOMBRE DE LA PRCTICA: M'ne(o de in)t*+,,ione) '*it-.ti,')
No. DE PRCTICA: 5 No. DE SESIONES: 3
No. DE INTEGRANTES POR EUIPO: 2
OB!ETIVO:
Manipular el ensamblador MASM 6.11 y la utilera DEBUG del MS-DOS, a travs de su entorno de desarrollo
y sus diversos comandos, para generar diversos programas que manipulen instrucciones aritmticas bsicas.
MARCO TEOR"CO:
Las instrucciones aritmticas comprenden las operaciones de sumar, restar, multiplicar, dividir, incrementar,
decrementar y comparar. Estas son las instrucciones ms bsicas de la MPU. A menos de que se especifique
lo contrario, toda la aritmtica en lenguaje ensamblador se hace en formato hexadecimal.
EUIPO # SOFT$ARE A UTILI%AR:
Computadora PC con microprocesador NTEL 80x86
Sistema Operativo Windows y MS-DOS
MacroEnsamblador MASM 6.11
Calculadora Cientfica de Windows
Software para diseo de diagramas de flujo (DFD u otros)
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Se tienen los siguientes 3 cdigos en lenguaje ensamblador, pertenecientes a un microprocesador de la
familia 80x86, que utilizan algunas de las instrucciones aritmticas elementales:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;SUMA.ASM
;PROGRAMA QUE LUSTRA UNA SUMA HEXADECMAL
;CON DRECCONAMENTO NMEDATO
STACK SEGMENT PARA STACK
DB 64 DUP ('MYSTACK')
STACK ENDS
MYCODE SEGMENT PARA 'CODE' ;DEFNE SEG. CODGO PARA MASM
MYPROC PROC FAR ;EL PROCEDMENTO ES DENOMNADO MYPROC
ASSUME CS:MYCODE, SS:STACK
Pgina &
[Manual de prcticas de Microprocesadores] [2010]
PUSH DS ;GUARDA POSCON DE REF. DS
SUB AX,AX ;PONE UN CERO EN AX
PUSH AX ;GUARDA CERO EN PLA TAMBEN
;SUMA REAL DE TRES NUMEROS UTLZANDO DRECCCONAMENTO NMEDATO
MOV AL,23H ;PONE NUM HEX 23H EN REG AL
ADD AL,0AH ;SUMA 0AH AL REG AL
ADD AL,10H ;SUMA 10H AL REG AL
;FN DEL EJEMPLO DE SUMA, RESULTADO EN REG AL
RET ;DEVUELVE CONTROL A DOS
MYPROC ENDP ;FN DEL PROCEDMENTO LLAMADO MYPROC
MYCODE ENDS ;FN DEL SEGMENTO DE CODGO LLAMADO MYCODE
END MYPROC ;FN DEL PROGRAMA COMPLETO
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;SUMA2.ASM
;PROGRAMA QUE SUMA UNA SERE DE ENTEROS EN EL SEGMENTO
;DE DATOS, UTLZANDO DRECCONAMENTO NDEXADO
STACK SEGMENT PARA STACK USE16 'STACK'
DB 64 DUP ('MYSTACK')
STACK ENDS
MYDATA SEGMENT PARA USE16 'DATA'
NUMS DD 1234H, 9ABCH,23H,1000H,0CADH
ANSWER DW ?
MYDATA ENDS
MYCODESEGMENT PARA USE16 'CODE'
MYPROCPROC FAR
ASSUME CS:MYCODE,DS:MYDATA,SS:STACK
PUSH DS ;GUARDAR POSCON DEL REG. DS
SUB AX,AX ;PONER CERO EN AX
PUSH AX ;GUARDAR CERO EN PLA
MOV AX,MYDATA ;PONER POSCON DE DATOS EN AX
MOV DS,AX ;PONER AX EN REGSTRO DS
Pgina &4
[Manual de prcticas de Microprocesadores] [2010]
;SUMA DE UNA SERE DE ENTEROS
MOV S,00H ;S SERVRA COMO REGSTRO NDCE
MOV AX,[S] ;CARGA PRMER NUMERO DE 16 BTS EN AX
ADD AX,[S]+4 ;SUMA SGUENTE NUMERO AL CONTENDO DE AX
ADD AX,[S]+8 ;SUMA SGUENTE NUMERO AL CONTENDO DE AX
MOV ANSWER,AX ;ALMACENA RESULTADO DE 16 BTS EN ANSWER
;FN DE LA SUMA DE LA SERE DE ENTEROS
RET
MYPROCENDP
MYCODEENDS
END MYPROC ;FN DEL PROGRAMA COMPLETO
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;RESTA.ASM
;PROGRAMA QUE LUSTRA LA SUSTRACCN HEXADECMAL
;UTLZANDO DRECCONAMENTO DRECTO
STACK SEGMENT PARA STACK
DB 64 DUP ('MYSTACK')
STACK ENDS
MYDATA SEGMENT PARA 'DATA'
NUM1 DW 1234H ;PRMER NUMERO DE 16 BTS
NUM2 DW 24H ;SEGUNDO NUMERO DE 16 BTS
NUM3 DW 0ABCH ;TERCER NUMERO DE 16 BTS
ANS DW ? ;RESERVA MEMORA PARA RESPUESTA
MYDATA ENDS
MYCODESEGMENT PARA 'CODE' ;DEFNE SEG. CODGO PARA MASM
MYPROCPROC FAR ;EL PROCEDMENTO ES DENOMNADO MYPROC
ASSUME CS:MYCODE,DS:MYDATA,SS:STACK
PUSH DS ;GUARDA POSCON DE REF. DS
Pgina 2.
[Manual de prcticas de Microprocesadores] [2010]
SUB AX,AX ;PONE UN CERO EN AX
PUSH AX ;GUARDA CERO EN PLA TAMBEN
MOV AX,MYDATA ;PONE POSCON DE DATO EN AX
MOV DS,AX ;LO PONE EN REGSTRO DS
;RESTA REAL USANDO TRES NUMEROS DE 16 BTS
MOV AX,NUM1 ;CARGA NUM EN REG AX
SUB AX,NUM2 ;RESTA NUM2 DE3 NUM1
SUB AX,NUM3 ;RESTA NUM3 DE RESULTADOS ANTERORES
MOV ANS,AX ;ALMACENA RESULTADO EN ANS
;FN DEL EJEMPLO DE RESTA
RET ;DEVUELVE CONTROL A DOS
MYPROCENDP ;FN DEL PROCEDMENTO LLAMADO MYPROC
MYCODEENDS ;FN DEL SEGMENTO DE CODGO LLAMADO MYCODE
END MYPROC ;FN DEL PROGRAMA COMPLETO
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
&*'. P'*te: An/0i)i) 1*e0i-in'* de0 1*o2*'-'
De cada uno de los programas presentados:
a) Analice detenidamente cada programa, tratando de comprender cada una de las sentencias
presentadas (en caso de tener dudas, consulte la bibliografa citada, para conocer el significado de las
instrucciones utilizadas)
b) Realice un diagrama de flujo de las sentencias principales del programa, para que le ayude a visualizar
la secuencia de estas
c) Con la ayuda de la calculadora de Windows (calc.exe), en su versin cientfica (ver figura 1), lleve a
cabo una prueba de escritorio de la ejecucin del programa, en donde por cada sentencia del
programa, se registren los valores de los registros y etiquetas que el programa va generando; es
recomendable que estructure los resultados en una tabla, como la de la figura 2.
Pgina 2&
[Manual de prcticas de Microprocesadores] [2010]
Figura 1. Calculadora cientfica de Windows
Registro Registro Etiqueta ...
Sentencia 1
Sentencia 2
...
Figura 2. Modelo de la tabla para registrar los resultados de la prueba de escritorio
3d'. P'*te: U)o de0 en)'-40'do* 5MASM 6.&&7 8 e0 De4+2 de MS9DOS
Con cada programa, realice las acciones de ensamblarlo y corrida a pasos con ayuda del DEBUG, para poder
analizar su funcionamiento, el cual deber comparar con los resultados de sus pruebas de escritorio que hizo
anteriormente. Las observaciones y conclusiones que logre, le servirn para contestar las preguntas y
ejercicios que se plantean ms adelante.
Para ensamblar y correr a pasos un programa usando MASM y DEBUG, se siguen las siguientes acciones:
1) En un editor de textos (como el Block de Notas o Edit), se procede a editar el programa y guardarlo con
extensin .ASM
2) Se ensambla este archivo de la siguiente forma:
MASM ARCHIVO.ASM : ;ENTER<
Generndose durante el proceso de ensamble, un archivo del tipo .OBJ
3) Si el ensamble genera errores, aparecer una breve descripcin del mismo, as como el nmero de lnea en
Pgina 22
[Manual de prcticas de Microprocesadores] [2010]
donde se localiza; este se puede utilizar como referencia para buscar la sentencia, dentro del editor de texto
utilizado. Realice las correcciones necesarias en el archivo ARCHVO.ASM y repita los pasos 1 y 2.
4) Si no hay errores se han eliminado los resultantes, proceda a enlazar su archivo. El proceso de enlace de
un programa genera un ARCHVO.EXE, el cual puede ser cargado por DEBUG o directamente ejecutarse en
la computadora:
LIN= ARCHIVO.OB! : ;ENTER<
Otra forma de generar un ARCHVO.EXE, es usando el comando ML, el cual puede recibir tanto archivos
.ASM, como archivos .OBJ:
ML ARCHIVO.ASM : ;ENTER<
ML ARCHIVO.OB! : ;ENTER<
Nota: Si el programa editado no cuenta con procedimientos para mostrar los resultados en pantalla, solo con
DEBUG podr verificar su ejecucin.
5) Para correr un programa a pasos y observar su ejecucin, teclee el siguiente comando:
DEBUG ARCHIVO.EXE : ;ENTER<
6) Ya dentro de DEBUG, utilice el comando "t del DEBUG y observe como se ejecutan cada una de las
instrucciones del mismo.
PREGUNTAS # E!ERCICIOS:
1)Cul es el resultado obtenido en el registro AL del primer programa?
2)Cul es el resultado obtenido en el registro AX, en el segundo y tercer programa?
Realice un reporte impreso de su prctica. De cada uno de los programas, deber presentar:
a)Diagrama de flujo de las sentencias principales del programa
b)Tabla resultante de la prueba de escritorio del programa
c)La impresin de las pantallas del debuger, donde se visualicen las acciones y los contenidos de los
registros (uso del comando "t (trace))
d)Las respuestas a las preguntas y ejercicios que se le plantearon
Pgina 2-
[Manual de prcticas de Microprocesadores] [2010]
e)La redaccin de sus conclusiones
CONCLUSIONES:
BIBLIOGRAF"A:
BSICA:
Manual del microprocesador 80386
Chris H. Pappas; William H. Murray
Editorial Osborne/Mc Graw-Hill
80386/80286. Programacin en lenguaje ensamblador
Chris H. Pappas; William H. Murray
Editorial Mc Graw-Hill
COMPLEMENTARIA:
Fundamentos de los microprocesadores
Roger L. Tokheim
Segunda Edicin
Editorial McGraw-Hill
Pgina 24
[Manual de prcticas de Microprocesadores] [2010]
ane!o de Instrucciones 'ritm&ticas (segunda parte)
NOMBRE DE LA PRCTICA: Manejo de instrucciones aritmticas (segunda parte)
No. DE PRCTICA: 6 No. DE SESIONES: 2
No. DE INTEGRANTES POR EUIPO: 2
OB!ETIVO:
Manipular el ensamblador MASM 6.11 y la utilera DEBUG del MS-DOS, a travs de su entorno de desarrollo
y sus diversos comandos, para generar diversos programas que utilizan instrucciones aritmticas bsicas.
MARCO TEOR"CO:
Hoy en da, la familia de MPU's NTEL 80x86 suministra ordenes de multiplicacin y divisin, pero en los viejos
tiempos de la programacin en lenguaje ensamblador, solo se suministraban operaciones aritmticas de suma
y resta. El programador tenia que buscar algoritmos para realizar multiplicaciones y divisiones.
Es de todos conocido que si se desea el producto de 5 x 3 puede obtenerse sumando 5 veces tres o 3 veces
cinco. Este es el fundamento de la multiplicacin por el algoritmo de sumas repetidas. La limitacin principal
de esta tcnica es el tiempo consumido al hacer los lazos repetidos del proceso de suma.
Por otra parte, los algoritmos para funciones matemticas especiales no slo son muy difciles de conseguir,
sino que tambin de implementar en lenguaje ensamblador. Para lograr esto, uno de los mtodos utilizados es
el uso de las tablas lookup para calcular valores matemticos difciles de obtener. Una tabla lookup permite al
programador mirar un valor o extraer una parte de datos de una tabla definida previamente.
EUIPO # SOFT$ARE A UTILI%AR:
Computadora PC con microprocesador NTEL 80x86
Sistema Operativo Windows y MS-DOS
MacroEnsamblador MASM 6.11
Calculadora Cientfica de Windows
Software para diseo de diagramas de flujo (DFD u otros)
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Se tienen los siguientes 2 cdigos en lenguaje ensamblador, pertenecientes a un microprocesador de la
familia 80x86, que utiliza instrucciones aritmticas elementales; el primero de ellos lleva a cabo la
multiplicacin de dos nmeros, a travs del mtodo de suma repetidas; el segundo, ilustra el uso de una tabla
lookup para encontrar logaritmos:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Pgina 2'
[Manual de prcticas de Microprocesadores] [2010]
;PROGRAMA QUE LUSTRA LA MULTPLCACON POR SUMAS REPETDAS
STACK SEGMENT PARA STACK
DB 64 DUP ('MYSTACK ')
STACK ENDS
MYDATA SEGMENT PARA 'DATA'
NUM1 DB 2AH
NUM2 DB 03H
PRODUCT DW ?
MYDATA ENDS
MYCODESEGMENT PARA 'CODE' ;DEFNE SEGMENTO CODGO PARA MASM
MYPROCPROC FAR ;PROCEDMENTO SE LLAMA MYPROC
ASSUME CS:MYCODE, DS:MYDATA, SS:STACK
PUSH DS ;GUARDAR POSCON DE REG. DS
SUB AX,AX ;PONE UN CERO EN AX
PUSH AX ;GUARDA CERO EN PLA, TAMBEN
MOV AX,MYDATA ;PONE POSCON DE DATO EN AX
MOV DS,AX ;LO PONE EN REGSTRO DS
;CODGO REAL PARA LA MULTPLCACON POR SUMAS REPETDAS
SUB AX,AX ;PONE A CERO REG AX
SUB CX,CX ;PONE A CERO REG AX
MOV CL,NUM2 ;PONE MULTPLCADOR EN CL
SUB CL,01H ;NDCE CORRECTO
MOV AL,NUM1 ;PONE MULTPLCANDO EN AL
AGAN: ADD AL,NUM1 ;SUMA MULTPLCANDO EN SUM
ADC AH,00H ;ACUMULA UN TOTAL DE 16BTS
LOOP AGAN ;REPTE S MULTPLCADOR (CL>0)
MOV PRODUCT,AX ;TRANSFERE RESULTADO FNAL A PRODUCTO
;FN DE LA SUMA EN MULTPLE PRECSON
RET ;DEVUELVE CONTROL A DOS
MYPROCENDP ;FN DEL PROCEDMENTO LLAMADO MYPROC
MYCODEENDS ;FN DEL SEGMENTO CODGO LLAMADO MYCODE
END MYPROC ;FN DEL PROGRAMA COMPLETO
Pgina 25
[Manual de prcticas de Microprocesadores] [2010]
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;PROGRAMA QUE LUSTRA EL USO DE UNA TABLA LOOKUP PARA ENCONTRAR LOGARTMOS
STACK SEGMENT PARA STACK
DB 64 DUP ('MYSTACK ')
STACK ENDS
MYDATA SEGMENT PARA 'DATA'
TABLE DW 0, 3010, 4771, 6021, 6990, 7782, 8451, 9031, 9542, 10000
VALUE DB 7
ANSWERDW ?
MYDATA ENDS
MYCODESEGMENT PARA 'CODE' ;DEFNE SEGMENTO CODGO PARA MASM
MYPROCPROC FAR ;PROCEDMENTO SE LLAMA MYPROC
ASSUME CS:MYCODE, DS:MYDATA, SS:STACK
PUSH DS ;GUARDAR POSCON DE REG. DS
SUB AX,AX ;PONE UN CERO EN AX
PUSH AX ;GUARDA CERO EN PLA, TAMBEN
MOV AX,MYDATA ;PONE POSCON DE DATO EN AX
MOV DS,AX ;LO PONE EN REGSTRO DS
;EJEMPLO DE UTLZACON DE VALOR DADO COMO NDCE EN UNA TABLA LOOKUP
MOV AL,VALUE ;NUMERO A MRAR
SUB AL,1 ;NDCE CORRECTO, NO LOG 0
ROL AL,1 ;MULTPLCA POR 2, PARA NDCE PALABRA
LEA BX,TABLE ;ENCUENTRA COMENZO DE TABLA
CBW ;CONVERTE AL DE BYTE A PALABRA
ADD BX,AX ;OBTENE NDCE+DESPLAZAMENTO
MOV DX,TABLE[BX] ;OBTENE VALOR DE TABLA
MOV ANSWER,DX ;TRANSFERE VALOR DE DX A ANSWER
;EJEMPLO COMPLETO DE LOOKUP
RET ;DEVUELVE CONTROL A DOS
MYPROCENDP ;FN DEL PROCEDMENTO LLAMADO MYPROC
MYCODEENDS ;FN DEL SEGMENTO CODGO LLAMADO MYCODE
END MYPROC ;FN DEL PROGRAMA COMPLETO
Pgina 26
[Manual de prcticas de Microprocesadores] [2010]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&*'. P'*te: An/0i)i) 1*e0i-in'* de0 1*o2*'-'
De cada uno de los programas presentados:
a) Analice detenidamente el programa, tratando de comprender cada una de las sentencias presentadas
(en caso de tener dudas, consulte la bibliografa citada, para conocer el significado de las instrucciones
utilizadas)
b) Realice un diagrama de flujo de las sentencias principales del programa, para que le ayude a visualizar
la secuencia de estas
c) Con la ayuda de la calculadora de Windows (calc.exe), en su versin cientfica, lleve a cabo una
prueba de escritorio de la ejecucin del programa, en donde por cada sentencia del programa, se
registren los valores de los registros y etiquetas que el programa va generando; es recomendable que
estructure los resultados en forma de una tabla, como se pide en la prctica no.5.
3d'. P'*te: U)o de0 en)'-40'do* 5MASM 6.&&7 8 e0 De4+2 de MS9DOS
Sobre el programa realice las acciones de ensamblarlo y corrida a pasos con ayuda del DEBUG, para poder
analizar su funcionamiento, el cual deber comparar con los resultados de sus pruebas de escritorio que hizo
anteriormente. Las conclusiones que alcance le servirn para contestar las preguntas y ejercicios que se
plantean ms adelante.
Para ensamblar y correr a pasos un programa usando MASM y DEBUG, se siguen las pasos ya conocidos
(ver prctica no.5).
PREGUNTAS # E!ERCICIOS:
1)Cul es el resultado del registro AX en el primer programa?
2)Cuntas veces se repite el ciclo de las sentencias en el primer programa?
3)Cul es el valor resultante en el registro DX en el segundo programa?
Realice un reporte impreso de su prctica. De cada uno de los programas, deber presentar:
a)Diagrama de flujo de las sentencias principales del programa
b)Tabla resultante de la prueba de escritorio del programa
c)La impresin de las pantallas del debuger, donde se visualicen las acciones y los contenidos de los
registros (uso del comando "t (trace))
d)Las respuestas a las preguntas y ejercicios que se le plantearon
Pgina 2
[Manual de prcticas de Microprocesadores] [2010]
e)La redaccin de sus conclusiones
CONCLUSIONES:
BIBLIOGRAF"A:
BSICA:
Manual del microprocesador 80386
Chris H. Pappas; William H. Murray
Editorial Osborne/Mc Graw-Hill
80386/80286. Programacin en lenguaje ensamblador
Chris H. Pappas; William H. Murray
Editorial Mc Graw-Hill
COMPLEMENTARIA:
Fundamentos de los microprocesadores
Roger L. Tokheim
Segunda Edicin
Editorial McGraw-Hill
Pgina 24
[Manual de prcticas de Microprocesadores] [2010]
ane!o de Instrucciones *gicas
NOMBRE DE LA PRCTICA: Manejo de instrucciones lgicas
No. DE PRCTICA: 7 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: 2
OB!ETIVO:
Manipular el ensamblador MASM 6.11 y la utilera DEBUG del MS-DOS, a travs de su entorno de desarrollo
y sus diversos comandos, para generar diversos programas que utilizan instrucciones lgicas bsicas.
MARCO TEOR"CO:
Las llamadas instrucciones lgicas, operan sobre cada uno de los bits de una palabra. Estas funciones son las
conocidas como AND, OR, XOR (OR exclusiva) y NOT (complemento), as como las instrucciones de
desplazamiento circular. Se utilizan para realizar manipulaciones del lgebra booleana en las variables.
Tambin se ocupan para poner a 1 o 0, bits especficos de una palabra y para comprobar y comparar bits.
Las instrucciones lgicas son frecuentemente usadas como mscaras en los programas: XOR es
frecuentemente utilizada en programas de grficas para borrar un punto previamente dibujado en la pantalla y
AND se utiliza para filtrar solamente ciertos bits de un byte dado. Otra aplicacin para las funciones lgicas
comunes est en la simulacin de circuitos lgicos sencillos de hardware.
EUIPO # SOFT$ARE A UTILI%AR:
Computadora PC con microprocesador NTEL 80x86
Sistema Operativo Windows y MS-DOS
MacroEnsamblador MASM 6.11
Calculadora Cientfica de Windows
Software para diseo de diagramas de flujo (DFD u otros)
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Se tiene el siguiente cdigo en lenguaje ensamblador, perteneciente a un microprocesador de la familia
80x86, que comprende algunas de las instrucciones lgicas elementales, que hacen diversas manipulaciones
con los bits de los registros utilizados:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;PROGRAMA QUE LUSTRA LAS OPERACONES LOGCAS: AND / OR / XOR / NOT
STACK SEGMENT PARA STACK
Pgina -.
[Manual de prcticas de Microprocesadores] [2010]
DB 64 DUP ('MYSTACK ')
STACK ENDS
MYDATA SEGMENT PARA 'DATA'
N1 DB 10111010B
N2 DB 11111100B
N3 DB 00010100B
N4 DB 00010011B
ANS DB ?
MYDATA ENDS
MYCODE SEGMENT PARA 'CODE' ;DEFNE SEGMENTO CODGO PARA MASM
MYPROC PROC FAR ;PROCEDMENTO SE LLAMA MYPROC
ASSUME CS:MYCODE, DS:MYDATA, SS:STACK
PUSH DS ;GUARDAR POSCON DE REG. DS
SUB AX,AX ;PONE UN CERO EN AX
PUSH AX ;GUARDA CERO EN PLA, TAMBEN
MOV AX,MYDATA ;PONE POSCON DE DATO EN AX
MOV DS,AX ;LO PONE EN REGSTRO DS
;EJEMPLO DE SNTESS DE PUERTAS LOGCAS
MOV AL,N1 ;CARGA PRMERA ENTRADA ENAL
NOT AL ;NVERTE BTS DE AL
MOV AH,N2 ;CARGA SEGUNDA ENTRADA EN AH
OR AL,AH ;OR LAS DOS
MOV BL,N3 ;CARGA TERCERA ENTRADA EN BL
AND BL,N4 ;Y EN LOS DOS
XOR AL,BL ;SALDAS DE PUERTAS EX-OR
MOV ANS,AL ;GUARDA RESULTADO EN ANS
;EJEMPLO COMPLETO DE SNTESS DE PUERTA
RET ;DEVUELVE CONTROL A DOS
MYPROC ENDP ;FN DEL PROCEDMENTO LLAMADO MYPROC
MYCODE ENDS ;FN DEL SEGMENTO CODGO LLAMADO MYCODE
END MYPROC ;FN DEL PROGRAMA COMPLETO
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
&*'. P'*te: An/0i)i) 1*e0i-in'* de0 1*o2*'-'
Pgina -&
[Manual de prcticas de Microprocesadores] [2010]
Del programa presentado:
a) Analice detenidamente el programa, tratando de comprender cada una de las sentencias presentadas
(en caso de tener dudas, consulte la bibliografa citada, para conocer el significado de las instrucciones
utilizadas)
b) Realice un diagrama de flujo de las sentencias principales del programa, para que le ayude a visualizar
la secuencia de stas
c) Con la ayuda de la calculadora de Windows (calc.exe), en su versin cientfica, lleve a cabo una
prueba de escritorio de la ejecucin del programa, en donde por cada sentencia del programa, se
registren los valores de los registros y etiquetas que el programa va generando; es recomendable que
estructure los resultados en forma de una tabla, como se pide en la prctica no.5.
3d'. P'*te: U)o de0 en)'-40'do* 5MASM 6.&&7 8 e0 De4+2 de MS9DOS
Sobre el programa realice las acciones de ensamblarlo y corrida a pasos con ayuda del MASM y DEBUG,
para poder analizar su funcionamiento, el cual deber comparar con los resultados de sus pruebas de
escritorio que hizo anteriormente. Las conclusiones que alcance le servirn para contestar las preguntas y
ejercicios que se plantean ms adelante.
Para ensamblar y correr a pasos un programa usando MASM y DEBUG, se siguen las pasos ya conocidos
(ver prctica no.5).
PREGUNTAS # E!ERCICIOS:
1)Cul es el resultado del registro AL, despus de la sentencia NOT AL?
2)Cul es el resultado del registro AL, despus de la sentencia OR Al, AH?
3)Cul es el resultado del registro BL, despus de la sentencia AND BL, N4?
4)Cul es el resultado del registro BL, despus de la sentencia XOR AL, BL?
Realice un reporte impreso de su prctica. Deber presentar:
a)Diagrama de flujo de las sentencias principales del programa
b)Tabla resultante de la prueba de escritorio del programa
c)La impresin de las pantallas del debuger, donde se visualicen las acciones y los contenidos de los
registros (uso del comando "t (trace))
d)Las respuestas a las preguntas y ejercicios que se le plantearon
e)La redaccin de sus conclusiones
Pgina -2
[Manual de prcticas de Microprocesadores] [2010]
CONCLUSIONES:
BIBLIOGRAF"A:
BSICA:
Manual del microprocesador 80386
Chris H. Pappas; William H. Murray
Editorial Osborne/Mc Graw-Hill
80386/80286. Programacin en lenguaje ensamblador
Chris H. Pappas; William H. Murray
Editorial Mc Graw-Hill
COMPLEMENTARIA:
Fundamentos de los microprocesadores
Roger L. Tokheim
Segunda Edicin
Editorial McGraw-Hill
Pgina --
[Manual de prcticas de Microprocesadores] [2010]
Introduccin a las Interrupciones del BI+, y D+,
NOMBRE DE LA PRCTICA: ntroduccin a las nterrupciones del BOS y DOS
No. DE PRCTICA: 8 No. DE SESIONES: 2
No. DE INTEGRANTES POR EUIPO: 2
OB!ETIVO:
Manipular el ensamblador MASM 6.11 y la utilera DEBUG del MS-DOS, a travs de su entorno de desarrollo
y sus diversos comandos, para generar diversos programas que manipulen interrupciones del BOS y DOS.
MARCO TEOR"CO:
Cada microprocesador de la familia de NTEL 80x86 posee su propio conjunto de ordenes del BOS y DOS;
sin embargo, muchas rutinas son compartidas. Por lo regular, las rutinas del BOS (Sistema Bsico de
Entrada/Salida), estn almacenadas en la ROM, mientras que las operaciones del DOS (Sistema Operativo de
Disco) son almacenadas en la RAM.
Con el lenguaje ensamblador es posible aprovechar algunas de las potentes rutinas que han sido
almacenadas en memoria, ya sea en ROM o RAM, consiguiendo as programas muy potentes en un tiempo
de programacin reducido.
Dentro del conjunto de rutinas que se encuentran dentro del BOS y del DOS, se encuentran la 10H y la 21H.
El control de la pantalla puede conseguirse fcilmente con las interrupciones del BOS tipo 10H. Por su parte,
la interrupcin 21H del DOS es una interrupcin de llamada a funcin; es utilizada para escribir los resultados
en la pantalla, sean caracteres, cadenas de caracteres o valores numricos.
EUIPO # SOFT$ARE A UTILI%AR:
Computadora PC con microprocesador NTEL 80x86
Sistema Operativo Windows y MS-DOS
MacroEnsamblador MASM 6.11
Calculadora Cientfica de Windows
Software para diseo de diagramas de flujo (DFD u otros)
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Los siguientes 2 cdigos en lenguaje ensamblador, pertenecientes a un microprocesador de la familia 80x86,
ilustran el uso de interrupciones; el primero, borra la pantalla actual utilizando interrupciones del BOS
(interrupciones de la pantalla y de retorno del sistema) y el segundo, es un programa que limpia la pantalla,
cambia el color del fondo y muestra un mensaje:
Pgina -4
[Manual de prcticas de Microprocesadores] [2010]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;PROGRAMA QUE BORRA LA PANTALLA ACTUAL UTLZANDO NTERRUPCONES DEL BOS
STACK SEGMENT PARA STACK
DB 64 DUP ('MYSTACK ')
STACK ENDS
MYCODE SEGMENT PARA 'CODE' ;DEFNE SEGMENTO CODGO PARA MASM
MYPROC PROC FAR ;EL PROCEDMENTO SE LLAMA MY PROC
ASSUME CS:MYCODE,SS:STACK
PUSH DS ;GUARDA POSCON DE REG. DS
SUB AX,AX ;PONE UN CERO EN AX
PUSH AX ;GUARDA CERO EN PLA TAMBEN, CODGO REAL PARA BORRAR PANTALLA DE COLOR
;CODGO PARA BORRAR PANTALLA DE COLOR
MOV AX,02
NT 10H
MOV CX,0000 ;FLA,COLUMNA ESQUNA SUPEROR ZQUERDA
MOV DX,2479H ;FLA COLUMNA ESQUNA NFEROR DERECHA
MOV BH,07 ;ATRBUTO NORMAL
MOV AH,06 ;ENROLLAMENTO ACTVO PAGNA HACA ARRBA
MOV AL,00 ;ENROLLAMENTO COMPLETO VENTANA
NT 10H ;LLAMA NTERRUPCON DE BOS
NT 21H
;FN DE RUTNA DE BORRAR PANTALLA
RET ;DEVULVE CONTROL A DOS
MYPROC ENDP ;FN DEL PROCEDMENTO LLAMADO MY PROC
MYCODE ENDS ;FN DEL SEGMENTO CODGO LLAMADO MYCODE
END ;FN DEL PROGRAMA COMPLETO
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
PAGE 60,132
TTLE PROGRAMA QUE LMPA LA PANTALLA, CAMBA EL COLOR DEL FONDO Y MUESTRA UN MENSAJE
;------------------------------
PLA SEGMENT PARA STACK 'STACK'
DW 32 DUP(0)
PLA ENDS
Pgina -'
[Manual de prcticas de Microprocesadores] [2010]
;------------------------------
DATOS SEGMENT PARA 'DATA'
CAD1 DB"M PRMER PROGRAMA DE NTERRUPCONES",'$'
CAD2 DB"EN LENGUAJE ENSAMBLADOR, EN UN MP NTEL 80x86",'$'
V1 DB 76D ;VARABLE DE COLOR EN DECMAL
DATOS ENDS
;------------------------------
CODGO SEGMENT PARA 'CODE'
MAN PROC FAR
ASSUME DS:DATOS, SS:PLA, CS:CODGO
MOV AX,DATOS
MOV DS,AX
;----------------------------------
;LMPEZA DE PANTALLA
MOV AH,06H
MOV AL,00H ;NUMERO DE PAGNA
MOV BH,V1 ;ATRBUTO DE COLOR CON LA VARABLE DE COLOR
MOV CX,0000H ;COORDENADAS NCALES
MOV DX,18FFH ;COORDENADAS FNALES
NT 10H
;COLOCAR EL CURSOR
MOV AH,02H
MOV BH,00H ;NUMERO DE PAGNA
MOV DL,15H ;NUM DE COLUMNA
MOV DH,0CH ;NUM DE FLA
NT 10H
;MPRME LA CADENA
MOV AX,0H ;limpia ax con cero
MOV AH,09H
LEA DX,CAD1
NT 21H
;COLOCAR EL CURSOR
MOV AH,02H
MOV BH,00H ;NUMERO DE PAGNA
MOV DL,15H ;NUM DE COLUMNA
MOV DH,0EH ;NUM DE FLA
NT 10H
;MPRME LA CADENA
MOV AX,0H ;limpia ax con cero
MOV AH,09H
LEA DX,CAD2
NT 21H
Pgina -5
[Manual de prcticas de Microprocesadores] [2010]
;----------------------------------G
MOV AX, 4C00H
NT 21H
MAN ENDP
CODGO ENDS
END MAN
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
&*'. P'*te: An/0i)i) 1*e0i-in'* de0 1*o2*'-'
De cada uno de los programas presentados:
a) Analice detenidamente el programa, tratando de comprender cada una de las sentencias presentadas
(en caso de tener dudas, consulte la bibliografa citada, para conocer el significado de las instrucciones
utilizadas)
b) Realice un diagrama de flujo de las sentencias principales del programa, para que le ayuden a
visualizar la secuencia de estas
c) Con la ayuda de la calculadora de Windows (calc.exe), en su versin cientfica, lleve a cabo una
prueba de escritorio de la ejecucin del programa, en donde por cada sentencia del programa, se
registren los valores de los registros y etiquetas que el programa va generando; es recomendable que
estructure los resultados en forma de una tabla, como se pide en la prctica no.5.
3d'. P'*te: U)o de0 en)'-40'do* 5MASM 6.&&7 8 e0 De4+2 de MS9DOS
Sobre los programas realice las acciones de ensamblarlo y corrida a pasos con ayuda del MASM y DEBUG,
para poder analizar su funcionamiento, el cual deber comparar con los resultados de sus pruebas de
escritorio que hizo anteriormente. Las conclusiones que alcance le servirn para contestar las preguntas y
ejercicios que se plantean ms adelante.
Para ensamblar y correr a pasos un programa usando MASM y DEBUG, se siguen las pasos ya conocidos
(ver prctica no.5).
PREGUNTAS # E!ERCICIOS:
Haga un listado de todas opciones que posee la interrupcin 10H del BOS (valores que puede tomar el
registro AH y los relacionados con el (consultar bibliografa)
Haga un listado de todas opciones que posee la interrupcin 21H del DOS (valores que puede tomar el
registro AH y los relacionados con el (consultar bibliografa)
Pgina -6
[Manual de prcticas de Microprocesadores] [2010]
Realice un reporte impreso de su prctica. De cada uno de los programas, deber presentar:
a)Diagrama de flujo de las sentencias principales del programa
b)Tabla resultante de la prueba de escritorio del programa
c)La impresin de las pantallas del debuger, donde se visualicen las acciones y los contenidos de los
registros (uso del comando "t (trace))
d)Las respuestas a las preguntas y ejercicios que se le plantearon
e)La redaccin de sus conclusiones
CONCLUSIONES:
BIBLIOGRAF"A:
BSICA:
Manual del microprocesador 80386
Chris H. Pappas; William H. Murray
Editorial Osborne/Mc Graw-Hill
80386/80286. Programacin en lenguaje ensamblador
Chris H. Pappas; William H. Murray
Editorial Mc Graw-Hill
Lenguaje ensamblador y programacin para PCs BM y Compatibles
PETER ABEL
Editorial Prentice Hall
COMPLEMENTARIA:
Fundamentos de los microprocesadores
Roger L. Tokheim
Segunda Edicin
Editorial McGraw-Hill
Pgina -
[Manual de prcticas de Microprocesadores] [2010]
Pgina -4
[Manual de prcticas de Microprocesadores] [2010]
"ondicionales (-P.s)
NOMBRE DE LA PRCTICA: Saltos condicionales (Bifurcacin)
No. DE PRCTICA: 9 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: individual
OB!ETIVO:
Utilizar los mnemotcnicos de los saltos condicionales en programas en donde requiera el
programador manejar la toma de decisiones.
MARCO TEOR"CO:
!MP S'0to in,ondi,ion'0 (Unconditional Jump)
U)o: JMP direccin
F0'2) >+e -odi?i,': Ninguno
De),*i1,i@n: Transfiere el control incondicionalmente a la direccin indicada. El salto puede ser cercano
(dentro del mismo segmento) o lejano (a otro segmento).
Sintxis:
CMP AL, VAR1 ; comparacin
JE A10 ; condicional
A10: ; cuerpo de la etiqueta
nstrucciones del condicional
In)t*+,,i@n De),*i1,i@n Condi,i@n de )'0to
!A Saltar si Superior CF=0 y ZF=0
!AE Saltar si Superior o gual CF=0
!B Saltar si nferior CF=1
!BE Saltar si nferior o gual CF=1 o ZF=1
!C Saltar si hay acarreo CF=1
!CX% Saltar si CX es cero CX=0
!E Saltar si gual ZF=1
!G Saltar si Mayor (con signo) ZF=0 y SF=OF
!GE Saltar si Mayor o gual (con signo) SF=OF
!L Saltar si Menor (con signo) SF != OF
!LE Saltar si Menor o gual (con signo) ZF=1 o SF != OF
!NA Saltar si No Superior CF=1 o ZF=1
!NAE Saltar si No Superior o gual CF=1
!NB Saltar si No nferior CF=0
Pgina 4.
[Manual de prcticas de Microprocesadores] [2010]
!NBE Saltar si No nferior o gual CF=0 y ZF=0
!NC Saltar si No hay acarreo CF=0
!NE Saltar si No gual ZF=0
!NG Saltar si No Mayor (con signo) ZF=1 o SF != OF
!NGE Saltar si No Mayor o gual (con signo) SF != OF
!NL Saltar si No Menor (con signo) SF=OF
!NLE Saltar si No Menor o gual (con signo) ZF=0 y SF=OF
!NO Saltar si No Overflow (con signo) OF=0
!NS Saltar si Positivo SF=0
!N% Saltar si No Cero ZF=0
!O Saltar si Overflow (con signo) OF=1
!P A!PE Saltar si Par PF=1
!POA!NP Saltar si mpar PF=0
!S Saltar si negativo (si hay signo) SF=1
!% Saltar si cero ZF=1
!CX% Bi?+*,'* )i CX e) ,e*o (Jump if Register CX is Zero)
U)o: JCXZ label
F0'2) >+e -odi?i,': Ninguno
De),*i1,i@n: Transfiere el control a la instruccin P + desplazamiento si se cumple la condicin de CX= 0. Si
CX no es 0, no hay transferencia de control. El desplazamineto debe estar comprendido entre 128 y +127
bytes de esta instruccin, es decir, desplazamiento es un valor con signo de 8 bits (1 byte).
EUIPO # SOFT$ARE A UTILI%AR:
Software: Lenguaje Ensamblador MASM 6.11 (MACRO ASSEMBLER)
Depurador: (Debug de MS-DOS) o Turbo Debugger de Borland
Equipo de cmputo:
Procesador: Dual Core, Core 2 duo, AMD X2
Memoria: 1024MB o 2048MB
Disco Duro: 80GB
Sistema Operativo: Windows XP, Windows Vista o Windows 7
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Analizar el siguiente cdigo:
PAGE 60,132
TTLE uso de Jumps
;----------------------------------------------------
.MODEL SMALL
.STACK 32
.DATA
C1 DB "Nmero mayor$
C2 DB "Nmero menor$
C3 DB "ngrese primer nmero$
C4 DB "ngrese segundo nmero$
C5 DB "guales$
Pgina 4&
[Manual de prcticas de Microprocesadores] [2010]
V1 DB 00H
V2 DB 00H
;-----------------------------------------------------
.CODE
BEGN PROC FAR
MOV AX,@DATA
MOV DS,AX
MOV AX,0
MOV AH,09H
LEA DX,C3
NT 21H
MOV AH,01H
NT 21H
MOV V1,AL
MOV AH,09H
LEA DX,C4
NT 21H
MOV AH,01H
NT 21H
CMP AL,V1
!E A10
CMP AL, V1
!A A20
CMP AL,V1
!B A30
A10:
MOV AH,09H
LEA DX,C4
NT 21H
JMP FN
A20:
MOV AH,09H
LEA DX,C1
NT 21H
JMP FN
A30:
MOV AH,09H
LEA DX,C2
NT 21H
Pgina 42
[Manual de prcticas de Microprocesadores] [2010]
JMP FN
FN:
MOV AX,4C00H
NT 21H
BEGN ENDP
END BEGN
PREGUNTAS:
1. Cules son los condicionales que se utilizan en el cdigo anterior?
2. Dnde almacena el valor ingresado al momento de ejecutar la funcin 01h de la NT 21H?
3. Marque en un cuadro, cules son el conjunto de instrucciones para imprimir las cadenas de
caracteres que se encuentran declaradas en el .DATA
4. De manera general, describa qu es lo que realiza el programa anterior.
CONCLUSIONES:
BIBLIOGRAF"A:
BSICA:
Ttulo: Lenguaje ensamblador y programacin para PC BM y compatibles
Autor: Peter Abel
Editorial: Pearson Education
1996, Mxico
Ttulo: Programacin en Lenguaje Ensamblador: 80386/80286
Autores: William H. Murray, Chris Pappas
Editorial: Osborne/ Mc Graw Hill
1986
COMPLEMENTARIA:
Ttulo: Arquitectura de Computadoras
Autor. Morris mano
Editorial: Pearson/ Prentice Hall
1993, Mxico
Pgina 4-
[Manual de prcticas de Microprocesadores] [2010]
"iclos (*++P.s)
NOMBRE DE LA PRCTICA: Ciclos
No. DE PRCTICA: 10 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: ndividual
OB!ETIVO:
Aplicar los ciclos LOOP's en la generacin de sucesiones numricas.
MARCO TEOR"CO:
La instruccin LOOP realiza un ciclo un nmero especfico de veces o hasta que alcance una
condicin particular, en cada iteracin LOOP de forma automtica disminuye 1 de CX; si el valor en
CX es cero, el control pasa a la instruccin que sigue; si el valor en CX no es cero, el control pasa a
la direccin del operando.
Sintxis:
mov cx,valor ; nmero de iteraciones
,i,0o: ; etiqueta
instrucciones del ciclo
0oo1 ciclo
EUIPO # SOFT$ARE A UTILI%AR:
Software: Lenguaje Ensamblador MASM 6.11 (MACRO ASSEMBLER)
Depurador: (Debug de MS-DOS) o Turbo Debugger de Borland
Equipo de cmputo:
Procesador: Dual Core, Core 2 duo, AMD X2
Memoria: 1024MB o 2048MB
Disco Duro: 80GB
Sistema Operativo: Windows XP, Windows Vista o Windows 7
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Analizar el siguiente cdigo:
PAGE 60,132
TTLE uso de Jumps
;----------------------------------------------------
.MODEL SMALL
Pgina 44
[Manual de prcticas de Microprocesadores] [2010]
.STACK 32
.DATA
;--------------------------------------------------
.CODE
BEGN PROC FAR
MOV AX,@DATA
MOV DS,AX
MOV AX,0001H
MOV BX,0001H
MOV DX,0001H
MOV CX,000AH
CICLO:
NC AX
ADD BX,AX
SHL DX,1
LOOP CICLO
MOV AX,4C00H
NT 21H
BEGN ENDP
END BEGN
PREGUNTAS:
1. Cuntas iteraciones realizar el ciclo?
2. En que registro queda el resultado de la suma?
3. Cules son los valores que va tomando el registro DX en cada iteracin?
4. Realice la prueba de escritorio del ciclo
CONCLUSIONES:
BIBLIOGRAF"A:
BSCA:
Ttulo: Lenguaje ensamblador y programacin para PC BM y compatibles
Autor: Peter Abel
Editorial: Pearson Education
1996, Mxico
Ttulo: Programacin en Lenguaje Ensamblador: 80386/80286
Autores: William H. Murray, Chris Pappas
Editorial: Osborne/ Mc Graw Hill
Pgina 4'
[Manual de prcticas de Microprocesadores] [2010]
1986
COMPLEMENTARA:
Ttulo: Arquitectura de Computadoras
Autor. Morris mano
Editorial: Pearson/ Prentice Hall
1993, Mxico
Pgina 45
[Manual de prcticas de Microprocesadores] [2010]
Procedimientos
NOMBRE DE LA PRCTICA: Llamadas a procedimientos
No. DE PRCTICA:11 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: ndividual
OB!ETIVO:
Reutilizar cdigo agrupado en subrutinas en varios programas para que realicen actividades
especficas.
MARCO TEOR"CO:
Un procedimiento llamado (o subrutina) es una seccin de cdigo que realiza una tarea definida y
clara. La organizacin de un programa en procedimientos proporciona los siguientes beneficios:
Reduce la cantidad de cdigo, ya que un procedimiento compun puede ser llamado desde
cualquier lugar en el segmento de cdigo.
Fortalece la mejor organizacin del programa.
Facilita la depuracin del programa.
Ayuda en el mantenimiento progresivo de los programas.
La instruccin CALL transfiere el control al procedimiento llamado y la instruccin RET regresa del
procedimiento llamado al procedimiento original que hizo la llamada.
Sintxis del procedimiento:
PROC1 PROC FAR
nstrucciones del procedimiento
RET
PROC1 ENDP
EUIPO # SOFT$ARE A UTILI%AR:
Software: Lenguaje Ensamblador MASM 6.11 (MACRO ASSEMBLER)
Depurador: (Debug de MS-DOS) o Turbo Debugger de Borland
Equipo de cmputo:
Procesador: Dual Core, Core 2 duo, AMD X2
Memoria: 1024MB o 2048MB
Pgina 46
[Manual de prcticas de Microprocesadores] [2010]
Disco Duro: 80GB
Sistema Operativo: Windows XP, Windows Vista o Windows 7
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Analizar el siguiente cdigo:
PAGE 60,132
TTLE uso de procedimientos
;----------------------------------------------------
.MODEL SMALL
.STACK 32
.DATA
C1 DB "Procedimiento de Limpieza de pantalla$
;--------------------------------------------------
.CODE
BEGN PROC FAR
MOV AX,@DATA
MOV DS,AX
MOV AX,0
CALL LIMPIE%A

MOV AH,09H
LEA DX,C1
NT 21H
MOV AX,4C00H
NT 21H
BEGN ENDP
;---------------------------------------------------------------
LIMPIE%A PROC NEAR
MOV AH,06H
MOV AL,00H
MOV BH,2FH
MOV CX,0000H
MOV DX,184FH
NT 10H
RET
LIMPIE%A ENDP

PREGUNTAS:
Pgina 4
[Manual de prcticas de Microprocesadores] [2010]
1. Qu es lo que realiza el procedimiento?
2. Cuando termina el procedimiento, cul es la instruccin que devuelve el control al
procedimiento principal?
3. Qu es lo que sucede con el STACK cuando se mandan llamar los procedimientos?
4. Qu tipo de llamadas puede realizar a los procedimientos?
CONCLUSIONES:
BIBLIOGRAF"A:
BSCA:
Ttulo: Lenguaje ensamblador y programacin para PC BM y compatibles
Autor: Peter Abel
Editorial: Pearson Education
1996, Mxico
Ttulo: Programacin en Lenguaje Ensamblador: 80386/80286
Autores: William H. Murray, Chris Pappas
Editorial: Osborne/ Mc Graw Hill
1986
COMPLEMENTARA:
Ttulo: Arquitectura de Computadoras
Autor. Morris mano
Editorial: Pearson/ Prentice Hall
1993, Mxico
Pgina 44
[Manual de prcticas de Microprocesadores] [2010]
acros
NOMBRE DE LA PRCTICA: MACROS
No. DE PRCTICA: 12 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: ndividual
OB!ETIVO:
Elaborar los cuerpos de las macros para que reciban pase de parmetros por valor y sean llamadas
en el procedimiento principal para ejecutar una tarea en particular.
MARCO TEOR"CO:
Las funciones pueden ser implementadas en Ensamblador a travs de las Macros, que pueden
incluir operaciones de Entrada/Salida que cargan registros y cargan interrupciones, conversiones de
informacin ASC y binaria, aritmtica de palabras dobles, rutinas para el manejo de caracteres, etc.
Una definicin de una Macro aparece antes que cualquier definicin de segmento y su cuerpo de
instrucciones es el siguiente:
Nombre_macro MACRO argumentos_macro
Cuerpo de la macro
ENDM


EUIPO # SOFT$ARE A UTILI%AR:
Software: Lenguaje Ensamblador MASM 6.11 (MACRO ASSEMBLER)
Depurador: (Debug de MS-DOS) o Turbo Debugger de Borland
Equipo de cmputo:
Procesador: Dual Core, Core 2 duo, AMD X2
Memoria: 1024MB o 2048MB
Disco Duro: 80GB
Sistema Operativo: Windows XP, Windows Vista o Windows 7
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
Analizar el siguiente cdigo:
PAGE 60,132
Pgina '.
[Manual de prcticas de Microprocesadores] [2010]
TTLE uso de Macros
;----------------------------------------------------
.MODEL SMALL
.STACK 32
PORSCUR MACRO FILBCOL
MOV AH,02H
MOV AL,00H
MOV BH,00H
MOV DH,FL
MOV DL,COL
NT 10H
ENDM
IMPCAD MACRO CAD
MOV AH,09H
LEA DX,C1
NT 21H
ENDM
;----------------------------------------------------
.DATA
C1 DB "Colocando el cursor en la pantalla$
;--------------------------------------------------
.CODE
BEGN PROC FAR
MOV AX,@DATA
MOV DS,AX
MOV AX,0
POSCUR CDHBCAH
IMPCAD C&
MOV AX,4C00H
NT 21H
BEGN ENDP
END BEGN
PREGUNTAS:
1. Qu valores pueden tomar los argumentos que se estan pasando a las macros?
2. Qu es lo que realiza cada una de ellas?
3. Cuntas macros se pueden llamar en un procedimiento principal?
4. Se podra incluir los cuerpos de las macros en un archivo independiente y llamarlo como una
librera?
Pgina '&
[Manual de prcticas de Microprocesadores] [2010]
CONCLUSIONES:
BIBLIOGRAF"A:
BSCA:
Ttulo: Lenguaje ensamblador y programacin para PC BM y compatibles
Autor: Peter Abel
Editorial: Pearson Education
1996, Mxico
Ttulo: Programacin en Lenguaje Ensamblador: 80386/80286
Autores: William H. Murray, Chris Pappas
Editorial: Osborne/ Mc Graw Hill
1986
COMPLEMENTARA:
Ttulo: Arquitectura de Computadoras
Autor. Morris mano
Editorial: Pearson/ Prentice Hall
1993, Mxico
Pgina '2
[Manual de prcticas de Microprocesadores] [2010]
NOMBRE DE LA PRCTICA: MACROS
No. DE PRCTICA: 1 No. DE SESIONES: 1
No. DE INTEGRANTES POR EUIPO: ndividual
OB!ETIVO:
MARCO TEOR"CO:
EUIPO # SOFT$ARE A UTILI%AR:
Software: Lenguaje Ensamblador MASM 6.11 (MACRO ASSEMBLER)
Depurador: (Debug de MS-DOS) o Turbo Debugger de Borland
Equipo de cmputo:
Procesador: Dual Core, Core 2 duo, AMD X2
Memoria: 1024MB o 2048MB
Disco Duro:160GB
Sistema Operativo: Windows XP, Windows Vista o Windows 7
PROCEDIMIENTO PARA EL DESARROLLO DE LA PRCTICA:
CONCLUSIONES:
BIBLIOGRAF"A:
BSCA:
Ttulo: Lenguaje ensamblador y programacin para PC BM y compatibles
Autor: Peter Abel
Editorial: Pearson Education
1996, Mxico
Ttulo: Programacin en Lenguaje Ensamblador: 80386/80286
Autores: William H. Murray, Chris Pappas
Editorial: Osborne/ Mc Graw Hill
1986
COMPLEMENTARA:
Ttulo: Arquitectura de Computadoras
Autor. Morris mano
Editorial: Pearson/ Prentice Hall
Pgina '-
[Manual de prcticas de Microprocesadores] [2010]
1993, Mxico
Pgina '4

S-ar putea să vă placă și