APENDICE A LISTA DE INSTRUCCIONES, ALFABÉTICA POR MNEMÓNICO, DEFINICIÓN DE GRUPOS DE INSTRUCCIONES

ADC Sumar el Acumulador y la Memoria, con AcarreoJSR Bifurcar a nueva posición guardando la dirección de retorno
AND Realizar la operación «Y» lógico entre la Memoria y el Acumulador
ASL Desplazar a la izquierda un bit (De la Memoria o del Acumulador)LDA Cargar el Acumulador en la Memoria
LDX Cargar el índice X en la Memoria
Bifurcar si se borra la bandera de AcarreoLDY Carga el índice Y en la Memoria
BCS Bifurcar si se activa la bandera de AcarreoLSR Desplaza a la Memoria o al Acumulador un bit a la derecha
BEQ Bifurcar si el Resultado es igual a cero
BIT Comprobar los bits entre la Memoria y el AcumuladorNOP Sin operación
BMI Bifurcar si el Resultado es menor a cero
BNE Bifurcar si el Resultado no es igual a ceroORA Realizar la operación «O» lógico entre la Memoria y el Acumulador
BPL Bifurcar si el Resultado es mayor a ceroPHA Introducir el Acumulador en la Pila
BRK Forzar quiebrePHP Introducir el registro Estado del Procesador en la Pila
BVC Bifurcar si se borra la bandera de DesbordamientoPLA Extraer el Acumulador desde la Pila
BVS Bifurcar si se activa la bandera de DesbordamientoPLP Extraer el registro Estado del Procesador desde la Pila
CLC Borrar la bandera de AcarreoROL Rotar la Memoria o Acumulador un bit a la izquierda
CLD Borrar la bandera de modo DecimalROR Rotar la Memoria o Acumulador un bit a la derecha
CLI Borrar la bandera de Deshabilitación de la InterrupciónRTI Retornar desde la Interrupción
CLV Borrar la bandera de DesbordamientoRTS Retornar desde la Subrutina
CMP Comparar la Memoria con el Acumulador
CPX Comparar la Memoria con el índice XSBC Restar al Acumulador la Memoria, con préstamo
CPY Comparar la Memoria con el índice YSEC Establecer la bandera de Acarreo
SED Establecer la bandeea de modo Decimal
DEC Decrementar la Memoria en unoSEI Establecer la bandera de Deshabilitación de la Interrupción
DEX Decrementar el índice X en unoSTA Almacenar el Acumulador en la Memoria
DEY Decrementar el índice Y en unoSTX Almacenar el índice X en la Memoria
STY Almacenar el índice Y en la Memoria
EOR Realizar la operación «O» Exclusivo entre la Memoria y el Acumulador
TAX Transferir el Acumulador al índice X
INC Incrementar la Memoria en unoTAY Transferir el Acumulador al índice Y
INX Incrementar el índice X en unoTSX Transferir el Puntero de la Pila al índice X
INY Incrementar el índice Y en unoTXA Transferir el índice X al Acumulador
TXS Transferir el índice X al Puntero de la Pila
JMP Saltar a nueva posiciónTYA Transferir el índice Y al Acumulador

A.1 INTRODUCCIÓN


El conjunto de instrucciones del microprocesador se divide en tres grupos básicos. El primer grupo tiene la mayor flexibilidad de direccionamiento y está formado por las instrucciones de uso más general como Cargar, Sumar, Almacenar, etc. El segundo grupo incluye las instrucciones para Leer, Modificar y Escribir tales como: Desplazar, Incrementar, Decrementar y las instrucciones de movimiento del Registro X. El tercer grupo contiene todas las instrucciones restantes, incluidas las de la Pila, las del registro Y, las de comparación para los registros X e Y y las que no encajan naturalmente en el Grupo Uno o Dos.
Hay ocho instrucciones del Grupo Uno, ocho instrucciones del Grupo Dos, y las 39 instrucciones restantes son del Grupo Tres.
Los tres grupos se obtienen organizando el patrón del OP CODE para dar la máxima flexibilidad de direccionamiento (16 combinaciones de direccionamiento) al grupo Uno, y ocho combinaciones a las instrucciones del Grupo Dos. Las instrucciones del Grupo Tres básicamente se decodifican de manera individual.

A.2 INSTRUCCIONES DEL GRUPO UNO


