Professional Documents
Culture Documents
INTRODUCCCION
Para este laboratorio se ha hecho el uso del emulador Turbo Debugger, no siendo este
La nica herramienta que podra ejecutar programas en bajo nivel, ya que en realidad
se intenta poner en prctica los conocimientos que en la teora se aprenden, por lo que
los ejercicios aqu propuestos nos inducen a un mejor entendimiento de estos
dispositivos y a un mayor aprovechamiento de los mismos.
[Fecha]
Microcomputadoras I
MARCO TEORICO
El microprocesador 8086 est dividido en dos sub-procesadores. Por un lado est la
Unidad de Ejecucin (EU) encargada de ejecutar las instrucciones, la cual posee una
ALU (unidad aritmtico-lgica) con un registro de estado con varios flags asociados y un
conjunto de registros de trabajo, y por otro est la Unidad de Interfaz de bus (BIU),
encargada de la bsqueda de las instrucciones, ubicadas en la cola de instrucciones
antes de su ejecucin y facilitar el direccionamiento de la memoria, es decir, encargada
de acceder a datos e instrucciones del mundo exterior.
El 8086 contiene 14 registros de 16 bits que son:
De propsito General:
Registro AX: Registro acumulador
Registro BX: Registro Base, que sirve para direccionar a memoria
Registro CX: Es un registro contador, que tambin es utilizado en ciertas instrucciones
como contador de registros iterativos.
Registro DX: Es un registro de datos, que trabaja con trabaja con nmeros grandes.
Registros de segmentos:
Registro CS: corresponde al segmento de cdigo, que almacena instrucciones
Registro DS: Corresponde al segmento de datos, que almacena datos que sern
utilizados por el programa.
Registro SS:
Registro ES:
Registro de Punteros
Registro IP:
Es un ndice fuente
Registro DI:
Es ndice destino
Registros de estado:
Son registro que en ellas se va a registrar la actividad del sistema en un momento
determinado, activando o desactivando el bit, cada bit tiene su nombre y son
considerados como banderas o flags, un bit que corresponde a un indicador de carrin.
[Fecha]
Microcomputadoras I
CF:
PF:
AF:
ZF:
SF:
IF:
DF:
OF:
Instruccin CMP:
Instruccin de comparacin.
CMP op1, op2
Instruccin de suma
ADD destino, fuente
SUB:
Instruccin de resta.
SUB destino, fuente
INC:
Instruccin de incremento.
INC operando
DEC:
Instruccin de decremento
DEC operando
MUL:
Instruccin de multiplicacin.
MUL multiplicador
DIV:
Operando de divisin.
DIV divisor
[Fecha]
Microcomputadoras I
Instruccin de Salto
Incondicional:
JMP:
Condicional:
JE dir:
Saltar si es igual
JNE dir:
Saltar si no es igual.
JA dir:
Saltar si es mayor.
JB dir:
Saltar si es menor.
JAE dir:
JBE dir:
JC dir:
JNC dir:
JO dir:
[Fecha]
Microcomputadoras I
Clic en Mi PC
Seleccionamos el Disco C: y le damos Clic.
[Fecha]
Microcomputadoras I
[Fecha]
Microcomputadoras I
3
1
1.
2.
3.
4.
5.
[Fecha]
Microcomputadoras I
Ejercicio N 1
Mov AX, 0
Mov Cx, 1
Condicin :
Cmp CX, 6
Jae fin
Add AX, BX
Inc BX
Jmp Condicion
Fin:
Insertamos las
instrucciones
una a una.
[Fecha]
Microcomputadoras I
Una vez insertadas las instrucciones tenemos que tener en cuenta la direccin
de memoria donde apunta el registro IP, puesto que de ah empezaremos con
la depuracin.
Se
especifica
la
direccin de memoria
donde se va a saltar
despus de ejecutar
esa instruccin (esto
es una etiqueta)
IP apunta la siguiente
direccin a ejecutar
[Fecha]
Microcomputadoras I
[Fecha]
10
Microcomputadoras I
Al terminar las instrucciones la suma de los cinco primeros dgitos quedar almacenada
en el registro AX, adems el Flag de cero se activar cuando se haga la comparacin de
cx=6, ya que son iguales por lo tanto se activa el ZF.
AX= F=15
Z=1 (activacin del Flag de cero se activa al momento de hacer la
comparacin entre cx,6)
[Fecha]
11
Microcomputadoras I
Ejercicio N 2
Elaborar una porcin de programa en assembler que permita obtener los 10 primeros
dgitos de la serie de Fibonacci y colocarlos en la memoria a partir de la primera posicin.
[Fecha]
12
Microcomputadoras I
[Fecha]
13
Microcomputadoras I
[Fecha]
14
Microcomputadoras I
Mediante este laboratorio podemos concluir que la utilidad del emulador turbo
debugger que se encuentra como un archivo de BORLANC, se suele convertir en una
potente utilidad para ejecutar nuestro cdigo assembler.
En general la informacin nos da un concepto amplio del uso del emulador turbo,
porque nos permite ejecutar nuestros programas ya que programar estos tipos de
sistemas es muy complejo. Hemos visto que para programar en este lenguaje hay que
tener algunos conocimientos previos de los registros, adems de manejar los nmeros
hexadecimales.
OBJETIVO:
Conocer el entorno de trabajo del turbo as como la ejecucin de programas en bajo
nivel, tambin conocer la ejecucin paso a paso de un programa en assembler
haciendo el uso correcto de cada registro.
BIBLIOGRAFIA:
http://www.azc.uam.mx/cbi/electronica/rgodinez/Docs_SD1/Instrucciones_8086.pdf.
http://www.dte.us.es/tec_inf/itis/estr_comp/docweb/tema4/tema4ec-3.pdf.
http://mixteco.utm.mx/~resdi/historial/Arquitectura8086.pdf.
http://www.fing.edu.uy/inco/cursos/arqsis2/teorico/notas-8086.pdf.
[Fecha]
15