Anda di halaman 1dari 14

LABORATORIO N 1

PROGRAMACIN CON EL SIMULADOR 8085


INTRODUCCION
El 8085-A es un microprocesador de 8 bits de propsito general que es muy efectivo en
pequeos sistemas debido a su bajo requerimiento de hardware adicional. Al mismo
tiempo es capaz de acceder hasta 64K bytes de memoria y tiene lneas de estado para
controlar grandes sistemas.
Para familiarizarnos con el microprocesador, utilizamos el simulador 8085, donde
podremos programar, logrando manejar todo un conjunto de instrucciones y as poderlas
comprender a medida que realicemos los seis programas de est laboratorio.
OBJETIVOS
Objetivos Generales
Utilizar el simulador del microprocesador 8085, familiarizarse con el conjunto de
instrucciones del microprocesador 8085 y practicar los pasos para la programacin en
lenguaje ensamblador de pequeos programas en lnea.
Objetivos Especficos
Realizar el flujograma de funcionamiento.
Llenar la columna de comentarios.
Traducir el programa a lenguaje de mquina, asignndole las respectivas direcciones
de memoria a cada una de las instrucciones del programa.
Analizar el programa, indicar el resultado que se espera obtener al correr el mismo.
Cargar el programa en el simulador y verificar sus respuestas.
MARCO TEORICO
El programador debe estar familiarizado con el conjunto de instrucciones y registros
disponibles del microprocesador, su arquitectura general y mapeo de memoria.
Los pasos generales para el desarrollo de un programa pueden ser sintetizados de la
siguiente forma:
1. Analizar y definir el problema
2. Esquematizar la solucin del problema en un diagrama de flujo
3. Escribir el programa en lenguaje ensamblador
4. Generar el programa en lenguaje de mquina
5. Depurar el programa

6. Documentar el programa
MATERIALES
Software simulador del microprocesador 8085
LABORATORIO
PARTE 1
1. Realizar el flujograma de funcionamiento.

2. Llenar la columna de comentarios


.org C000H
LDA C020H ;CARGAR AL ACUMLADOR C020H
MVI B,88H ;MOVER INMEDIATAMENTE 88H A B
ANA B ;REALIZAR UNA OPERACION LOGICA AND CON EL ACUMULADOR Y
B
OUT 00H ;MOSTRAR EL DATO DEL ACUMULADOR EN EL PUERTO 00H
STA C021H ;ALMACENAR EN C021H EL DATO DEL ACUMULADOR
JMP C000H ;SALTAR A C000H
3. Traducir el programa a lenguaje de maquina, asignndole las respectivas direcciones
de memoria a cada una de las instrucciones del programa.

4. Analizar el programa y considerando que en la posicin de memoria C020 se tiene


97H indicar el resultado que se espera obtener al correr el mismo.
Al introducir el dato 97H en la direccin C020H, este dato se almacena en el
acumulador pasando a la instruccin MVI B,88H, donde se carga l dato 88H de forma
inmediata en el registro B, luego se realiza un AND entre el acumulador y el registro B
obteniendo a la salida l dato 80H el cual es mostrado en el puerto 00H, s almacena en
el en la direccin C021H produciendo un salto a C000H. Como se muestra en la
siguiente figura:

5. Cargue el programa en el simulador y verifique sus respuestas.


S cargo en el simulador. S verifico de la siguiente manera la respuesta:

En la direccin C020H se cargo el dato 97H (10010111) luego se realiza la operacin


lgica AND con B, el dato introducido en B es 88H (10001000) y como respuesta se
obtiene 80H (10000000)
PARTE 2
1. Realizar el flujograma de funcionamiento.

2. Llenar la columna de comentarios


