Idioma
Ver el código de APENDICE B LISTA DE INSTRUCCIONES, ALFABÉTICA POR MNEMÓNICO, CON CÓDIGOS DE OPERACIÓN (OP CODE), CICLOS DE EJECUCIÓN Y REQUISITOS DE MEMORIA
La siguiente notación se aplica a este resumen: A Acumulador X, Y Registros índice M Memoria P Registro de Estado del Procesador S Puntero de la Pila ✓ Cambio _ Ningún cambio + Sumar ∧ "Y" lógico - Restar --∨-- "O exclusivo" lógico ↑ Transferir desde la Pila ↓ Transferir a la Pila → Transferir a ← Transferir a ∨ "O" lógico PC Contador de Programa PCH Byte superior del Contador de Programa PCL Byte inferior del Contador de Programa OPER OPERANDO # MODO DE DIRECCIONAMIENTO INMEDIATO Nota: En la parte superior de cada tabla se encuentra entre paréntesis un número de referencia (Ref: XX) que dirige al usuario a esa sección en el Manual de programación de la familia de microcomputadoras MCS6500 en el que se define y se discute la instrucción. ---- **ADC** Sumar al Acumulador el Contenido de una Dirección de Memoria, Con Acarreo Operación: A + M + C → A, C%% N Z C I D V ✓ ✓ ✓ - - ✓%% ((Capitulo02#ADC (Ref: 2.2.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|ADC # Oper|69|2|2|| ||Página Cero|ADC Oper|65|2|3|| ||Página Cero, X|ADC Oper, X|75|2|4|| ||Absoluto|ADC Oper|6D|3|4|| ||Absoluto, X|ADC Oper, X|7D|3|4*|| ||Absoluto, Y|ADC Oper, Y|79|3|4*|| ||(Indirecto, X)|ADC (Oper, X)|61|2|6|| ||(Indirecto), Y|ADC (Oper), Y|71|2|5*|| |# * Sume 1 si se cruza el límite de la página. ---- **AND** "Y" Lógico Entre la Memoria y el Acumulador Operación: A ∧ M → A%% N Z C I D V ✓ ✓ ✓ - - ✓%% ((Capitulo02#AND (Ref: 2.2.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|AND # Oper|29|2|2|| ||Página Cero|AND Oper|25|2|3|| ||Página Cero, X|AND Oper, X|35|2|4|| ||Absoluto|AND Oper|2D|3|4|| ||Absoluto, X|AND Oper, X|3D|3|4*|| ||Absoluto, Y|AND Oper, Y|39|3|4*|| ||(Indirecto, X)|AND (Oper, X)|21|2|6|| ||(Indirecto), Y|AND (Oper), Y|31|2|5*|| |# * Sume 1 si se cruza el límite de la página. ---- **ASL** Desplazamiento Aritmético a la Izquierda Operación: %% ┌─┬─┬─┬─┬─┬─┬─┬─┐ C ← │7│6│5│4│3│2│1│0│ ← 0 N Z C I D V └─┴─┴─┴─┴─┴─┴─┴─┘ ✓ ✓ ✓ - - -%% ((Capitulo10#ASL (Ref: 10.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Accumulator|ASL A|0A|1|2|| ||Página Cero|ASL Oper|6|2|5|| ||Página Cero, X|ASL Oper, X|16|2|6|| ||Absoluto|ASL Oper|0E|3|6|| ||Absoluto, X|ASL Oper, X|1E|3|7|| |# ---- **BCC** Bifurcar si la Bandera de Acarreo ( C ) es igual a 0 Operación: Bifurcar cuando C = 0%% N Z C I D V - - - - - -%% ((Capitulo04#BCC (Ref: 4.1.2.3))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Relativo|BCC Oper|90|2|2*|| |# * Sume 1 si la bifurcación ocurre en la misma página. * Sume 2 si la bifurcación ocurre en otra página. ---- **BCS** Bifurcar Si la Bandera de Acarreo ( C ) es igual a 1 Operación: Bifurcar cuando C = 1%% N Z C I D V - - - - - -%% ((Capitulo04#BCS (Ref: 4.1.2.4))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Relativo|BCS Oper|B0|2|2*|| |# * Sume 1 si la bifurcación ocurre en la misma página. * Sume 2 si la bifurcación ocurre en otra página. ---- **BEQ** Bifurcar Si el Resultado es igual a 0 Operación: Bifurcar cuando Z = 1%% N Z C I D V - - - - - -%% ((Capitulo04#BEQ (Ref: 4.1.2.5))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Relativo|BEQ Oper|F0|2|2*|| |# * Sume 1 si la bifurcación ocurre en la misma página. * Sume 2 si la bifurcación ocurre en otra página. ---- **BIT** Comparar los Bits del Contenido de una Dirección de Memoria con los del Acumulador Operación: A ∧ M, M7 → N, M6 → V Bit 6 y 7 son transferidos al Registro de Estado. Si el resultado de A ∧ M es cero entonces Z = 1, de lo contrario Z = 0. %% N Z C I D V - - - - - -%% ((Capitulo04#BIT (Ref: 4.2.2.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Página Cero|BIT Oper|24|2|3|| ||Absoluto|BIT Oper|2C|3|4|||# * Sume 1 si la bifurcación ocurre en la misma página. * Sume 2 si la bifurcación ocurre en otra página. ---- **BMI** Bifurcar Si el Resultado es Negativo Operación: Bifurcar cuando N = 1%% N Z C I D V - - - - - -%% ((Capitulo04#BMI (Ref: 4.1.2.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Relativo|BMI Oper|30|2|2*|| |# * Sume 1 si la bifurcación ocurre en la misma página. * Sume 2 si la bifurcación ocurre en otra página. ---- **BNE** Bifurcar Si el Resultado es distinto de 0 Operación: Bifurcar cuando Z = 0%% N Z C I D V - - - - - -%% ((Capitulo04#BNE (Ref: 4.1.2.6))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Relativo|BNE Oper|D0|2|2*|| |# * Sume 1 si la bifurcación ocurre en la misma página. * Sume 2 si la bifurcación ocurre en otra página. ---- **BPL** Bifurcar Si el Resultado es mayor a 0 Operación: Bifurcar cuando N = 0%% N Z C I D V - - - - - -%% ((Capitulo04#BPL (Ref: 4.1.2.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Relativo|BPL Oper|10|2|2*|| |# * Sume 1 si la bifurcación ocurre en la misma página. * Sume 2 si la bifurcación ocurre en otra página. ---- **BRK** Forzar ruptura Operación: CP de la Interrupción Forzada + 2 ↓ P ↓%% N Z C I D V - - - 1 - -%% ((Capitulo09#BRK (Ref: 9.11))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|BRK|00|1|7*|| |# * 1. La instrucción BRK no puede ser enmascarada al establecer I. ---- **BVC** Bifurcar Si la Bandera de Desbordamiento (V) es igual a 0 Operación: Bifurcar si V = 0%% N Z C I D V - - - - - -%% ((Capitulo04#BVC (Ref: 4.1.2.8))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Relativo|BVC Oper|50|2|2*|| |# * Sume 1 si la bifurcación ocurre en la misma página. * Sume 2 si la bifurcación ocurre en otra página. ---- **BVS** Bifurcar Si la Bandera de Desbordamiento (V) es igual a 1 Operación: Bifurcar si V = 1%% N Z C I D V - - - - - -%% ((Capitulo04#BVS (Ref: 4.1.2.7))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Relativo|BVS Oper|70|2|2*|| |# * Sume 1 si la bifurcación ocurre en la misma página. * Sume 2 si la bifurcación ocurre en otra página. ---- **CLC** Puesta a 0 de la Bandera de Acarreo Operación: 0 → C%% N Z C I D V - - 0 - - -%% ((Capitulo03#CLC (Ref: 3.0.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|CLC|18|1|2|| |# ---- **CLD** Puesta a 0 del Modo Decimal Operación: 0 → D%% N Z C I D V - - - - 0 -%% ((Capitulo03#CLD (Ref: 3.3.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|CLD|D8|1|2|| |# ---- **CLI** Puesta a 0 de la Desactivación de la Interrupción Operación: 0 → I%% N Z C I D V - - - 0 - -%% ((Capitulo03#CLI (Ref: 3.2.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|CLI|58|1|2|| |# ---- **CLV** Puesta a 0 de la Bandera de Desbordamiento Operación: 0 → V%% N Z C I D V - - - - - 0%% ((Capitulo03#CLV (Ref: 3.6.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|CLV|B8|1|2|| |# ---- **CMP** Comparar el Contenido de una Dirección de Memoria con el Acumulador Operación: A - M%% N Z C I D V ✓ ✓ ✓ - - -%% ((Capitulo04#CMP (Ref: 4.2.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|CMP # Oper|C9|2|2|| ||Página Cero|CMP Oper|C5|2|3|| ||Página Cero, X|CMP Oper, X|D5|2|4|| ||Absoluto|CMP Oper|CD|3|4|| ||Absoluto, X|CMP Oper, X|DD|3|4*|| ||Absoluto, Y|CMP Oper, Y|D9|3|4*|| ||(Indirecto, X)|CMP (Oper, X)|C1|2|6|| ||(Indirecto), Y|CMP (Oper), Y|D1|2|5*|| |# * Sume 1 si se cruza el límite de la página. ---- **CPX** Comparar del Registro Índice X con el Contenido de una Dirección de Memoria Operación: X - M%% N Z C I D V ✓ ✓ ✓ - - -%% ((Capitulo07#CPX (Ref: 7.8))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|CPX # Oper|E0|2|2|| ||Página Cero|CPX Oper|E4|2|3|| ||Absoluto|CPX Oper|EC|3|4|| |# ---- **CPY** Comparar del Registro Índice Y con el Contenido de una Dirección de Memoria Operación: Y - M%% N Z C I D V ✓ ✓ ✓ - - -%% ((Capitulo07#CPY (Ref: 7.9))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|CPY # Oper|C0|2|2|| ||Página Cero|CPY Oper|C4|2|3|| ||Absoluto|CPY Oper|CC|3|4|| |# ---- **DEC** Decrementar en Uno el Contenido de una Dirección de Memoria Operación: M - 1 → M%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo10#DEC (Ref: 10.7))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Página Cero|DEC # Oper|C6|2|5|| ||Página Cero, X|DEC Oper|D6|2|6|| ||Absoluto|DEC Oper, X|CE|3|6|| ||Absoluto, X|DEC Oper|DE|3|7|| |# ---- **DEX** Decrementar en Uno el Registro Índice X Operación: X - 1 → X%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#DEX (Ref: 7.6))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|DEX|CA|1|2|| |# ---- **DEY** Decrementar en Uno el Registro Índice Y Operación: Y - 1 → Y%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#DEY (Ref: 7.7))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|DEY|88|1|2|| |# ---- **EOR** "O exclusivo" Lógico Entre la Memoria y el Acumulador Operación: A --∨-- M → A%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo02#EOR (Ref: 2.2.4.3))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|EOR # Oper|49|2|2|| ||Página Cero|EOR Oper|45|2|3|| ||Página Cero, X|EOR Oper, X|55|2|4|| ||Absoluto|EOR Oper|4D|3|4|| ||Absoluto, X|EOR Oper, X|5D|3|4*|| ||Absoluto, Y|EOR Oper, Y|59|3|4*|| ||(Indirecto, X)|EOR (Oper, X)|41|2|6|| ||(Indirecto), Y|EOR (Oper), Y|51|2|5*|| |# * Sume 1 si se cruza el límite de la página. ---- **INC** Incrementar en Uno el Contenido de una Dirección de Memoria Operación: M + 1 → M%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo10#INC (Ref: 10.6))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Página Cero|INC # Oper|E6|2|5|| ||Página Cero, X|INC Oper|F6|2|6|| ||Absoluto|INC Oper, X|EE|3|6|| ||Absoluto, X|INC Oper|FE|3|7|| |# ---- **INX** Incrementar en Uno el Registro Índice X Operación: X + 1 → X%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#INX (Ref: 7.4))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|INX|E8|1|2|| |# ---- **INY** Incrementar en Uno el Registro Índice Y Operación: Y + 1 → Y%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#INY (Ref: 7.5))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|INY|C8|1|2|| |# ---- **JMP** Saltar a una Nueva Posición de Memoria Operación: (PC + 1) → PCL (PC + 2) → PCH %% N Z C I D V - - - - - -%% ((Capitulo04#JMP (Ref: 4.0.2))) ((Capitulo09#JMP (Ref: 9.8.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Absoluto|JMP Oper|4C|3|3|| ||Indirecto|JMP (Oper)|6C|3|5|| |# ---- **JSR** Saltar a una Nueva Posición de Memoria, guardando la dirección de retorno Operación: (PC + 1) → PCL (PC + 2) → PCH %% N Z C I D V - - - - - -%% ((Capitulo08#JSR (Ref: 4.0.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Absoluto|JMP Oper|4C|3|3|| ||Indirecto|JMP (Oper)|6C|3|5|| |# ---- **LDA** Cargar en el Acumulador el Contenido de una Dirección de Memoria Operación: M → A %% N Z C I D V ✓ ✓ - - - - %% ((Capitulo02#LDA (Ref: 2.1.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|LDA # Oper|A9|2|2|| ||Página Cero|LDA Oper|A5|2|3|| ||Página Cero, X|LDA Oper, X|B5|2|4|| ||Absoluto|LDA Oper|AD|3|4|| ||Absoluto, X|LDA Oper, X|BD|3|4*|| ||Absoluto, Y|LDA Oper, Y|B9|3|4*|| ||(Indirecto, X)|LDA (Oper, X)|A1|2|6|| ||(Indirecto), Y|LDA (Oper), Y|B1|2|5*|| |# * Sume 1 si se cruza el límite de la página. ---- **LDX** Cargar el Registro Índice X con el Contenido de una Dirección de Memoria Operación: M → X %% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#LDX (Ref: 7.0))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|LDX # Oper|A2|2|2|| ||Página Cero|LDX Oper|A6|2|3|| ||Página Cero, Y|LDX Oper, Y|B6|2|4|| ||Absoluto|LDX Oper|AE|3|4|| ||Absoluto, Y|LDX Oper, Y|BE|3|4*|| |# * Sume 1 cuando se cruce el límite de la página. ---- **LDY** Cargar el Registro Índice Y con el Contenido de una Dirección de Memoria Operación: M → Y %% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#LDY (Ref: 7.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|LDY # Oper|A0|2|2|| ||Página Cero|LDY Oper|A4|2|3|| ||Página Cero, X|LDY Oper, X|B4|2|4|| ||Absoluto|LDY Oper|AC|3|4|| ||Absoluto, X|LDY Oper, X|BC|3|4*|| |# * Sume 1 cuando se cruce el límite de la página. ---- **LSR** Desplazar un bit a la derecha (De la memoria o del Acumulador) Operación: %% ┌─┬─┬─┬─┬─┬─┬─┬─┐ 0 ← │7│6│5│4│3│2│1│0│ ← C N Z C I D V └─┴─┴─┴─┴─┴─┴─┴─┘ 0 ✓ ✓ - - -%% ((Capitulo10#LSR (Ref: 10.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Accumulator|LSR A|4A|1|2|| ||Página Cero|LSR Oper|46|2|5|| ||Página Cero, X|LSR Oper, X|56|2|6|| ||Absoluto|LSR Oper|4E|3|6|| ||Absoluto, X|LSR Oper, X|5E|3|7|| |# ---- **NOP** Sin Operación Operación: Sin Operación (2 ciclos)%% N Z C I D V - - - - - -%% #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|NOP|EA|1|2|| |# ---- **ORA** "O" Lógico Entre la Memoria y el Acumulador Operación: A ∨ M → A%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo02#ORA (Ref: 2.2.4.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|ORA # Oper|9|2|2|| ||Página Cero|ORA Oper|5|2|3|| ||Página Cero, X|ORA Oper, X|15|2|4|| ||Absoluto|ORA Oper|0D|3|4|| ||Absoluto, X|ORA Oper, X|1D|3|4*|| ||Absoluto, Y|ORA Oper, Y|19|3|4*|| ||(Indirecto, X)|ORA (Oper, X)|1|2|6|| ||(Indirecto), Y|ORA (Oper), Y|11|2|5|| |# * Sume 1 cuando se cruce el límite de la página. ---- **PHA** Introducir (Push) el Contenido del Acumulador en la Pila Operación: A ↓%% N Z C I D V - - - - - -%% ((Capitulo08#PHA (Ref: 8.5))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|PHA|48|1|3|| |# ---- **PHP** Introducir el Registro de Estado del Procesador en la Pila Operación: P ↓%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo08#PHP (Ref: 8.11))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|PHP|08|1|3|| |# ---- **PLA** Extraer (Pull) el Contenido del Acumulador desde la Pila Operación: A ↑%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo08#PLA (Ref: 8.6))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|PLA|68|1|3|| |# ---- **PLP** Extraer el Registro de Estado del Procesador desde la Pila Operación: P ↑%% N Z C I D V Desde la Pila%% ((Capitulo08#PLP (Ref: 8.12))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|PLP|28|1|3|| |# ---- **ROL** Rotar un bit a la Izquierda (De la Memoria o del Acumulador) Operación: %% ┌──────────────────────────┐ │ M o A │ ↑ ┌─┬─┬─┬─┬─┬─┬─┬─┐ __ │ └─┤7│6│5│4│3│2│1│0│ ← /C/ ←┘ N Z C I D V └─┴─┴─┴─┴─┴─┴─┴─┘ ✓ ✓ ✓ - - -%% ((Capitulo10#ROL (Ref: 10.3))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Accumulator|ROL A|2A|1|2|| ||Página Cero|ROL Oper|26|2|5|| ||Página Cero, X|ROL Oper, X|36|2|6|| ||Absoluto|ROL Oper|2E|3|6|| ||Absoluto, X|ROL Oper, X|3E|3|7|| |# ---- **ROR** Rotar un bit a la Derecha (De la Memoria o del Acumulador) Operación: %% ┌───────────────────────┐ │ ┌─┐ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │ └→│C│→│7│6│5│4│3│2│1│0├─┘ N Z C I D V └─┘ └─┴─┴─┴─┴─┴─┴─┴─┘ ✓ ✓ ✓ - - -%% ((Capitulo10#ROR (Ref: 10.4))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Accumulator|ROR A|6A|1|2|| ||Página Cero|ROR Oper|66|2|5|| ||Página Cero, X|ROR Oper, X|76|2|6|| ||Absoluto|ROR Oper|6E|3|6|| ||Absoluto, X|ROR Oper, X|7E|3|7|| |# ---- **RTI** Regresar Desde la Interrupción Operación: P↑ PC↑%% N Z C I D V Desde la Pila%% ((Capitulo09#RTI (Ref: 9.6))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|RTI|40|1|6|| |# ---- **RTS** Regresar Desde la Subrutina Operación: PC↑, PC + 1 → PC%% N Z C I D V - - - - - -%% ((Capitulo08#RTS (Ref: 8.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|RTS|60|1|6|| |# ---- **SBC** Restar al Acumulador el Contenido de una Dirección de Memoria, Con Préstamo Operación: A - M - C → A Nota: C = Préstamo%% N Z C I D V ✓ ✓ ✓ - - ✓%% ((Capitulo02#SBC (Ref: 2.2.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Inmediato|SBC # Oper|E9|2|2|| ||Página Cero|SBC Oper|E5|2|3|| ||Página Cero, X|SBC Oper, X|F5|2|4|| ||Absoluto|SBC Oper|ED|3|4|| ||Absoluto, X|SBC Oper, X|FD|3|4*|| ||Absoluto, Y|SBC Oper, Y|F9|3|4*|| ||(Indirecto, X)|SBC (Oper, X)|E1|2|6|| ||(Indirecto), Y|SBC (Oper), Y|F1|2|5*|| |# * Sume 1 cuando se cruce el límite de la página. ---- **SEC** Puesta a 1 de la Bandera de Acarreo Operación: 1 → C%% N Z C I D V - - 1 - - -%% ((Capitulo03#SEC (Ref: 3.0.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|SEC|38|1|2|| |# ---- **SED** Puesta en Modo Decimal Operación: 1 → D%% N Z C I D V - - - - 1 -%% ((Capitulo03#SED (Ref: 3.3.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|SED|F8|1|2|| |# ---- **SEI** Puesta a 1 de la Desactivación de la Interrupción Operación: 1 → I%% N Z C I D V - - - 1 - -%% ((Capitulo03#SEI (Ref: 3.2.1))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|SEI|78|1|2|| |# ---- **STA** Almacenar el Contenido del Acumulador en una Dirección de Memoria Operación: A → M%% N Z C I D V - - - - - -%% ((Capitulo02#STA (Ref: 2.1.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Página Cero|STA Oper|85|2|3|| ||Página Cero, X|STA Oper, X|95|2|4|| ||Absoluto|STA Oper|8D|3|4|| ||Absoluto, X|STA Oper, X|9D|3|5|| ||Absoluto, Y|STA Oper, Y|99|3|5|| ||(Indirecto, X)|STA (Oper, X)|81|2|6|| ||(Indirecto), Y|STA (Oper), Y|91|2|6|| |# ---- **STX** Almacenar el Registro Índice X en una Dirección de Memoria Operación: X → M%% N Z C I D V - - - - - -%% ((Capitulo07#STX (Ref: 7.2))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Página Cero|STX Oper|86|2|3|| ||Página Cero, Y|STX Oper, Y|96|2|4|| ||Absoluto|STX Oper|8E|3|4|| |# ---- **STY** Almacenar el Registro Índice Y en una Dirección de Memoria Operación: Y → M%% N Z C I D V - - - - - -%% ((Capitulo07#STY (Ref: 7.3))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Página Cero|STX Oper|86|2|3|| ||Página Cero, Y|STX Oper, Y|96|2|4|| ||Absoluto|STX Oper|8E|3|4|| |# ---- **TAX** Transferir el Contenido del Acumulador al Índice X Operación: A → X%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#TAX (Ref: 7.11))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|TAX|AA|1|2|| |# ---- **TAY** Transferir el Contenido del Acumulador al Índice Y Operación: A → Y%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#TAY (Ref: 7.13))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|TAY|A8|1|2|| |# ---- **TYA** Transferir el Contenido del Índice Y al Acumulador Operación: Y → A%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#TYA (Ref: 7.14))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|TYA|98|1|2|| |# ---- **TSX** Transferir el Puntero de la Pila al Registro Índice X Operación: S → X%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo08#TSX (Ref: 8.9))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|TSX|BA|1|2|| |# ---- **TXA** Transferir el Contenido del Índice X al Acumulador Operación: X → A%% N Z C I D V ✓ ✓ - - - -%% ((Capitulo07#TXA (Ref: 7.12))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|TXA|8A|1|2|| |# ---- **TXS** Transferir el Registro Índice X al Puntero de la Pila Operación: X → S%% N Z C I D V - - - - - -%% ((Capitulo08#TXS (Ref: 8.8))) #| *|Modo de---Direccionamiento|Forma en Lenguaje---Ensamblador|OP---CODE|No.---Bytes|No.---Ciclos|* ||Implícito|TXS|9A|1|2|| |# Ir al siguiente ((/Biblioteca/MCS6500/AnexoC anexo))