Documente Academic
Documente Profesional
Documente Cultură
Pila
2
Pila Pila
3 4
Memoria
La pila se localiza en la memoria RAM del sistema La pila puede ser
0000H
y se utiliza como almacenamiento temporal durante inicializada en Pagina 0
Rutinas de Inicio
la ejecucion del programa cualquier lugar de la
0100H
memoria de usuario. Programa
Pila Pila
5 6
1
08/11/2011
PUSH POP
9 10
Memoria Memoria
B 21 H A
PUSH BC POP AF
C 10 H F
H 22 H H 22 H
PUSH HL POP HL
L A2 H L A2 H
A B 21 H
PUSH AF POP BC
F C 10 H
Banderas 23FA SP Banderas 23FA SP
(A) 23FB (A) 23FB
A2 H 23FC A2 H 23FC
22 H 23FD 22 H 23FD
10 H 23FE 10 H 23FE
21 H 23FF 21 H 23FF
2400 SP 2400 SP
El conjunto de instrucciones del Z80 no contiene START: LD SP, STACK ; Inicializa la pila
ninguna instrucción que nos permita cambiar LD DE, 0000H ; Carga 0 para limpiar el registro de banderas
directamente el contenido de las banderas. PUSH DE ; Almacena 0 en la pila
POP AF ; Limpia el acumulador y el registro de banderas
Sin embargo podemos examinar y modificar las LD A,FFH ; Carga el máximo numero en A
banderas por medio de la pila INC A ; Incrementa A mas allá de FFH
Podemos obtener el contenido del registro de PUSH AF ; Almacena las banderas en la pila
POP DE ; Recupera las banderas
banderas por medio de almacenarlo en la pila y
LD A,E ; Copia las banderas al acumulador
posteriormente recuperarlo en un registro de AND 11000001B ; Enmascara todo el registro menos S, Z y CY
propósito general OUT (PORT1),A ; Despliega las banderas
HALT ; Fin del programa
2
08/11/2011
Intercambio Subrutinas
Subrutina Subrutina
Cuando una subrutina es llamada, el contenido del Cuando la instrucción de regreso de la subrutina es ejecutada,
program counter es guardado en el stack y la la dirección previamente guardada en el stack es recuperada.
ejecuciones transferida a la subrutina Continua con la ejecución del programa principal
2050H LD B, C SP 20 H
PC 2050H LD B, C
SP 20 H CALL DELAY
PC CALL DELAY
2051H 54 H
2051H 54 H
PC 2054H CP (HL)
PC 2054H CP (HL)
PC 2070H XOR A
PC 2070H XOR A Subrutina
Subrutina
DELAY
DELAY PC 2080H RET
RET
3
08/11/2011
Subrutina Subrutina
19 20
Subrutina Subrutina
21 22
Reinicio Reinicio
23 24
4
08/11/2011
Ejemplo Ejemplo
25 26
Amarillo
Caminar
Caminar
Secuencia de
Verde
Hex
Rojo
No
tiempo en
El flujo del trafico y de los peatones es en la misma dirección. segundos
Code
Por lo tanto, los peatones pueden cruzar solo si la luz verde
D7 D6 D5 D4 D3 D2 D1 D0
esta encendida
0
Las señales son encendidas y apagadas por los siguientes bits (15) 0 1 0 0 0 0 0 1 41H
Señales Bits Tiempo 15
Verde D0 15 segundos (5) 1 0 0 0 0 1 0 0 84H
Amarilla D2 5 segundos 20
Roja D4 20 segundos (20) 1 0 0 1 0 0 0 0 90H
Caminar D6 15 segundos 40
No Caminar D7 25 segundos
Programa Programa
Dirección Dirección
Principal Principal
XX00 2000 Dirección Subrutina 1 Dirección Subrutina 2
Dirección Subrutina
01 2090 20C2
XX50 PUSH DE
PUSH AF
09 CALL DELAY 2050 CALL 209A CALL 209A
0C 2051 90 209B C2 209B
2052 20 209C 20 209C
DELAY
12 CALL DELAY 209D 209D
15
RET RET
POP AF
1B CALL DELAY
POP DE
1E
61 RET
5
08/11/2011
Look-up Table
(DAA) Decimal Adjust Accumulator UPDATE: ; Esta subrutina actualiza la cuenta BCD y ajusta el numero BCD. Cuando el
; contador llegue a 60, reinicia el contador
Después de una operación aritmética, esta ; Entrada: Cuenta en B
; Salida: Cuenta actualizada y ajustada a BCD en B
instrucción ajusta un numero de 8 bits en el ; Registros Modificados: B y el acumulador
acumulador en un numero empaquetado BCD LD A,B ; obtiene la ultima cuenta
ADD A,01H ; Actualiza la cuenta
Esta instrucción usa las banderas H (Half Carry) y
DAA ; Ajusta el numero a BCD
CY (Carry) internamente para ajustar el resultado a LD B,A ; Guarda la cuenta en B
dos dígitos BCD CP 60 ; Es la cuenta = 60
6
08/11/2011
Búsqueda Despliega
39 40
7
08/11/2011
2. VCC (+3.3 to +5V) 8. Bit 1 (Not used in 4-bit operation) LCD Vdd llega a 4.5V
3. Contrast adjustment (VO) 9. Bit 2 (Not used in 4-bit operation) Enviar BF no puede
código de 00011XXXX probarse en este
4. Register Select (RS). RS=0: 10. Bit 3 (Not used in 4-bit operation) INICIO
punto
8
08/11/2011
Interfaz
49