El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0...

27
El microprocesador Z80 El microprocesador Z80 características

Transcript of El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0...

Page 1: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

El microprocesador Z80El microprocesador Z80

características

Page 2: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

2

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7

30 31 32 33 34 35 36 37 38 39 40 1 2 3 4 5 14 15 12 8 7 9 10 13

27 19 20 21 22 28 18 24 18 17 26 25 23 6 12 29

M1 MEQ IORQ RD WR RFSH HALT WAIT INT NMI RESET BUSRQ BUSAK RELOJ +5V TIERRA

Bus de direcciones Bus de datos

Esquema general Z80

Page 3: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Esquema del 8088GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

Vcc AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RDTEST READY RESETMN/ MX=1 MN/MX= 0

31 HOLD RQ/GT0

30HLDA RQ/GTI

29 WR LOCK

28 M/IO S2

27DT/R S1

26DEN S0

25ALE QS0

24 INTA QS1

Page 4: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Imagenes del Z80

Page 5: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Características

• Bus de datos de 8 bits

• Bus de direcciones de 16 bits

• En total 18 registros de 8 bits y 4 de 16 bits

• Cuenta con 12 registros de 8 bits que se pueden usar en pares para formar 6 de 16 bits

• Reloj de 4 MHz

• Compatible en software con el 8080A

Page 6: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Origenes• El Z80 es una versión apreciablemente mejorada del

INTEL 8080.• Es un microprocesador más rápido y sencillo en el

desarrollo de sistemas.• Solo usa una fuente de alimentación de +5 Volts• Contiene íntegramente todo el conjunto de instrucciones

del 8080.• El Z80 una expansión adicional de 80 instrucciones de ahí

se deriva su nombre, su repertorio suma un total de 156 instrucciones

Page 7: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Registros del Z80

A

B C

D

F

E

H L

B´ C´

D´ E´

H´ L´

REGISTROS

DE USO

GENERAL

CONJUNTO REGISTROS PRINCIPALES CONJUNTO REGISTROS ALTERNATIVOS

A : Registro Acumulador (almacena resultado de operaciones). Registro principalA´ : Registro Acumulador alterno.

F´ : Registro de estado (banderas) alterno.

F : Registro de estado (almacena bits de estado o banderas). Aquí se encuentranbits como el acarreo (CARRY), desborde (OVERFLOW), etc.

Page 8: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

E/S en el Z80

• El sistema cuenta con tres localidades de E/S de uso general:– localidad C016 dispositvo E/S número 0

– localidad C116 dispositvo E/S número 1

– localidad C316 control dispositivos C016 y C11

Valor dispositivo C316 C016 C116

8016 Salida Salida

8216 Entrada Salida

9016 Salida Entrada

9216 Entradada Entrada

Page 9: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Direccionamiento• La memoria esta organizada en palabras de 8

bits (1 byte).

• Cada palabra puede ser referenciada por una dirección binaria de 16 bits

• La capacidad de direccionamiento directo total es de 65,536 bytes (64 K) de memoria.

• La memoria puede ser cualquier combinación de ROM, EPROM o PROM

Page 10: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Funciones Z801. Recibir datos desde la memoria.

2. Enviar datos hacia la memoria.

3. Incrementar o decrementar en uno su contenido.

4. Formar una dirección con el contenido de un par de registros.

5. Transferir datos entre los registros.

6. Obtener un operando durante las funciones de la ALU

Page 11: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Conjunto de instrucciones (1)

Mnemónico Acción

ADC suma con carryADD sumaAND and logicoBIT prueba de bitCALL llamada a una subrutinaCCF bandera de complementaria de carryCP comparaciónCPD comparación y decrementoCPDR comparación, decremento y repeticiónCPI comparación e incrementoCPIR comparación incremento y repeticiónCPL complement accumulatorDAA decimal adjust accumulatorDEC decrementoDI deshabilitar instruccionesDJNZ dec jump non-zeroEI habilitar interrupciones