Estas instrucciones son: Sumar con acarreo (ADC), «Y» lógico (AND), Comparar (CMP), «O exclusivo» lógico (EOR), Cargar A (LDA), «O» lógico (ORA), Restar con acarreo (SBC), y Almacenar A (STA). Cada una de estas instrucciones tiene potencial para 16 direcciones modos de direccionamiento. Sin embargo, en los microprocesadores del MCS6501 al MCS6505, se utilizan sólo ocho de todos los modos disponibles. Los modos de direccionamiento para el Grupo Uno son: Inmediato, Página Cero, Página Cero Indexado por X, Absoluto, Absoluto Indexado por X, Absoluto Indexado por Y, Indexado Indirecto, Indirecto Indexado. Los ocho modos de direccionamiento no utilizados serán implementados en futuras versiones de la familia de productos MCS650X para permitir el direccionamiento de puertos de E/S y registros adicionales en el chip, y para permitir el procesamiento de palabras de dos bytes.

A.3 INSTRUCCIONES DEL GRUPO DOS


Las instrucciones del Grupo Dos son principalmente instrucciones de lectura, modificación y escritura. En realidad, hay dos subcategorías dentro de las instrucciones del Grupo Dos. Los componentes del primer grupo son instrucciones de desplazamiento y rotación y corresponden a: Desplazar a la derecha (LSR), Desplazar a la izquierda (ASL), Rotar a la izquierda (ROL) y Rotar a la Derecha (ROR).
El segundo subgrupo incluye las instrucciones de Incremento (INC) y Decremento (DEC) y las dos instrucciones del registro Índice X, Cargar X (LDX) y Almacenar X (STX). Debido al patrón de bits, estas instrucciones normalmente deberían tener ocho modos de direccionamiento disponibles. Sin embargo, para permitir futura expansiones, sólo se han definido los siguientes modos de direccionamiento: Página Cero, Página Cero indexada por X, Absoluta, Indexada Absoluta por X, y un modo Acumulador (o Registro) especial. Las cuatro instrucciones de desplazamiento tienen operaciones en el registro A; el incremento o decremento de las instrucciones Load X y Store X también tienen el modo de direccionamiento Acumulador, aunque el incremento y decremento del Acumulador se han reservado para otros fines. A Cargar X desde A se le ha asignado su propio mnemotécnico, TAX. También incluido en este grupo están las funciones especiales de Decrementar X, que es un caso especial de Almacenar X. Incluidos también en este grupo de decodificadores de X están las instrucciones TXS y TSX.
Todas las instrucciones del Grupo Uno tienen todos los modos de direccionamiento disponibles para cada instrucción. En el caso de instrucciones del Grupo Dos, se ha agregado otro modo de direccionamiento; el del Acumulador y el de otros decodificadores especiales también se han implementado en este grupo básico. Sin embargo, la función primaria de las instrucciones del Grupo Dos es realizar alguna operación de Memoria usando el índice apropiado. Cabe señalar que, a efectos de documentación, las instrucciones X tienen un modo especial de direccionamiento en el que el registro Y se usa para todas las operaciones de indexación; por lo tanto, en lugar del modo Página Cero indexado por X, las instrucciones X tienen el modo Página Cero indexada por Y, y en lugar de tener el modo Absoluto indexado por X, tienen el modo Absoluto indexado por Y.

A.4 INSTRUCCIONES DEL GRUPO TRES


En realidad, hay dos clasificaciones principales de las instrucciones del Grupo Tres; las instrucciones de modificación del registro Y, Cargar Y (LDY), Almacenar Y (STY), Comparar Y (CPY) y Comparar X (CPX) en realidad ocupan aproximadamente la mitad del espacio de los OP CODE de las instrucciones del Grupo Tres. Incrementar X (INX) e Incrementar Y (INY) son subconjuntos especiales de las instrucciones Comparar X y Comparar Y; todas las instrucciones de salto están en el Grupo Tres.
Las instrucciones de este grupo constan de todos los saltos: BCC, BCS, BEQ, IMC, BNE, BPL, BPC y BPS. Todas las operaciones de bandera también están dedicadas a un modo de direccionamiento; estas son: CLC, SEC, CLD, SED, CLI, SEI y CLV. Todas las instrucciones de introducir y extraer y las instrucciones de manejo de la Pila corresponden a instrucciones del Grupo Tres. Estas incluyen: BEK, JSR, PHA, PHP, PLA y PLP. Las instrucciones JMP y BIT también se incluyen en este grupo. No hay un modo de direccionamiento común disponible para los miembros de este grupo. Cargar Y, Almacenar Y, BIT, Comparar X y Comparar Y tienen el modo Página Cero y Absoluto, y todos de las instrucciones de X e Y permiten operaciones en modo Página Cero Indexada y en modo Inmediato.