You are on page 1of 5

UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA

FACULTAD SEDE SOGAMOSO


ESCUELA DE INGENIERA ELECTRNICA
LABORATORIO DE MICROPROCESADORES

PRCTICA N 1
USO DEL SET DE INSTRUCCIONES CISC INTEL (ISA-X86) EN EMU8086
I. OBJETIVOS implican disear un programa para un procesador
8086, y recordar cmo es la interaccin entre una
Conocer el entorno para el desarrollo de
instruccin del procesador con el hardware
aplicaciones del emulador Emu8086.
disponible en el mismo.
Identificar las caractersticas de
funcionamiento de las instrucciones
lgicas y aritmticas para procesadores
CISC Intel x86.
Identificar las caractersticas del hardware
usado en cada instruccin aritmtica por
el procesador Intel de la familia x86.
Realizar un programa en ensamblador
aplicando las instrucciones lgicas y
aritmticas para Intel x86.

II. INTRODUCCIN
La mayora de instrucciones aritmticas y lgicas
afectan el registro de estado del procesador
(banderas). En esta gua se abordan 3 grupos de
instrucciones: las instrucciones (ADD, SUB, CMP,
AND, TEST, OR, XOR), las instrucciones (MUL,
IMUL, DIV, IDIV) y las instrucciones (INC, DEC, NOT, Diagrama de bloques simplificado del procesador 8086 de Intel.
NEG). Todas las instrucciones a abordar dependen
exclusivamente de la unidad de ejecucin (EU) del III. ELEMENTOS Y EQUIPOS NECESARIOS
procesador que est conformada bsicamente por Software Emu8086
una unidad lgico-aritmtica, un bloque de
Computador Personal
registros temporales, una unidad de control y un
registro de condicin o de estado.
IV. DESCRIPCIN DEL LABORATORIO
La familia de procesadores Intel 8086 a 80486
En esta gua se presentan algunos programas
pueden sumar restar multiplicar y dividir datos
bsicos para ser compilados y simulados en el
tales como bytes palabras y dobles palabras con
emulador del procesador de 16 bits 8086 de Intel
signo o sin signo; adems, se pueden modificar
Emu8086.
datos al nivel de bits mediante las operaciones
lgicas. a) Instrucciones lgicas y aritmticas
El objetivo de este ejercicio es conocer las Para informacin detallada de cada una de las
caractersticas presentes en las instrucciones de un instrucciones, ingrese a la documentacin y
procesador CISC, las caractersticas particulares que tutoriales disponible en el emulador Emu8086

Profesor: Ing. Wilson Javier Prez H - Segundo Semestre de 2017


UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
LABORATORIO DE MICROPROCESADORES

dando click en el botn help del men de


herramientas, se abrir una pgina web como se
observa a continuacin.

Figura 3. Seleccin del tipo de archivo o plantilla para trabajar.

Antes de comenzar a realizar el programa se


realizara la definicin de los segmentos
correspondientes a datos, cdigo y pila como se
Figura 1. Documentacin y tutoriales del Emu8086 observa en la Figura 4.

En las pestaas Tutorials y 8086 Instruction


Set encontrar la informacin necesaria referente
al set de instrucciones.
b) Creacin de un nuevo proyecto y definicin
de segmentos de memoria.
Abrir el software emulador del microprocesador
Intel x86 Emu8086. Seleccionar nuevo como se
muestra en la Figura 2.
Figura 4. Definicin de los segmentos de memoria en emu8086.

La directiva .MODEL SMALL define el modelo de


memoria. Las tres siguientes, .DATA, .CODE y
.STACK definen el inicio de los segmentos de Datos,
Cdigo y Pila respectivamente. La directiva END
cierra el programa.
c) Definicin de procedimientos
Figura 2. Opciones de inicio para un nuevo proyecto.
Un procedimiento o subrutina es un grupo de
A continuacin aparece una ventana en la que instrucciones que desempean una tarea especfica
se puede seleccionar plantillas segn el tipo de [1]. La definicin de un procedimiento se realiza de
archivo a emular tales como archivos .COM, .EXE la siguiente manera
entre otros. En este primer ejercicio se emplear NOMBRE PROC NEAR
un espacio de trabajo en blanco, ver la Figura 3.

Profesor: Ing. Wilson Javier Prez H - Segundo Semestre de 2017


UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
LABORATORIO DE MICROPROCESADORES

En este espacio se deben 7. Escriba el programa correspondiente a


