Sei sulla pagina 1di 4

UNIVERSIDAD NACIONAL DE INGENIERIA Arquitectura de Máquinas I

GUIA DE LABORATORIO 1: INTRODUCCIÓN AL SIMULADOR EMU8086

OBJETIVOS
 Aprender a utilizar el simulador emu8086
 Conocer las bases para hacer un programa en ensamblador
 Conocer los principales registros del microprocesador 8086
 Conocer y usar la instrucción MOV y la directiva ORG

INTRODUCCION

Un programa en computadora es una serie de instrucciones ejecutadas por una


unidad central de procesamiento (CPU) mediante de una serie de acciones
lógicas. Antes de que un programa sea ejecutado por la (CPU) éste debe ser
almacenado en memoria en forma binaria. Este tipo de programación es llamado
programación en lenguaje máquinas y es el único lenguaje que la computadora
entiende.
Interpretar un código en lenguaje de máquina es bastante complicado y muy
difícil de recordar por lo que el microprocesador normalmente se programa
usando el lenguaje ensamblador o un lenguaje de alto nivel (PASCAL, BASIC,C),
la naturaleza de unas aplicaciones en las que se ven envueltos los
microprocesadores, hacen más aconsejables en algunas ocasiones el desarrollo
de los programas a partir de los lenguajes ensambladores.

Modo de operación del Microprocesador

El microprocesador lee continuamente el contenido de los registros de memoria


empezando por la dirección 00000H. Reconoce el primer dato que lee como un
código de operación, y seguidamente incrementa el apuntador de instrucción
(IP).
Luego, decodifica la instrucción para conocer de qué operación se trata y toma
de las direcciones siguientes los operandos necesarios para ejecutar la
instrucción. El microprocesador usa el registro IP como puntero para la lectura
de cada byte de la instrucción almacenada en memoria.

Instrucciones de pruebas y saltos

Es posible hacer que el microprocesador cambie el contenido del apuntador de


instrucción y de esta manera ejecutar una instrucción que no es la siguiente en
el mapa de memoria. Este procedimiento es llamado instrucción de salto.

Las instrucciones de saltos son usadas para saltar entre diferentes localidades
de memoria. Estos saltos se pueden hacer de forma específica o pueden ser
condicionados mediante la prueba del estado de cuatro bits del registro de
banderas.

El bit de cero [Z]


El bit de acarreo y préstamo [C]
El bit de paridad [P]
El bit de desborde [O]
El bit de signo [S]

DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC


UNIVERSIDAD NACIONAL DE INGENIERIA Arquitectura de Máquinas I

Existen varios tipos de instrucciones que provocan saltos entre direcciones de


memoria. Una de ellas es la siguiente:

JMP mem: Salta a la dirección de memoria en mem.

Sobre el Lenguaje Ensamblador

Cuando se escriben programas en lenguaje ensamblador se debe usar, siempre


que sea posible, etiquetas para indicar la dirección hacia donde se hará un salto.
La etiqueta representa en realidad una dirección de memoria. Esta dirección es
aquélla en donde en donde el código de operación de la instrucción será
finalmente ensamblado. Cuando se programa directamente en lenguaje de
máquina, debe tenerse especial cuidado en la dirección que se le de cómo
argumento a una instrucción de salto.

Para incluir comentarios dentro del código ensamblador se debe anteponer a


dicho comentario ´´;´´ un punto y coma. El ensamblador tiene una directiva
llamada ORG (ORIGEN) que no es una instrucción, sino que le indica al
ensamblador la dirección de inicio del programa.

PROCEDIMIENTO
1. Corra el simulador emu8086 haciendo doble clic en el ícono

2. En la pantalla inicial del simulador cuando escogemos new, aparecerá este


encabezado:

Donde:COM: significa que vamos a trabajar con un archivo tipo .com, que es el
formato más simple de un archivo ejecutable. Para leer un poco más sobres
esto, lea el tutorial. Cuando trabajamos con un archivo de este tipo tenemos que
usar la directiva ORG que indica en qué dirección comenzará el programa.
Generalmente por defecto, el programa comienza en 0700:0100

DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC


UNIVERSIDAD NACIONAL DE INGENIERIA Arquitectura de Máquinas I

El valor de CS es puesto por el sistema operativo que este caso es 0700h, y el


origen es el 0100h dentro del segmento de código.

3. Las siguientes son un grupo de instrucciones que no llevan a cabo ninguna


tarea en especial, son únicamente demostrativas. Use el emulador 8086 para
escribir, ensamblar y correr paso a paso el programa. Antes de iniciar la
ejecución del programa, observe y anote el estado inicial de los
registros IP, AX, BX, CX, DX, DI, SI.

4. Copie las instrucciones que se muestran a continuación en el espacio


disponible para ello (; add your code here).

Código IP AX BX CX 0400H 0401H


Estado Inicial
MOV AH,10H
INC AH
MOV BH,AH
DEC BH
MOV AX,0400H
MOV [BX],33H
XCHG AX,CX
MOV CX,0805H
MOV [0400H],CX
MOV AL, [0401H]

5. Presione el botón Emulate y mostrará las siguientes pantallas.

DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC


UNIVERSIDAD NACIONAL DE INGENIERIA Arquitectura de Máquinas I

6. Observe cuidadosamente y anote los cambios que ocurren cada vez que se
ejecuta una instrucción. Para observar la dirección de memoria 0400h, haga
clic en el botón View, extended value viewer e introduzca la dirección
0700:0400

7. Corra el programa paso a paso (single step) y observe cómo cambian los
registros.
8. ¿Cómo cambia el registro IP?
9. ¿Con qué valor se carga CX?
10. ¿Cuántos bytes tiene la primera instrucción?¿Cuántos bytes tiene la segunda
instrucción? ¿Cuántos bytes en total tiene el programa?

DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

Potrebbero piacerti anche