Sie sind auf Seite 1von 5

Lista de Instrucciones

Instruccin: ACALL
(PC) <= (PC) + 2
(SP) <= (SP) + 1
((SP)) <= (PC7-0)
(SP)<= (SP) + 1
((SP)) <= (PC15-8)
(PC10-0) <= dir_11
Descripcin: ACALL realiza una llamada incondicional a la subrutina
situada en la direccin indicada. ACALL incrementa el PC (ProgramCounter)
dos veces para obtener la direccin de la siguiente instruccin, luego guarda
dicha direccin en la pila (el byte de menor peso en primer lugar). En
consecuencia el apuntador de pila (SP o Stack Pointer) incrementa su valor en
2. Posteriormente el control del programa se transfiere a la direccin indicada
en la instruccin.

Instruccin: ADD
(A)<= (A) + operando
Descripcin: ADD suma el valor del operando al valor del Acumulador, y
deja el resultado en el Acumulador. El valor del operando no resulta afectado.
El bit de acarreo (C) se pone a uno si hay llevada desde el bit 7. Es decir, si el
resultado de la suma pasa de 255. En caso contrario el bit C se pone a cero.
Instruccin: ADDC
(A)<= (A) + (C) + operando
Descripcin: ADDC suma el valor del operando, el bit de acarreo C, y el
valor del Acumulador, y deja el resultado en el Acumulador. El valor del
operando no resulta afectado.
El bit de acarreo (C) se pone a uno si hay llevada desde el bit 7. Es decir, si el
resultado de la suma pasa de 255. En caso contrario el bit C se pone a cero.

Instruccin: AJMP

(PC)<= (PC) + 2
(PC10-0)<= dir_11
Descripcin: AJMP realiza una salto a la direccin indicada de la memoria
de cdigo. La direccin de salto, o nuevo valor para el PC (ProgramCounter)
se obtiene uniendo a los 5 bits de mayor peso del PC ( incrementado dos
veces), los bits 7-5 del cdigo de operacin y el segundo byte de la
instruccin.

Instruccin: ANL
(operando1)<= (operando1) AND (operando2)
Descripcin: ANL realiza la operacin "AND" bit a bit, entre operando1 y
operando2, dejando el resultado en operando1. El valor del operando2 no
resulta afectado.

Instruccin: ANL C
(C)<= (C) AND (bit)
Descripcin: ANL realiza la operacin "AND", entre el bit C y operando2,
dejando el resultado en C. El valor del operando2 no resulta afectado. Si el bit
va precedido por un slash "/", la operacin AND se realiza entre el bit de
acarreo y el complemento del bit, sin embargo el valor del bit no se ve
afectado.
Instruccin: CJNE
(PC)<= (PC) + 3
IF operando1 <> operando2
THEN
(PC)<= (PC) + offset
IF operando1 < operando2
THEN
(C)<= 1
ELSE
(C)<= 0
Descripcin: CJNE compara la magnitud de operando1 y operando2 y salta si
sus valores no son iguales. Si ambos operandos son iguales, el programa
contina con la siguiente instruccin a CJNE. La direccin a donde saltar se

obtiene sumando el offset (tercer byte de la instruccin), al PC


(ProgramCounter) despus de que ste se haya incrementado hasta el
comienzo de la siguiente instruccin.
Instruccin: CLR
(A) <= 0
Descripcin: CLR A pone a cero el acumulador.
Instruccin: CLR
bit<= 0
Descripcin: CLR pone a cero el bit indicado. CLR puede operar con el bit C
o con cualquier bit direccionable de forma directa.

Instruccin: CPL
(A) <= NOT (A)
Descripcin: CPL A complementa el contenido del acumulador. Cada bit del
acumulador que est a "1" se pondr a "0" y al revs.

Instruccin: CPL
bit<= NOT bit
Descripcin: CPL complementa el bit indicado. CPL puede operar con el bit
C o con cualquier bit direccionable de forma directa.

Instruccin: DA

IF [[(A3-0) > 9] OR [(AC) = 1]]


THEN(A3-0)<= (A3-0) + 6
AND
IF [[(A7-4) > 9] OR [(C) = 1]]
THEN (A7-4)<= (A7-4) + 6
Descripcin: Despus de una suma de dos nmeros BCD (BinaryCoded
Decimal), la instruccin DA A ajusta el contenido del acumulador a un
nmero BCD.
Su funcionamiento se realiza en dos fases:
En la primera, si el bit AC vale 1, o si el nibble bajo del acumulador es mayor
que 9, se aade 06H al acumulador. Esta operacin puede poner a 1 el C, pero
no puede ponerlo a 0.

Instruccin: DEC
operando<= operando - 1
Descripcin: DEC decrementa en una unidad el valor del operando. Si el
valor a decrementar es 0, entonces el resultado ser 0xFF, aunque el bit C no
resulta afectado por ello.

Instruccin: DIV
(A) <= Cociente de la divisin entera (A)/(B)
(B) <= Resto de la divisin entera (A)/(B)
Descripcin: Divide (divisin entera) el contenido del acumulador entre el
contenido del registro B. El cociente se deja en el acumulador y el resto se
deja en el registro B. Si inicialmente el registro B tiene valor 0, tras la divisin
el contenido del acumulador y del registro B es indeterminado, y se activa el
flag OV.

Instruccin: DJNZ

(PC)<= (PC) + 2 ( 3)
operando <= operando -1
IF operando <> 0
THEN
(PC)<= (PC) + offset
Descripcin: DJNZdecrementa el operando y si el nuevo valor es distinto de
cero, se produce el salto. Si el valor del operando es cero, el programa
contina con la siguiente instruccin a DJNZ. La direccin a donde saltar se
obtiene sumando el offset (ltimo byte de la instruccin), al PC
(ProgramCounter) despus de que ste se haya incrementado hasta el
comienzo de la siguiente instruccin. El offset representa una cantidad entera
con signo, y permite saltos de hasta 127 posiciones hacia adelante, y hasta 128
posiciones hacia atrs, sobre la direccin de comienzo de la siguiente
instruccin.

Instruccin: INC
operando<= operando + 1
Descripcin: INC incrementa en una unidad el valor del operando. Si el valor
a incrementar es 0FFH, entonces el resultado ser 0, aunque el bit C no resulta
afectado por ello.
Nota: Cuando se utiliza esta instruccin para modificar un puerto de salida, el
valor inicial del dato del puerto se lee del latch de salida, no de las patillas del
puerto.
Instruccin: JB
(PC)<= (PC) + 3
IF (bit) = 1
THEN
(PC)<= (PC) + offset
Descripcin: Si el bit implicado es igual a 1 se salta a la direccin indicada.
En caso contrario se procesa la siguiente instruccin. La direccin a donde
saltar se obtiene sumando el offset (ltimo byte de la instruccin), al PC
(ProgramCounter) despus de que ste se haya incrementado hasta el
comienzo de la siguiente instruccin.

Das könnte Ihnen auch gefallen