ingresar las instrucciones de una calculadora que permita realizar las
su subrutina. tres operaciones bsicas sin signo, suma
RET resta, y multiplicacin, entre dos
ENDP variables de 32 bits previamente
Para invocar y ejecutar el procedimiento creado definidas en el segmento de datos,
se ejecuta la instruccin CALL NOMBRE, donde almacene el resultado de cada operacin
NOMBRE es el nombre del procedimiento. en las variables que considere
necesarias.
d) Ejercicios de comprobacin y verificacin
8. Escriba el programa correspondiente a
1. Abra emu8086 y digite el programa
una calculadora que permita realizar la
Ejercicio_1 que se encuentra en la
operacin bsica sin signo de divisin,
seccin de anexos de esta gua.
entre dos variables de 16 bits
2. Compile y emule programa (de click en el previamente definidas en el segmento de
icono emulate de la barra de datos, almacene el resultado de cada
herramientas el Emu8086). Ejecute el operacin en las variables que considere
programa paso a paso dando click en el necesarias.
icono single step. Observe
9. Escriba un procedimiento que permita
detalladamente en estado de cada una
hacer la conversin a ASCII de cada
de las banderas y registros que se ven
resultado obtenido en el ejercicio
afectados durante la ejecucin del
anterior.
programa.
3. Explique con la ayuda de un diagrama de BIBLIOGRAFA
bloques el hardware usado por el
[1] Barry B. Bray, the Intel Microprocessors,
programa anterior.
Fourth Edition, Prentice Hall, 2009.
4. Realice los pasos 1, 2 y 3 para el [2] Emu8086 Documentation HELP.
programa Ejercicio_2. [3] Carl Hamacher, Zvonko Vranesic, Safwat Zaky,
5. Con base en el funcionamiento Naraig Manjikian, Computer Organization and
observado en los dos ejercicios Embedded Systems, McGraw-Hill, 2011.
anteriores, desarrolle un programa que [4] Sivarama P. Dandamudi, Introduction to
invierta el estado de los bits del dato Assembly Language Programming For Pentium
contenido en el registro AL desde el D7 and RISC Processors, Springer, 2005.
hasta el D0, borre todos los bits pares [5] Andrew S. Tanenbaum - Structured Computer
desde el D6 hasta el D2 y modifique en 1 Organization, Pearson, 2006.
solo los bits D7 y D0. Almacene cada [6] William Stallings, Computer Organization and
resultado en un espacio de memoria Architecture - Designing for Performance,
diferente. Prentice Hall, 2010.
[7] Kip R. Irvine, Lenguaje ensamblador para
6. Obtenga el diagrama de bloques del computadoras basadas en Intel, Prentice Hall
hardware usado por el programa 2008.
anterior.

Profesor: Ing. Wilson Javier Prez H - Segundo Semestre de 2017


UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
LABORATORIO DE MICROPROCESADORES

ANEXO
EJERCICIO_1 (INSTRUCCIONES LGICAS)
.MODEL SMALL ;definicin del modelo de memoria
.STACK ; segmento de pila esta vaco??
.DATA ;segmento de datos
DATO1 DB 0FFH ;dato de 8 bits
DATO2 DB 0EEH ;dato de 8 bit
DATO3 DW 0AFECH ;dato de 16 bits
DATO4 DW 0A0EH ;dato de 16 bits
.CODE ;segmento de cdigo

MOV AX,@DATA ;mueve en DS la direccin


MOV DS,AX ;donde se encuentra el segmento de datos
MOV ES,AX ;

MOV DX,0000h ; mueve en DX 0000h


CICLO: MOV AL,DATO1 ;mueve en al el dato1
MOV BL,DATO2 ;mueve en bl el dato2
AND AL,BL

MOV AX,DATO3 ;mueve en AX el dato3


MOV BX,DATO4 ;mueve en BX el dato4
OR AX,BX

MOV AL,DATO2
MOV BL,DATO1
XOR AL,BL

INC DX ;incrementa el registro DX


CMP DX,2 ;compara DX con 2
JLE CICLO ;saltar a la etiqueta CICLO si en el
;resultado de la comparacion dx es menor
;o igual a 2 si o es asi continua el programa
DEC DX
XOR AX,AX
NOP
NOP
MOV AX,4C00H ;fin del programa
INT 21H
END

Profesor: Ing. Wilson Javier Prez H - Segundo Semestre de 2017


UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
LABORATORIO DE MICROPROCESADORES

EJERCICIO 2 INSTRUCCIONES ARITMTICAS


.MODEL SMALL ;modelo de memoria pequeo
.STACK ;definicion del segmento de pila
.DATA ;definicion del segmento de datos
DATO1 DB 10 ;dato de 8 bits
DATO2 DB 8 ;dato de 8 bits
RES DW 0 ;dato de 16 bits
.CODE ;segmento de codigo
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
;***********************SUMA*********************
XOR AX,AX ;borrar registro AX
MOV AL,DATO1 ;mover el contenido de dato1 a AL
MOV BL,DATO2 ;mover Dato2 a BL
ADD AX,BX ;sumar AX con BX
MOV RES,AX ;mueve a memoria el resultado de la suma

;***********************RESTA*********************
XOR AX,AX ;limpia el registro AX
MOV AL,DATO1
MOV BL,DATO2
SUB AX,BX ;restar AX menos BX

;********************MULTIPLICACION************************
XOR AX,AX
MOV AL,DATO1
MOV BL,DATO2
MUL BL ;multiplicacion de AL con BL

;**********************DIVISION**********************
XOR AX,AX
MOV AL,DATO1
MOV BL,DATO2
DIV BL ;division de AX en BL

;********************************************

;********************************************

MOV AX,4C00H ;fin del programa


INT 21H

END

Profesor: Ing. Wilson Javier Prez H - Segundo Semestre de 2017

You might also like