APENDICE A LISTA DE INSTRUCCIONES, ALFABÉTICA POR MNEMÓNICO, DEFINICIÓN DE GRUPOS DE INSTRUCCIONES
ADC Sumar el Acumulador y la Memoria, con Acarreo | JSR 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 Acarreo | LDY Carga el índice Y en la Memoria |
BCS Bifurcar si se activa la bandera de Acarreo | LSR 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 Acumulador | NOP Sin operación |
BMI Bifurcar si el Resultado es menor a cero | |
BNE Bifurcar si el Resultado no es igual a cero | ORA Realizar la operación «O» lógico entre la Memoria y el Acumulador |
BPL Bifurcar si el Resultado es mayor a cero | PHA Introducir el Acumulador en la Pila |
BRK Forzar quiebre | PHP Introducir el registro Estado del Procesador en la Pila |
BVC Bifurcar si se borra la bandera de Desbordamiento | PLA Extraer el Acumulador desde la Pila |
BVS Bifurcar si se activa la bandera de Desbordamiento | PLP Extraer el registro Estado del Procesador desde la Pila |
CLC Borrar la bandera de Acarreo | ROL Rotar la Memoria o Acumulador un bit a la izquierda |
CLD Borrar la bandera de modo Decimal | ROR Rotar la Memoria o Acumulador un bit a la derecha |
CLI Borrar la bandera de Deshabilitación de la Interrupción | RTI Retornar desde la Interrupción |
CLV Borrar la bandera de Desbordamiento | RTS Retornar desde la Subrutina |
CMP Comparar la Memoria con el Acumulador | |
CPX Comparar la Memoria con el índice X | SBC Restar al Acumulador la Memoria, con préstamo |
CPY Comparar la Memoria con el índice Y | SEC Establecer la bandera de Acarreo |
SED Establecer la bandeea de modo Decimal | |
DEC Decrementar la Memoria en uno | SEI Establecer la bandera de Deshabilitación de la Interrupción |
DEX Decrementar el índice X en uno | STA Almacenar el Acumulador en la Memoria |
DEY Decrementar el índice Y en uno | STX 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 uno | TAY Transferir el Acumulador al índice Y |
INX Incrementar el índice X en uno | TSX Transferir el Puntero de la Pila al índice X |
INY Incrementar el índice Y en uno | TXA Transferir el índice X al Acumulador |
TXS Transferir el índice X al Puntero de la Pila | |
JMP Saltar a nueva posición | TYA 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.