Académique Documents
Professionnel Documents
Culture Documents
Instrucciones de 16-bits
Condiciones Inciales
D 85 6F E 2050 3F ADC A,r Suma el operando, carry y el
H 00 00 L 2051 42
ADC A, 8-bits acumulador. El resultado es
D 85 6F E 2050 3F ADC A, (HL) almacenado en el acumulador.
LD HL,(2050H)
H 42 3F L 2051 42
ADC A, (IX+d) A = OPERANDO + CY + A
D 42 3F E 2050 3F SBC A,r Resta el contenido del operando y
EX DE,HL
H 85 6F L 2051 42
SBC A, 8-bits el borrow del contenido del
acumulador y el resultado es
D 42 3F E 2050 6F SBC A, (HL)
LD (2050H),HL
H 85 6F L 2051 85
puesto en el acumulador
SBC A, (IX+d) A = A OPERANDO CY
1
08/11/2011
ADD HL,HL para reflejar el resultado de la SLA H ADD HL,HL 1231 + 1231 = 2462 HL
SLA H
suma de 16-bits. Ninguna otra SLA L
ADD HL,HL 2462 + 2462 = 48C4 HL
ADD HL,HL 48C4 + 48C4 = 9188 HL
bandera es alterada SLA L
SLA L ADD HL,HL 9188 + 9188 = 2310 HL
ADD HL,SP Esta instruccin usa HL como el SLA L
acumulador de 16-bits
2
08/11/2011
Subrutina MLTPLY
MLTPLY: ; Esta subrutina multiplica dos nmeros sin signo Programa Principal
; Entrada: Operando 1 en E y Operando 2 en D
; Salida: Resultado en HL
; Registros Modificados: B, DE, HL y el acumulador
LD A, D ; Copia el operando 2 en A
LD D,0 ; Limpia D para guardar resultados parciales
MAIN: LD SP, STACK
LD HL,0 ; Limpia HL
LD HL, (BUF1) ; Obten los operandos
LD B,08H ; Inicializa el contador a 8
NEXT: EX DE, HL ; Copialos en DE
NEXT: RRA ; Checa si el bit del operando 2 es 1
CALL MLTPLY ; Multiplica los numeros
JR NC, NOADD ; Si no evita sumar el operando 1
LD (OUTBUF),HL ; Almacena el resultado en OUTBUF
ADD HL,DE ; Si el bit es 1, entonces suma el operando 1
HALT
NOADD: EX DE,HL ; Shift a la izquierda un bit
ADD HL, HL
EX DE,HL
DEC B ; Decrementa el contador
JR NZ, NEXT ; Regresa para obtener el siguiente bit, sino
RET ; termina