.org A000H
IN 00H ;LEE EL DATO QUE HAY ENEL PUERTO 00H Y LO CARGA EN EL
ACUMULADOR
ORI 07H ;SE REALIZA UNA OPERACION LOGICA OR INMEDIATA CON EL
DATO 07H Y EL ACUMULADOR, EL RESULTADO SE ALMACENA EN EL
ACUMULADOR
CMA ;SE REALIZA EL COMPLEMENTO A 1 EN EL ACUMULADOR
OUT 00H ;EN EL PUERTO 00H SE MUESTRA EL DATO DEL ACUMULADOR
JMP A000H ;SALTAR A DIRECCION A000H
3. Traducir el programa a lenguaje de maquina, asignndole las respectivas direcciones
de memoria a cada una de las instrucciones del programa.

4. Analizar el programa y considerando que en el puerto de entrada 00 se tiene 18H,


indicar el resultado que se espera obtener al correr el mismo.
Se realiz el programa, obtuvimos en la salida del puerto 00H el dato E0H l cual es
correcto, en el proceso se realizo un OR inmediato con el dato 18H y 07H, obteniendo
1FH a ste se aplico una funcin especial CMA (complementar acumulador)
produciendo un resultado de E0H, mostrndolo luego en l puerto 00H, como se
muestra en la siguiente figura:

5. Cargue el programa en el simulador y verifique sus respuestas.


El dato introducido en el puerto de entrada es 18H (00011000), luego realizamos un OR
inmediato con el dato 07H(00000111) y el anterior dato almacenado en el acumulador
18H. Obtenemos 1FH (00011111) l cual es almacenado en el acumulador
Posteriormente se realiza una funcin especial CMA (complementar acumulador) el
cual realiza el complemento a uno, obteniendo E0H (11100000), el cual es mostrado en
el puerto 00H , luego salta al inicio A000H

PARTE 3

1. Realizar el flujograma de funcionamiento.


2. Llenar la columna de comentarios
.org 2000H
MVI A,70H ;CARGAR EL REGISTRO A CON UN DATO INMEDIATO 70H
MVI B,ACH ;CARGAR EL REGISTRO B CON UN DATO INMEDIATO ACH
XRA B ;REALIZAR LA OPERACION LOGICA XOR ENTRE EL REGISTRO A Y
B , ALMACENANDOSE EN EL ACUMULADOR
STA 2012H ;ALMACENA UNA COPIA DEL CONTENIDO DEL AMULADOR A LA
DIRECCION 2012H
HLT ;SE DETIENE EL PROCESADOR
3. Traducir el programa a lenguaje de maquina, asignndole las respectivas direcciones
de memoria a cada una de las instrucciones del programa.

4. Analizar el programa e indicar el resultado que se espera obtener al correr el mismo.


El programa realiza un XOR en base a dos registros en los cuales se almacena el dato,
en el registro a se almacena 70H y en B ACH dando como respuesta DCH este se
almacena en el acumulador y por medio del STA se realiza una copia del acumulador a

la direccin 2012H, luego el procesador queda en el estado HLT, como se muestra en la


siguiente figura:

5. Cargue el programa en el simulador y verifique sus respuestas.


El dato introducido en el registro A es 70H (01110000), este se almacena en el
acumulador; el otro dato a introducir es ACH (10101100) este se almacena en un
registro B. Luego realizamos un XOR entre el acumulador (registro A) y el registro B
obteniendo DCH (11011100) l cual es almacenado en el acumulador, pero el comando
STA realiza una copia del acumulador en la direccin 2012H, pasando luego el
procesador a un estado HLT.
PARTE 4

1. Realizar el flujograma de funcionamiento.


2. Llenar la columna de comentarios

.org 2C00H
MVI A, 99H ;CARGAR EN EL REGISTRO A (ACUMULADOR)
INMEDIATAMENTE EL DATO 99H
ANI 01H ;REALIZAR UN OPERACION AND INMEDIATAMENTE ENTRE EL
ACUMULADOR Y EL DATO 01H
JNZ UNO ;SI EL CONTENIDO DEL ACUMULADOR ES 0 SALTARA A UNO
MVI A,CCH ;CARGAR EN EL REGISTRO A
(ACUMULADOR)INMEDIATAMENTE EL DATO CCH
JMP OTRO ;CARGA EL DATO DE LA DIRECCION OTRO
UNO: MVI A,0FH ;CARGA EN EL REGISTRO A (ACUMULADOR)
INMEDIATAMENTE EL DATO 0FH
OTRO: OUT 10 ;PONE EL CONTENIDO DEL ACUMULADOR EN EL PUERTO 10
HLT ;MODO EN QUE SE DETIENE EL PROCESADOR
3. Traducir el programa a lenguaje de maquina, asignndole las respectivas direcciones
de memoria a cada una de las instrucciones del programa.

