Sigamos con nuestra exploración, en esta ocasión la instrucción sirve para almacenar un valor numérico de tamaño un byte en un registro de 8 bits.
Instrucción | LD r,n |
---|---|
Tamaño | 2 Bytes |
Ciclos de Máquina | 2 Ciclo M |
Ciclos de Reloj | 7 Ciclos T |
FLAGS | N/A |
Tan sencillo como esto, ejemplos pueden ser LD A,7, LD H,33 … o cualesquiera combinaciones que se nos ocurran.
Los FLAGS (CNPHZS) no se ven afectados por esta instrucción.
Tabla de OP-Codes
Para las variaciones de esta instrucciones, la tala de OP-Codes sería como sigue:
Mnemotécnico | OP-Code |
---|---|
LD A,n | 3E XX |
LD B,n | 06 XX |
LD C,n | 0E XX |
LD D,r | 16 XX |
LD E,n | 1E XX |
LD H,n | 26 XX |
LD L,n | 2E XX |
Item | Valor |
---|---|
XX | El byte a almacenar. |
XX corresponde con el valor numérico que se desea almacenar y se debe sustituir por el valor correspondiente según la la tabla de sustitución anterior.
Lógica de ejecución de LD r,n
A continuación, trato de explicar el funcionamiento de la instrucción, desgranando la lógica en términos humanos, pero sin llegar a bajar a nivel de ciclos como tal.
Orden | Operación | Notas |
---|---|---|
1 | Escribir el byte en el registro Destino. | Destino.val = n |
Ejecución detallada por ciclos M
Detallo aquí la ejecución de la instrucción, ciclo a ciclo:
Instrucción | LD r,n |
---|---|
M1 | OCF(4T) |
M2 | OD(3) |
M3 | – |
M4 | – |
M5 | – |
- OCF = Op Code Fetch
- OD = Operation Data
Bibliografía
- Z80 Users Manual JJ Carr 1980 Reston (EN, 1980) [página 250]
- Z80 Family product specifications handbook – Feb84 (EN, 1984) [pçagina 10]
- Microprocessor Technology ISBN 0835943925 (EN, 1983)
- Z80 CPU User Manual Zilog (EN, 2016)
- Z80 Instruction Set Summary version 2000c (EN, 2000)
- Curso de Código Máquina de Microhobby (ES, 1986)
- Z80 CPU Microprocessor Instant Reference Card. (EN, 1981)
- Ciclos de Máquina del Z80 (Web)