Ir a la página principal del Dto. de Electricidad del IES "Río Cuerpo de Hombre"Ir a la portada de la revistaZona de descargaElectroEnlacesLos que han colaborado en este WEBContacte con nosotrosIr al WEB del IES "Río Cuerpo de Hombre" Ir a Portada REEA ElectroEnlaces

.


Indice:
  1. Generalidades del 8085
    1. Hardware del 8085
    2. Instrucciones del 8085
      1. Instrucciones de transferencia de datos
      2. Instrucciones aritméticas
      3. Instrucciones lógicas
      4. Instrucciones de desplazamiento
      5. Instrucciones de salto
      6. Instrucciones de subrutinas
      7. Instrucciones de pila
      8. Instrucciones de control
  2. Manejo del simulador 8085
    1. PRÁCTICA 10
  3. Manejo del micro 8085 desde el PC
    1. Introducción
    2. Comandos
    3. Subrutinas
    4. direcciones de nuestros programas
  4. Manejo del micro 8085 desde la consola
    1. Introducción
    2. Comandos
    3. Interrupciones
    4. Grabar y leer desde una cinta cassette
  5. Prácticas
    1. Manejo del entrenador
    2. PRÁCTICA 11
    3. Semáforo
    4. PRÁCTICA 12


 

1.- Generalidades del 8085

1.1.- Hardware del 8085

Dentro del 8085 tenemos los siguientes registros:

Todos estan conectados entre si, y el 8085 tiene exteriormente 3 buses como todos los microprocesadores (pero con tamaños diferentes):
 
  Nombre bits comentarios
D.B.
Bus de datos 
(data bus)
8
conectado al R.I. desde este registro la U.C. lee las instrucciones y las procesa.
A.B.
Bus de direcciones 
(Adrress Bus)
16
conectado al PC indica la dirección de memoria del programa que se esta leyendo.
C.B.
Bus de Control 
10
Conectado a la U.C. para controlar el sistema

Hay que señalar que el 8085 tiene el bus de direcciones multiplexado, es decir, tiene 8 pines AD0 .... AD7 que son bus de datos y bus de direcciones (la parte baja), para diferenciarlo tiene un pin llamadoALE que cuando es 0 las lineas AD0...AD7 es bus de datos D0...D7, y cuando ALE=1, las lineas AD0...AD7 es parte baja del bus de direcciones A0...A7.

El bus de control además del ALE, tiene los siguientes pines:

En la pag 280 y 281 explica el funcionamiento de cada uno de los registros, unidades etc.., señala brevemente el significado de cada uno de ellos:
 
  Descripción
A
 
 

 

B, C
D, E
H, L

 
 
 
 
 

 

Flag
S
Z
AC
P
CY
 
ALU
 
 
 
 
 

 

U.C.
 
 
 
 

 

R.I.  
P.C.  
S.P.  

1.2.- Instrucciones del 8085

Nomenclatura:
r = un registro de 1 byte , puede ser cualquiera de estos : A, B,C,D,E,H,L.
(rs =registro origen de datos, source, rd = registro destino de los datos)
[1000] = el dato almacenado en la dirección 1000H
[HL] = el dato almacenado en la dirección contenida en el registro HL
M = " " "
dato = un número de 1 byte, por ejemplo 4AH, suelen ser los datos.
addr = un número de 2 bytes, por ejemplo 10B2H, suelen ser las direcciones
H=hexadecimal, B=Binario, D = Decimal

1.2.1.- Instrucciones de transferencia de datos
 
MOV rd,rs
MOV rd,M
MOV M,rs
MVI rd,dato
LDA addr
 

STA addr

LDAX B
STAX B
LDAX D
STAX D 
LHLD addr
 

SHLD addr

XCHG LXI B,addr
LXI D,addr
LXI H,addr

ejemplo de utilización :

1.2.2.- Instrucciones aritméticas
 
ADD rs

ADD M

ADI dato

SUB rs

SUB M

SBI dato

ADC rs

ADC M

ACI dato

SBB rs

SBB M

SBI dato

INR rs

INR M

INX B

INX D

INX H

DCR rs

DCR M

DCX B