Page 12: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Conjunto de instrucciones (2)

Mnemónico Acción

EX intercambio de un par de registrosEXX intercambio de registros alternosHALT halt, esperar por interrupción o resetIM interrupción modo 0 1 2IN entrada del puertoINC incrementoIND input, dec HL, dec BINDR input, dec HL, dec B, repetir si (B >0)INI input, inc HL, dec BINIR input, inc HL, dec B, repetir si (B>0)JP saltoJR salto relativoLD cargar datos a/desde los registrosLDD cargar, decrementarLDDR cargar, decrementar y repetirLDI cargar e incrementarLDIR carfar, incrementar y repetir

Page 13: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Conjunto de instrucciones (3)Mnemónico Acción

NEG negación acumulador concomplementos a 2sNOP no operaciónOR --OTDR output, dec HL, dec B, repetir si (B>0)OTIR output, inc HL, dec B, repetir si (B>0)OUT salida a un puertoOUTD output, inc HL, dec B,POP pop del stackPUSH push en el stackRES resetear el bitRET regresar de una subrutinaRETI regresar de una interrupciónRETN regresar de una interrupción no-enmascaradaRL rotación izquierda de un registroRLA rotación izquierda del acumuladorRLC rotación izquierda a través del carryRLCA rotación izquierda a través del carry acumulador

Page 14: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Conjunto de instrucciones (4)

Mnemónico Acción

RLD rotación izquierda del dígitoRR rotación derecha de un registroRRA rotación derecha del acumuladorRRC rotación derecha registro circularRRCA rotación derecha del acumulador circularRRD rotación derecha del dígitoRST reinicializarSBC subtraer con carrySCF activar la bandera de carrySET asignar un valor al bitSLA corrimiento izquierdo del registro aritméticoSRA corrimiento derecho del registro aritméticoSRK corrimiento derecho del registro lógicoSUB substracciónXOR or exclusivo

Page 15: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Instrucciones de uno y dos bytes

i7 i6 i5 i4 i3 i2 i1 i0 código operaciónbyte 1

• Instrucciones de un byte

• Instrucciones de dos bytes

i7 i6 i5 i4 i3 i2 i1 i0 código operaciónbyte 1

d7 d6 d5 d4 d3 d2 d1 d0byte 2 datos o direcciones

Page 16: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Instrucciones de tres y cuatro bytes

• Instrucciones de tres bytes

• Instrucciones de cuatro bytes

i7 i6 i5 i4 i3 i2 i1 i0 código operaciónbyte 1

d7 d6 d5 d4 d3 d2 d1 d0byte 2 datos o direccionesd7 d6 d5 d4 d3 d2 d1 d0byte 3

i7 i6 i5 i4 i3 i2 i1 i0 código operación

byte 1

byte 2

d7 d6 d5 d4 d3 d2 d1 d0

byte 4 d7 d6 d5 d4 d3 d2 d1 d0

byte 3

i7 i6 i5 i4 i3 i2 i1 i0

datos o direcciones

Page 17: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Ejemplo: variantes instrucciones LD y OUT

• LD A, n– el entero de 8 bits n se carga en el registro del

acumulador A

• OUT (n), A– el byte contenido en el acumulador se coloca en el bus

de datos y se escribe en el dispositivo periférico seleccionado en el operando n

0 0 1 1 1 1 1 0

n n n n n n n n

1 1 0 1 0 0 1 1

n n n n n n n n

( 1101 00112 =D316 )

( 0011 11102 = 3E16 )

n B

A [n]

Page 18: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Ejemplo programalenguaje ensamblador

LD A, #8016 Almacena en el registro Acumulador el valor 8016

OUT #C316, A Envía el valor del Acumulador al Dispositio C316

LD A, #dato16 Almacena en el Acumulador el valor dato16

OUT #C016, A Envía el valor del Acumulador al Dispositio C016

OUT #C116, A Envía el valor del Acumulador al Dispositio C116

