“M:M” simboliza un número de 16 bits formado por dos bytes ubicados en dos localidades contiguas de la memoria.
“←” significa “es transferido a” (en el sentido de la flecha)
PC representa al registro conocido como el Contador del Programa
CCR ó CC representan al registro de 8 bits conocido como el registro de Códigos de Condición, el registro que contiene las banderas
INSTRUCCIONES
ABX (Add Accumulator B into Index Register B)
Descripción: Suma el valor de 8 bits sin signo en el acumulador B al registro X.
Efecto: IX' ← IX + ACCB
Formas: ABX
Banderas (Códigos de Condición): No son alteradas.
Modos de domiciliamiento: Inherente
ADC (Add with Carry into Register)
Descripción: Suma los contenidos del bit de “llevar” C y el byte de la memoria M hacia un acumulador de 8 bits.
Efecto: R' ← R + M + C
Formas: ADCA, ADCB
Banderas:
H - Puesta en “1” si se genera un “llevar medio” medio,
puesta en “0” en caso contrario.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Puesta en “1” si ocurre un sobreflujo,
puesta en “0” en caso contrario.
C - Puesta en “1” si se genera un “llevar”,
puesta en “0” en caso contrario.
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
ADD (8-bits, Add Memory into Register)
Descripción: Suma el byte de la memoria a un acumulador de 8 bits.
Efecto: R' ← R + M
Formas: ADDA, ADDB
Banderas:
H - Puesta en “1” si se genera un “llevar medio” medio,
puesta en “0” en caso contrario.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Puesta en “1” si ocurre un sobreflujo,
puesta en “0” en caso contrario.
C - Puesta en “1” si se genera un “llevar”,
puesta en “0” en caso contrario.
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
ADD (16-bits, Add Memory into Register)
Descripción: Suma un valor de 16 bits de la memoria a un acumulador de 16 bits.
Efecto: R' ← R + M:M + 1
Formas: ADDD
Banderas:
H - Puesta en “1” si se genera un “llevar” medio,
puesta en “0” en caso contrario.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Puesta en “1” si ocurre un sobreflujo,
puesta en “0” en caso contrario.
C - Puesta en “1” si se genera un “llevar”,
puesta en “0” en caso contrario.
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
AND (Logical AND Memory into Register)
Descripción: Se efectúa una operación de AND lógico entre los contenidos de un acumulador y los contenidos de una localidad de la memoria M, dejando el resultado almacenado en el acumulador.
Formas: ANDA, ANDB
Banderas:
H - No es alterada.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Siempre es limpiada (puesta en “0”).
C - No es alterada.
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
AND (Logical AND Immediate Memory into Condition Code Register)
Descripción: Se efectúa una operación de AND lógico entre el registro de los Códigos de Condición (CC) y el byte inmediato especificado en la instrucción, poniendo el resultado en el registro de los Códigos de Condición.
Formas: ANDCC
Banderas: Alteradas de acuerdo a los resultados de la operación.
Modos de domiciliamiento: Inmediato
ASL (Arithmetic Shift Left)
Descripción: Efectúa un desplazamiento de todos los bits un lugar hacia la izquierda. El bit cero es cargado con un “0”. El bit 7 es desplazado hacia el bit de “llevar” C.
Formas: ASL, ASLA, ASLB
Banderas:
H - Indefinida.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Cargada con el resultado del OR exclusivo de los bits 6 y 7 del operando original.
C - Cargada con el bit 7 del operando original.
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
ASR (Arithmetic Shift Right)
Descripción: Efectúa un desplazamiento de todos los bits un lugar hacia la derecha. El bit 7 es mantenido constante. El bit cero es desplazado hacia el bit de “llevar” C.
Formas: ASR, ASRA, ASRB
Banderas:
H - Indefinida.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - No es alterada.
C - Cargada con el bit 0 del operando original.
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
BCC (Branch on Carry Clear)
Descripción: Prueba el bit de la bandera de “llevar” C (Carry) en el registro de los Códigos de Condición, ocasionando un salto si el valor es igual a cero.
Formas: BCC, LBCC
Banderas: No son alteradas.
Modos de domiciliamiento: Relativo
BCS (Branch on Carry Set)
Descripción: Prueba el bit de la bandera de “llevar” C (Carry) en el registro de los Códigos de Condición, ocasionando un salto si el valor es igual a “1”.
Formas: BCS, LBCS
Banderas: No son alteradas.
Modos de domiciliamiento: Relativo
BEQ (Branch on Equal)
Descripción: Prueba el estado del bit de la bandera Z (Cero) en el registro de los Códigos de Condición, ocasionando un salto si el valor es igual a “1”. Cuando es usada en una operación de substracción o comparación, la instrucción llevará a cabo el salto si los valores comparados, ya sea con signo o sin signo, son exactamente los mismos.
Formas: BEQ, LBEQ
Banderas: No son alteradas.
Modos de domiciliamiento: Relativo
BGE (Branch on Greater than or Equal to Zero)
Modos de domiciliamiento: Relativo
BGT (Branch on Greater)
Modos de domiciliamiento: Relativo
BHI (Branch on Higher)
Modos de domiciliamiento: Relativo
BHS (Branch if Higher or Same)
Modos de domiciliamiento: Relativo
BIT (Bit Test)
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
BLE (Branch on Less Than or Equal to Zero)
Modos de domiciliamiento: Relativo
BLO (Branch on Lower)
Modos de domiciliamiento: Relativo
BLS (Branch on Lower or Same)
Modos de domiciliamiento: Relativo
BLT (Branch on Less than Zero)
Modos de domiciliamiento: Relativo
BMI (Branch on Minus)
Modos de domiciliamiento: Relativo
BNE (Branch Not Equal)
Modos de domiciliamiento: Relativo
BPL (Branch on Plus)
Modos de domiciliamiento: Relativo
BRA (Branch Always)
Modos de domiciliamiento: Relativo
BRN (Branch Never)
Modos de domiciliamiento: Relativo
BSR (Branch to Subroutine)
Modos de domiciliamiento: Relativo
BVC (Branch on Overflow Clear)
Modos de domiciliamiento: Relativo
BVS (Branch on Overflow Set)
Modos de domiciliamiento: Relativo
CLR (Clear)
Descripción: El acumulador A o el acumulador B o la localidad de la memoria M son cargados con 00000000.
Formas: CLR
Banderas:
H - No es alterada.
N - Siempre es puesta en “0”.
Z - Siempre es puesta en “1”.
V - Siempre es puesta en “0”.
C - Siempre es puesta en “0”.
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
CMP (8-bits, Compare Memory from Register)
Descripción: Compara los contenidos de la localidad de la memoria con los contenidos del registro especificado, ajustando en forma apropiada los valores de los códigos de condición en el registro de los Códigos de Condición.
Formas: CMPA, CMPB
Banderas:
H - Indefinida.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Cargada con el resultado del OR exclusivo de los bits 6 y 7 del operando original.
C - Puesta en “1” si se genera un “pedir prestado”,
puesta en “0” en caso contrario.
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
CMP (16-bits, Compare Memory from Register)
Descripción: Compara los contenidos de 16 bits de localidades concatenadas de la memoria con los contenidos del registro especificado, ajustando en forma apropiada los valores de los códigos de condición en el registro de los Códigos de Condición.
Formas: CMPD, CMPX, CMPY, CMPU
Banderas:
H - No es alterada.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Puesta en “1” si se genera un sobreflujo,
puesta en “0” en caso contrario.
C - Puesta en “1” si se genera un “pedir prestado”,
puesta en “0” en caso contrario.
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
COM (Complement)
Descripción: Reemplaza los contenidos de la localidad de la memoria M o del acumulador A o B con su complemento lógico.
Formas: COM, COMA, COMB
Banderas:
H - No es alterada.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Siempre es puesta en “0”.
C - Siempre es puesta en “1”.
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
CWAI (Clear CC bits and Wait for Interrupt)
Modos de domiciliamiento: Inmediato
DAA (Decimal Addition Adjust)
Modos de domiciliamiento: Inherente
DEC (Decrement)
Efecto: M' ← M - 1
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
EOR (Exclusive OR)
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
EXG (Exchange Registers)
Descripción: Intercambia los datos entre dos registros designados.
Formas: EXG
Banderas: No son alteradas (a menos que uno de los registros sea el de los Códigos de Condición).
Modos de domiciliamiento: Inmediato
INC (Increment)
Efecto: M' ← M + 1
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
JMP (Jump)
Descripción: Salto incondicional. El control del programa es transferido al domicilio efectivo de la memoria que sea proporcionado.
Formas: JMP
Banderas: No son alteradas.
Modos de domiciliamiento: Extendido, Directo, Indexado
JSR (Jump to Subroutine)
Descripción: El control del programa es transferido al domicilio efectivo de la memoria que sea proporcionado después de almacenar el domicilio de retorno en la pila del hardware del microprocesador. Una instrucción RTS debe ser la última instrucción en ser ejecutada de la subrutina.
Formas: JSR
Banderas: No son alteradas.
Modos de domiciliamiento: Extendido, Directo, Indexado
LD (8-bits, Load Register from Memory)
Descripción: Carga los contenidos de la memoria M en el registro que haya sido designado.
Formas: LDA, LDB
Banderas:
H - No es alterada.
N - Puesta en “1” si el dato cargado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el dato cargado es cero,
puesta en “0” en caso contrario.
V - Siempre es puesta en “0”.
C - No es alterada.
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
LD (16-bits, Load Register from Memory)
Descripción: Carga los contenidos de la memoria M en el registro de 16 bits que haya sido designado.
Formas: LDD, LDX, LDY, LDS, LDU
Banderas:
H - No es alterada.
N - Puesta en “1” si el dato cargado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el dato cargado es cero,
puesta en “0” en caso contrario.
V - Siempre es puesta en “0”.
C - No es alterada.
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
LEA (Load Effective Address)
Modos de domiciliamiento: Indexado
LSL (Logical Shift Left)
Descripción: Efectúa un desplazamiento de todos los bits del acumulador A o del acumulador B o de una localidad de la memoria M un lugar hacia la izquierda. El bit cero es cargado con un “0”. El bit 7 del acumulador A o del acumulador B o de la localidad de la memoria M es desplazado hacia el bit de “llevar” C.
Formas: LSL, LSLA, LSLB
Banderas:
H - Indefinida.
N - Puesta en “1” si el resultado es negativo,
puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Cargada con el resultado del OR exclusivo de los bits 6 y 7 del operando original.
C - Cargada con el bit 7 del operando original.
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
LSR (Logical Shift Right)
Descripción: Efectúa un desplazamiento hacia la derecha de todos los bits del operando. Se desplaza un “0” hacia el bit 7, mientras que un bit cero es desplazado hacia el bit de “llevar” C.
Formas: LSR, LSRA, LSRB
Banderas:
H - No es alterada.
N - No es alterada.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - No es alterada.
C - Cargada con el bit 0 del operando original.
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
MUL (Multiply)
Descripción: Multiplicar los números binarios sin signo que se encuentran en los acumuladores A y B poniendo el resultado en ambos acumuladores. La multiplicación sin signo permite operaciones de precisión múltiple. Tras efectuarse la operación, ACCA contiene el byte más significativo del resultado.
Efecto: ACCA':ACCB' ← ACCA × ACCB
Formas: MUL
Banderas:
H - No es alterada.
N - No es alterada.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - No es alterada.
C - Puesta en “1” si el bit 7 de ACCB es “1”,
puesta en “0” en caso contrario.
Modos de domiciliamiento: Inherente
NEG (Negate)
Descripción: Reemplaza el operando con su “complemento de dos” (“dos-complemento”).
Efecto: M' ← 0 - M
Formas: NEG, NEGA, NEGB
Banderas:
H - Indefinida.
N - Puesta en “1” si el resultado es negativo,
Puesta en “0” en caso contrario.
Z - Puesta en “1” si el resultado es cero,
puesta en “0” en caso contrario.
V - Puesta en “1” si el operando original era 10000000.
C - Puesta en “1” si se generó un “pedir prestado”,
puesta en “0” en caso contrario.
Modos de domiciliamiento: Inherente, Extendido, Directo
NOP (No Operation)
Descripción: Esta instrucción ocasiona únicamente que el contador de programa sea incrementado. No se afectan otros registros o localidades de la memoria.
Formas: NOP
Banderas: No son alteradas.
Modos de domiciliamiento: Inherente
OR (Inclusive OR Memory into Register)
Formas: ORA, ORB
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
OR (Inclusive OR Memory Immediate into Condition Code Register)
Formas: ORCC
Modos de domiciliamiento: Inmediato
PSHS (Push Registers on the Hardware Stack)
Modos de domiciliamiento: Inmediato
PSHU (Push Registers on the User Stack)
Modos de domiciliamiento: Inmediato
PULS (Pull Registers from the Hardsware Stack)
Modos de domiciliamiento: Inmediato
PULU (Pull Registers from the User Stack)
Modos de domiciliamiento: Inmediato
ROL (Rotate Left)
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
ROR (Rotate Right)
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
RTI (Return from Interrupt)
Modos de domiciliamiento: Inherente
RTS (Return from Subroutine)
Modos de domiciliamiento: Inherente
SBC (Subtract with Borrow)
Modos de domiciliamiento: Inmediato
SEX (Sign Extended)
Modos de domiciliamiento: Inherente
ST (8-bit, Store Register into Memory)
Modos de domiciliamiento: Extendido, Directo, Indexado
ST (16-bit, Store Register into Memory)
Modos de domiciliamiento: Extendido, Directo, Indexado
SUB (8-bit, Subtract Memory from Register)
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
SUB (16-bit, Subtract Memory from Register)
Modos de domiciliamiento: Inmediato, Extendido, Directo, Indexado
SWI (Software Interrupt)
Modos de domiciliamiento: Inherente
SWI2 (Software Interrupt 2)
Modos de domiciliamiento: Inherente
SWI3 (Software Interrupt 3)
Modos de domiciliamiento: Inherente
SYNC (Synchronize to External Event)
Descripción: Cuando se ejecuta una instrucción SYNC, el procesador entra en un estado de sincronización, deteniendo todas las instrucciones de procesamiento, y poniéndose a la espera de una señal de interrupción. Cuando ocurre una interrupción, el estado de sincronización es limpiado (puesto en “0”) y el procesamiento continúa. Si la interrupción está habilitada, y si dura tres o más ciclos, el procesador ejecutará la rutina de interrupción. Si la interrupción está enmascarada o dura menos de tres ciclos, el procesador simplemente continúa con la siguiente instrucción. Mientras se está en el estado de sincronización, los buses de domicilios y datos son puestos en una condición de alta impedancia (en otras palabras, desconectados eléctricamente). Esta instrucción proporciona una sincronización de software con un proceso del hardware. Considérese el siguiente ejemplo para adquisición de datos a alta velocidad:
El estado de sincronización es limpiado (puesto en “0”) por una interrupción. Naturalmente, las interrupciones habilitadas hasta este punto pueden destruír la transferencia de datos y, como tal, deben representar únicamente condiciones de emergencia.
La misma condición usada para servicios de entrada/salida manejados por interrupciones puede ser usada también para transferencias de datos a alta velocidad usando la máscara de interrupción y usando la instrucción SYNC como lo muestra el ejemplo que se acaba de dar.
Modos de domiciliamiento: Inherente
TFR (Transfer to Register)
Descripción: Transfiere datos entre dos registros designados. Unicamente los contenidos de registros del mismo tamaño pueden ser transferidos (8 bits a 6 bits, ó 16 bits a 16 bits).
Efecto: R1 → R2
Formas: TFR
Banderas: No son alteradas
Modos de domiciliamiento: Inmediato
TST (Test)
Modos de domiciliamiento: Inherente, Extendido, Directo, Indexado
FIRQ (Fast Interrupt Request, Hardware Interrupt)
Modos de domiciliamiento: Inherente
IRQ (Interrupt Request, Hardware Interrupt)
Modos de domiciliamiento: Inherente
NMI (Non Maskable Interrupt, Hardware Interrupt)
Modos de domiciliamiento: Inherente
RESTART
Descripción: El procesador es inicializado (requerido cuando se lleva a cabo el encendido de la máquina) para comenzar con la ejecución del programa. El domicilio de arranque es procurado del vector de reinicialización. Este vector es usualmente puesto por los diseñistas de la máquina en las últimas dos localidades de la memoria, o sea en los domicilios FFFE y FFFF.
Efecto:
CCR' ← X1X1XXXX
PC'← FFFE:FFFF
Modos de domiciliamiento: Extendido, Indirecto