DCX D

DCX H

DAD B

DAD D

DAA

STC

CMC

1.2.3.- Instrucciones lógicas
 
ANA rs

ANA M

ANI dato

XRA rs

XRA M

XRA dato

ORA rs

ORA M

ORI dato

CMA

CMP rs

CMP M

CPI dato

alteran solo el flag : Z, S, CY, AC ...

1.2.4 Instrucciones de desplazamiento
 
RLC

RRC

RAL

RAR


 

1.2.5 Instrucciones de salto
 
JMP addr

Jcondicion addr

PCHL

RSTn

condición puede ser alguna de las siguientes:

Z
NZ
P
M
C
NC
PO
PE

1.2.6 Instrucciones para las subrutinas
 
CALL addr

Ccondición

RET

Rcondición

1.2.7.- Pila
 
PUSH B

POP B

PUSH D

POP D

XTHL

SPHL

1.2.8.-Instrucciones de control
 
HLT

NOP

IN puerto

OUT puerto

SIM

EI

 

2.- Manejo del simulador 8085
 

a).- Vamos a realizar un pequeño ejemplo de funcionamiento. Vamos a mover el contenido de la dirección 2000H al acumulador, y almacenarlo en la 2001H, y el contenido de la dirección 2002H moverlo al registro B, y almacenarlo en la 2003H.Escribir el siguiente programa en un editor, por ejemplo el EDIT de MS-DOS, guardarlo como PRUEBA.ASM el archivo fuente debe de tener la extensión *.ASM
    (vamos al direcctorio 8085, desde el raiz : CD 8085, y EDIT PRUEBA.ASM)

    todo lo que se escribe después de ; no se ensambla, así que se puede utilizar como comentarios.
    ORG = organizar las siguientes líneas a partir de la dirección en este caso 2000H
    DB=se utiliza para poner datos, en este caso, pone 05 en 2000, A4 en 2001 etc...
    aquí DATO1 es una etiqueta, y toma el valor de la dirección donde esta escrita, en este caso DATO1 es igual a 2000 ¿y DATO2? hay que poner : y escribirlas en la primera columna, el resto del programa a partir de la columna 10.
    también puede haberse escrito:
    DATO1 EQU 2000H
    EQU= equivale a ...
    el programa se ha escrito a partir de la dirección 1000H, carga el acumulador (loadA) y lo almacena (storeA), podría haberse escrito STA 2000H y LDA 2001H, para el registro B hay que utilizar el registro M, antes de utilizar el registro M hay que cargar HL la dirección que queremos, LXI H,DATO3 = LXI H,2002H, lo mueve a B, y para moverlo al 2003 podría haberse escrito LXI H,2003H o como en este caso, incrementando lo que tenía, movemos de B a M, y para finalizar END.

    b).- después de guardarlo ensamblarlo con la instrucción: ASM8085 PRUEBA.CCC esto crea 3 ficheros, si salen errores hay que corregirlo en el prueba.asm:

    PRUEBA.ERR = listado de errores de 1ª pasada.
    (A=argumento erróneo, D=etiqueta no existe, L=etiqueta erronea, U=símbolo indefenido, S= error sintaxis)
    PRUEBA.LST = listado del programa, aquí salen los errores de 2ª pasada.
    PRUEBA.OBJ = listado en lenguaje máquina.

    c).- simularlo con el programa SIM8085, una vez dentro pulsar F4 y cargar el PRUEBA.OBJ, utilizar los siguientes comandos:

    V=ver memoria, en este caso nos interesa ver lo que hay en la 2000H y siguientes.
    M=modificar memoria, si queremos alterar los nº que hemos metido.
    R=modificar los registros, en este caso pondremos el contador del programa PC en la dirección de comienzo de nuestro programa: 1000H
    T=trazar o ejecutar paso a paso, ir pulsando y observar lo que ocurre en cada instrucción.
    Q=salir otras utilidades:
    F1 visualiza una ayuda
    C=ver el código
    E=ejecutar entre dos direcciones, ESC para salir, I para interrupción 7.5


©  Autor: J.J. Quintana Péiro

Esta página fue actualizada el 22-10-2006