Page 19: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Programa en lenguaje máquina

Localidad (Dirección)

de Memoria

MEMORIA

180016 3E16

180116 8016

180216 D316

180316 C316

180416 3E16

180516 dato16

180616 D316

180716 C016

180816 D316

180916 C116

Page 20: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Ejecutando el programa

tiempo

MEMRQ'

IORQ'

RD'

WR'

Bus de Direcciones

Bus de Datos

MAR

MBR

PC

IR

1800

3E

1800

1800

3E

3E

1801

80

1800

1801

80

3E

1802

1801

80

3E

Fetch Fetch Ejecución

1802

D3

1802

1802

D3

D3

Fetch

1803

C3

1802

1803

C3

D3

Fetch

Page 21: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Ejecutando el programa

tiempo

MEMRQ'

IORQ'

RD'

WR'

Bus de Direcciones

Bus de Datos

MAR

MBR

PC

IR

1804

80

D3

1804

80

1804

1804

3E

3E

1804

1805

dato

3E

FetchFetch Ejecución

1805

dato

1806

1805

dato

3E

1806

D3

1806

1806

C3

D3

Fetch

C3

3E

Ejecución

D3

Page 22: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Ejecutando el programa

tiempo

MEMRQ'

IORQ'

RD'

WR'

Bus de Direcciones

Bus de Datos

MAR

MBR

PC

IR

1807

1806

1807

C0

D3

1808

1808

D3

D3

FetchFetch

1808

D33E

1808

dato

D3

dato

C0

C0

Ejecución

1809

1808

1809

C1

D3

Fetch

C1

180A

dato

D3

dato

C1

C1

Ejecución

Page 23: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Otras instrucciones

• LD B, n– el entero de 8 bits n se carga en el registro del

acumulador A

• ADD A, B– el contenido del registro B se añade al contenido del

acumulador y el resultado se alamcena en el acumulador

( 1000 00002 = 8016 )

n B

0 0 0 0 0 1 1 0

n n n n n n n n ( 0000 01102 = 0616 )

B A A

1 0 0 0 0 0 0 0

Page 24: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Otras instrucciones ...

• LD (nn), A– el contenido del acumulador se carga en la posición de

memoria especificada por los operandos nn – el primer operando n es el byte de irden bajo de una

dirección de memoria de 2 bytes

0 0 1 1 0 0 1 0

n n n n n n n n

n n n n n n n n

( 0011 10102 = 3216 )

[nn] A

dirección enlittle endian

Page 25: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Otras instrucciones ...

• LD A, (nn)– el contenido de la posición de memoria especificada

por los operandos nn se cargan en el acumulador– el primer operando n es el byte de irden bajo de una

dirección de memoria de 2 bytes

0 0 1 1 1 0 1 0

n n n n n n n n

n n n n n n n n

( 0011 10102 = 3A16 )

[nn] A

dirección enlittle endian

Page 26: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Programa que suma dos números

LD A, #dato116 Almacena en el registro Acumulador el valor dato116

LD B, #dato216 Almacena en el registro B el valor dato216

ADD A, B Suma dato116 (A) mas dato216 (B) y lo deja en A

LD #mem16, A Almacena el valor del acumulador en la celda mem16

LD A, #8016 Almacena el valor 8016 en el Acumulador

OUT #C316, A Envía el valor del Acumulador al dispositivo C316

LD A, #mem16 Almacena en el Acumulador el valor de la celda mem16

OUT #C016, A Envía el valor del Acumulador al dispositivo C016

Page 27: El microprocesador Z80 características. 2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 30 31 32 33 34 35 36 37 38 39.

Versión lenguaje máquinaLocalidad (Dirección)

de Memoria

MEMORIA

180016 3E16

180116 dato116

180216 0616

180316 dato216

180416 8016

180516 3216

180616 0016180716 1916180816 3E16

180916 8016

180A16 D316

180B16 C316

180C16 3A16

180D16 0016

180E16 1916

180F16 D316

181016 C016