Академический Документы
Профессиональный Документы
Культура Документы
Ejercicio
2
UNIDAD 5 3A PARTE
PROGRAMANDO EN EL
ENSAMBLADOR DEL Z80
Microprocesadores
Otoo 2010
Solucin
Ejercicio
START:
IN A,(F1H)
AND 7FH
LD B,A
IN A,(F2H)
AND B
OUT (F3H),A
JP START
HALT
Solucin
D7
D6
D5
D4
D3
D2
D1
D0
Acumulador
AND FCH
Resultado
Comparaciones
D6
D5
D4
D3
D2
D1
D0
Acumulador
OR 03H
Resultado
D7
D6
D5
D4
D3
D2
D1
D0
Acumulador
XOR 03H
Resultado
D1
D0
DESCRIPCION
CP
CP
8-bits
CP
(HL)
CP
(IX+d)
Condicin
Banderas
Carry
Cero
A < operando
A = operando
A > operando
16/11/2011
Ejemplo
Ejercicio
LD HL, 1850H
LD A,80H
CP (HL)
JP Z,CHECK
JP C,OVRLOD
Solucin
Rotaciones
10
START:
NEXT:
SKIP:
XOR A
LD B,0AH
; Inicializa el contador B a 10
LD HL,INBUF
CP (HL)
JP NC, SKIP
LD A, (HL)
; Actualiza el mximo
INC HL
DEC B
; Decrementa el contador
JP NZ,NEXT
LD (OUTBUF),A
; Guarda el resultado
8-bits
RLC
9-bits
RL
8-bits
RRC
9-bits
RR
Izquierda
Rotaciones
Derecha
HALT
Rotaciones
Shift y Rotacin
11
12
OPCODE
OPERANDO
RLC
R
RL
RRC
(HL)
DESCRIPCION
Rotacin de bits a la izquierda de un registro o
memoria
Rotacin de bits a la izquierda a travs del carry
de un registro o memoria
Rotacin de bits a la derecha de un registro o
memoria
RR
SLA
(IX + d)
SRL
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
16/11/2011
Shift y Rotacin
Rotaciones y Shift
13
14
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
Ejemplo
Manipulacin de bits
15
16
A 10 A 8 2
A 8 A 2
OPCODE
LD HL,1850H
LD A,(HL)
SLA A
; Multiplica por 2
LD B,A
; Guarda el resultado en B
SLA A
; Multiplica por 4
SLA A
; Multiplica por 8
ADD A,B
LD (HL),A
; Guarda el resultado
OPERANDO
B,R
BIT
DESCRIPCION
Prueba el bit B en el registro o locacin de memoria. Si
el bit es 0, la bandera del cero (Z) es encender, de
otra manera permanecer apagada
B,(HL)
B, (IX+d)
B,R
SET
B,(HL)
B, (IX+d)
B,R
RES
HALT
B,(HL)
B, (IX+d)
Retardo
17
18
INICIO
Carga el patrn de bits
Manipulacin de bits
Decrementa el contador
No
f 2MHz; Tc 1 f 0.5s
LT 14
N10 64H 100
Contador
=0?
Si
Regresa a cambiar el
pulso
TL Tc LT N10
donde
TC es el periodo del reloj
LT son los T-states en el ciclo
N10 es la cuenta en decimal
LOOP:
Mnemnicos
T-States
LD B,64H
DEC B
JP NZ,LOOP
10
16/11/2011
Retardo
Ejemplo
19
20
Ttotal T0 TL
START:
ROTATE:
LD A,C
RLCA
LD C,A
AND 01H
OUT (PORT1),A
11
LD B,COUNT
DEC B
; Inicia el retardo
N10
DELAY:
JN NZ,DELAY
JP ROTATE
Ttotal
L
0
TC LT LT
Calculando N10
10
; Regresa a cambiar el nivel del pulso
10
Incrementando el Retardo
21
22
T-states
BC, DE, o HL
N10
250 106
47
32
6
0.5 10 14 14
Ejemplo
23
24
LD D,10
LD BC,7143
10
LOOP1:
DEC BC
NOP
LD A,C
OR B
JP NZ,LOOP1
10
DEC B
JN NZ,LOOP
10
DELAY:
LOOP:
LD BC,7143
10
DJNZ
100 ms
DELAY:
DEC B
JN NZ,LOOP
10
LD D,10
LOOP:
label
LDI
Carga e Incrementa
Copia un byte a la direccin de memoria apuntada
por HL dentro de la locacin de memoria apuntada
por DE. Los registro HL y DE son incrementados y
BC es decrementado
LDIR
16/11/2011
Ejercicio
26
Solucin
Calculando el Offset
27
28
1800
XOR A
1801
LD C,A
1802
LD HL, INBUF
; HL apunta a INBUF
1805
LD B,COUNT
; Copia 10 al contador B
LD D,(HL)
1808
ADD A,D
1809
JP NC, SKIPCY
180C
INC C
INC HL
; Incrementa HL
Program Counter
180E
DJNZ NXTBYT
Direccin destino
1810
LD HL,OUTBUF
; Apunta HL a OUTBUF
1813
LD (HL),A
1814
INC HL
; Incrementa HL
1815
LD (HL),C
; Copia C a OUTBUF + 1
1807
180D
START:
NXTBYT:
SKIPCY:
Complemento a 2s
00001001
11110111
Caractersticas Generales
30
OPCODE
OPERANDO
DESCRIPCION
CPI
Compara e Incrementa
Compara el contenido de la locacin de memoria
apuntada por HL con el contenido del acumulador.
Incrementa HL y decrementa BC
CPIR
CPD
Compara y Decrementa
Compara el contenido de la locacin de memoria
apuntada por HL con el contenido del acumulador.
Decrementa HL y BC
CPDR
16/11/2011
Ejemplo
Ejercicio
31
32
LD BC,0100H
; BC es el contador = 256
LD A,24H
CPIR
JP Z,START
JP ERROR
START:
LD HL,1850H
LD D,00H
Solucin
LD C,02
33
CHECK:
LD A,(HL)
; Obtn el dato
INC HL
CP (HL)
JP C,NEXTBYT
LD B,(HL)
LD (HL),A
DEC HL
LD (HL),B
INC HL
LD D,01
NEXTBYT: DEC C
JP NZ, CHECK
BIT 0,D
JP NZ,START
HALT