Instrucciones.doc

7
Lista de Instrucciones Instrucc ión: ACALL (PC) <= (PC) + 2 (SP) <= (SP) + 1 ((SP)) <= (PC7-0) (SP)<= (SP) + 1 ((SP)) <= (PC15-8) (PC10-0) <= dir_11 Descripción: ACALL realiza una llamada incondicional a la subrutina situada en la dirección indicada. ACALL incrementa el PC (ProgramCounter) dos veces para obtener la dirección de la siguiente instrucción, luego guarda dicha dirección 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 dirección indicada en la instrucción. Instrucc ión: ADD (A)<= (A) + operando Descripción: 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. Instrucc ADDC

Transcript of Instrucciones.doc

Page 1: Instrucciones.doc

Lista de Instrucciones

Instrucción: ACALL

(PC) <= (PC) + 2 (SP) <= (SP) + 1 ((SP)) <= (PC7-0) (SP)<= (SP) + 1 ((SP)) <= (PC15-8) (PC10-0) <= dir_11

Descripción: ACALL realiza una llamada incondicional a la subrutina situada en la dirección indicada. ACALL incrementa el PC (ProgramCounter) dos veces para obtener la dirección de la siguiente instrucción, luego guarda dicha dirección 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 dirección indicada en la instrucción.

Instrucción: ADD

(A)<= (A) + operando

Descripción: 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.

Instrucción: ADDC

(A)<= (A) + (C) + operando

Descripción: 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.

Instrucción: AJMP

Page 2: Instrucciones.doc

(PC)<= (PC) + 2 (PC10-0)<= dir_11

Descripción: AJMP realiza una salto a la dirección indicada de la memoria de código. La dirección 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 código de operación y el segundo byte de la instrucción.

Instrucción: ANL

(operando1)<= (operando1) AND (operando2)

Descripción: ANL realiza la operación "AND" bit a bit, entre operando1 y operando2, dejando el resultado en operando1. El valor del operando2 no resulta afectado.

Instrucción: ANL C

(C)<= (C) AND (bit)

Descripción: ANL realiza la operación "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 operación AND se realiza entre el bit de acarreo y el complemento del bit, sin embargo el valor del bit no se ve afectado.

Instrucción: CJNE

(PC)<= (PC) + 3 IF operando1 <> operando2 THEN (PC)<= (PC) + offset IF operando1 < operando2 THEN (C)<= 1 ELSE (C)<= 0

Descripción: CJNE compara la magnitud de operando1 y operando2 y salta si sus valores no son iguales. Si ambos operandos son iguales, el programa continúa con la siguiente instrucción a CJNE. La dirección a donde saltar se obtiene sumando el offset (tercer byte de la instrucción), al PC (ProgramCounter) después de que éste se haya incrementado hasta el comienzo de la siguiente instrucción.

Page 3: Instrucciones.doc

Instrucción: CLR

(A) <=  0

Descripción: CLR A pone a cero el acumulador. 

Instrucción: CLR

bit<=  0

Descripción: CLR pone a cero el bit indicado. CLR puede operar con el bit C o con cualquier bit direccionable de forma directa.

 

Instrucción: CPL

(A) <=  NOT (A)

Descripción: CPL A complementa el contenido del acumulador. Cada bit del acumulador que esté a "1" se pondrá a "0" y al revés.

Instrucción: CPL

bit<=  NOT bit

Descripción: CPL complementa el bit indicado. CPL puede operar con el bit C o con cualquier bit direccionable de forma directa.

 

Instrucción: DA

IF [[(A3-0) > 9] OR [(AC) = 1]] THEN(A3-0)<= (A3-0) + 6 AND IF [[(A7-4) > 9] OR [(C) = 1]]

Page 4: Instrucciones.doc

THEN (A7-4)<= (A7-4) + 6

Descripción: Después de una suma de dos números BCD (BinaryCoded Decimal), la instrucción DA A ajusta el contenido del acumulador a un número 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 añade 06H al acumulador. Esta operación puede poner a 1 el C, pero no puede ponerlo a 0.

Instrucción: DEC

operando<=  operando - 1

Descripción: 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.

Instrucción: DIV

(A) <=  Cociente de la división entera (A)/(B) (B) <=  Resto de la división entera (A)/(B)

Descripción: Divide (división 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 división el contenido del acumulador y del registro B es indeterminado, y se activa el flag OV.

 

Instrucción: DJNZ

(PC)<= (PC) + 2 (ó 3) operando <=  operando -1 IF operando <> 0

Page 5: Instrucciones.doc

THEN (PC)<= (PC) + offset

Descripción: 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 continúa con la siguiente instrucción a DJNZ. La dirección a donde saltar se obtiene sumando el offset (último byte de la instrucción), al PC (ProgramCounter) después de que éste se haya incrementado hasta el comienzo de la siguiente instrucción. El offset representa una cantidad entera con signo, y permite saltos de hasta 127 posiciones hacia adelante, y hasta 128 posiciones hacia atrás, sobre la dirección de comienzo de la siguiente instrucción.

Instrucción: INC

operando<=  operando + 1

Descripción: 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 instrucción 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.

Instrucción: JB

(PC)<= (PC) + 3 IF (bit) = 1 THEN (PC)<= (PC) + offset

Descripción: Si el bit implicado es igual a 1 se salta a la dirección indicada. En caso contrario se procesa la siguiente instrucción. La dirección a donde saltar se obtiene sumando el offset (último byte de la instrucción), al PC (ProgramCounter) después de que éste se haya incrementado hasta el comienzo de la siguiente instrucción.