4. Analizar el programa e indicar el resultado que se espera obtener al correr el mismo.


El programa realiza una operacin lgica AND inmediata con los datos 99H y 01H
dependiendo del resultado, la funcin JNZ DIR comprueba el valor 0, da lugar a que
vaya a la direccin UNO si el valor es diferente de 0 y si es 0 deja pasar el programa
dando lugar a que se almacene en el acumulador o registro A el dato CCH
producindose luego un salto a la direccin OTRO el cual muestra por el puerto 10H el
dato del acumulador.
S el valor es diferente de 0 en el acumulador entonces salta a la direccin UNO donde
se carga en el registro A o acumulador el dato 0FH y est se muestra en el puerto 10H.,
pasando luego a un estado HLT el microprocesador, como se muestra en la siguiente
figura:

5. Cargue el programa en el simulador y verifique sus respuestas.


El dato introducido en el registro A es 99H (10011001), este se almacena en el
acumulador, el otro dato a introducir es 01H (000000001) este junto con el comando
ANI produciendo un AND inmediato obteniendo 01H (00000001), la instruccin JNZ
DIR comprueba el valor del bit 0, como el acumulador es diferente de 0, da lugar a que
l programa vaya a la direccin UNO producindose una carga en el registro A
(acumulador) inmediato de dato 0FH (00001111), est se muestra en el puerto 10H,
luego pasa a un estado HLT el procesador.
PARTE 5
1. Realizar el flujograma de funcionamiento.

2. Llenar la columna de comentarios


.ORG 1000H
IN 0FH ;CARGA EN EL ACUMULADOR EL DATO QUE INGRESA AL PUERTO

0FH
SUI 44H ;EL BYTE DE DATOS INMEDIATOS SE RESTA CON EL CONTENIDO
DEL ACUMULADOR CON COMPLEMENTO A 2
JNZ 1000H ;COMPRUEBA EL VALOR DE BIT 0 SI EL PROGRAMA ES
DIFERENTE DE 0 VA A LA DIRECCION 1000H, SI ES 0 CONTINUA SU CICLO
NORMAL
MVI A,FFH ;CARGA INMEDIATAMENTE EN EL REGISTRO A O
ACUMULADOR EL DATO FFH
OUT F1H ;MUESTRA EN EL PUERTO F1H EL CONTENIDO DEL
ACUMULADOR
HLT ;EL MICROPROCESADOR ESTA EN UN MODO HLT ESTA EN PAUSA, EN
ESPERA DE ALGUNA INTERRUPCION
3. Traducir el programa a lenguaje de maquina, asignndole las respectivas direcciones
de memoria a cada una de las instrucciones del programa.

4. Ajustar la direccin del banco de interruptores a la direccin del puerto de entrada 0F


y el banco de diodos LED a la direccin del puerto de salida F1
La siguiente figura refleja las peticiones:

Analizar el programa, colocar en el banco de interrupciones 33h, verificar el resultado

mostrado en el banco de leds, luego cambie el dato de entrada en los interruptores a 44H
y verifique nuevamente el resultado.
Cuando el banco de interruptores esta en 33H (00110011) ser almacenado en el
acumulador este dato ingresa por el puerto 0FH, luego el programa procede a restar el
dato inmediato 44H (01000100) con el acumulador.
La resta es con complemento a 2 obteniendo como respuesta:
44H = 01000100B
33H = 00110011B con el complemento a1 obtenemos:
CCH= 11001100B mas el complemento a 2 tendremos:
+1
----------------------CDH= 11001101;
Por lo tanto 44H 33H = 11H (00010001). Como el dato no es cero entonces se
produce un salto a la direccin 1000H realizando de nuevo el ciclo hasta un nuevo dato
en el puerto 0FH. Dando lugar a que el puerto F1H no presente ningn dato, como se
muestra en la siguiente figura:

Ahora produciendo el cambio de dato en el puerto 0FH por el 44H nosotros


obtendremos como resultado de la resta ejecutada por el comando SUI
44H - 44H = 00H
El cual estar almacenado en el acumulador donde se comprobara el valor de bit 0
(JNZ), como cumple esta condicin entonces el dato FFH se cargara al registro A dando
lugar a que este se muestre en el puerto de salida F1H pasando luego a un estado HLT o
de pausa el microprocesador, como se muestra en la siguiente figura:

5. Cargue el programa en el simulador y verifique sus respuestas.


El dato introducido en el puerto 0FH es restado con el dato inmediato 44H, el dato
obtenido de la resta es almacenado en el acumulador, se comprueba el valor de bit de 0
si el contenido del acumulador no es 0 entonces salta a la direccin 1000H
producindose de nuevo el ciclo, si el contenido del acumulador es 0 entonces se carga
inmediatamente en el registro A el dato FFH est es mostrado en el puerto F1 pasando
luego a un estado de pausa o modo HLT.

PARTE 6
1. Realizar el flujograma de funcionamiento.

2. Llenar la columna de comentarios


.org 1B00H

IN ABH ;CARGAR EN EL ACUMULADOR EL DATO QUE INGRESE POR EL


PUERTO ABH
CPI 99H ;COMPARAR EL DATO INMEDIATO CON EL ACUMULADOR
JNZ 1B00H ;COMPRUEBA EL VALOR DE BIT 0 SI NO ES 0 ENTONCES SALTA A
LA DIRECCION 1B00H
MVI A,EEH ;CARGAR AL ACUMULADOR O REGISTRO A EL DATO EEH
INMEDIATAMENTE
OUT CDH ;MOSTRAR EL DATO DEL ACUMULADOR POR EL PUERTO CDH
HLT ;PERMANERCER EN UN ESTADO DE PAUSA O MODO HLT
3. Traducir el programa a lenguaje de maquina, asignndole las respectivas direcciones
de memoria a cada una de las instrucciones del programa.

4. Analizar el programa y colocando en el banco de interruptores el valor equivalente a


99H, verificar el resultado mostrado en el banco de leds que se espera obtener al correr
el programa.
Al ingresar el dato 99H en el puerto ABH est es almacenado en el acumulador para
luego ser comparado con el dato inmediato 99H si este es igual entonces el acumulador
estar en 0 luego pasara por la funcin JNZ el cual verificara el valor de bit 0 si el
contenido del acumulador es 0 entonces se almacenara en el registro A o acumulador el
dato EEH, l que ser mostrado en el puerto CDH pasando luego a un estado HLT o
pausa, como se muestra en la siguiente figura:

5. Cargue el programa en el simulador y verifique sus respuestas.


Al momento de comparar el dato 99H (10011001) del acumulador con el dato inmediato
99H de la funcin CPI se produce el almacenamiento de 0 bits en el acumulador
produciendo una igualdad. Pasando a la funcin JNZ, s verifica el valor de bit 0, si el
contenido del acumulador es 0 se produce el ciclo normal, cargando el dato EEH en el
registro A para que luego se muestre en el puerto CDH dando paso a un estado de pausa
o HLT en el microprocesador.

CONCLUSIONES
El presente laboratorio se ha concluido satisfactoriamente ya que hemos podido simular
diferentes programas, en el software de simulacin del microprocesador 8085, adems
que se han aplicado los pasos para la programacin en lenguaje ensamblador de
pequeos programas en lnea cumpliendo con todos ellos y verificando su correcto
funcionamiento

FE DE ERRATAS
Se recomienda seguir estrictamente los pasos para la programacin, y de tener paciencia
para que los programas se concluyan con xito.

Anda mungkin juga menyukai