Référence des instructions de l'assembleur du microprocesseur 6800 vue par opcode :
| Mnémonique | Syntaxe | Mode | Octets | Code | Cycles | C | Z | S | O | Ac | I | Opération symbolique | Description |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ABA | ABA | ACC | 1 | 01Bh | 2 | x | x | x | x | x | - | [A] ← [A] + [B] | Cette instruction permet d'ajouter l'adressage de registre B dans l'adressage de registre A. |
| ADC | ADC A data8 | IMM | 2 | 089h | 2 | x | x | x | x | x | - | [A] ← [A] + data8 + C | Cette instruction permet d'ajouter le contenu de la mémoire et le drapeau de retenue dans le registre accumulateur. |
| ADC A addr8 | DIR | 2 | 099h | 3 | [A] ← [A] + [addr8] + C | ||||||||
| ADC A data8,X | IDX | 2 | 0A9h | 5 | [A] ← [A] + [data8 + [X]] + C | ||||||||
| ADC A addr16 | EXT | 3 | 0B9h | 4 | [A] ← [A] + [addr16] + C | ||||||||
| ADC B #data8 | IMM | 2 | 0C9h | 2 | [B] ← [B] + data8 + C | ||||||||
| ADC B addr8 | DIR | 2 | 0D9h | 3 | [B] ← [B] + [addr8] + C | ||||||||
| ADC B data8,X | IDX | 2 | 0E9h | 5 | [B] ← [B] + [data8 + [X]] + C | ||||||||
| ADC B addr16 | EXT | 3 | 0F9h | 4 | [B] ← [B] + [addr16] + C | ||||||||
| ADD | ADD A #data8 | IMM | 2 | 08Bh | 2 | x | x | x | x | x | - | [A] ← [A] + data8 | Cette instruction permet d'ajouter le contenu de la mémoire dans le registre accumulateur. |
| ADD A addr8 | DIR | 2 | 09Bh | 3 | [A] ← [A] + [addr8] | ||||||||
| ADD A data8,X | IDX | 2 | 0ABh | 5 | [A] ← [A] + [data8 + [X]] | ||||||||
| ADD A addr16 | EXT | 3 | 0BBh | 4 | [A] ← [A] + [addr16] | ||||||||
| ADD B #data8 | IMM | 2 | 0CBh | 2 | [B] ← [B] + data8 | ||||||||
| ADD B addr8 | DIR | 2 | 0DBh | 3 | [B] ← [B] + [addr8] | ||||||||
| ADD B data8,X | IDX | 2 | 0EBh | 5 | [B] ← [B] + [data8 + [X]] | ||||||||
| ADD B addr16 | EXT | 3 | 0FBh | 4 | [B] ← [B] + [addr16] | ||||||||
| AND | AND A #data8 | IMM | 2 | 084h | 2 | - | x | x | 0 | - | - | [A] ← [A] ∩ data8 | Cette instruction permet d'effectuer un «Et binaire» d'un registre accumulateur avec opérande. |
| AND A addr8 | DIR | 2 | 094h | 3 | [A] ← [A] ∩ [addr8] | ||||||||
| AND A data8,X | IDX | 2 | 0A4h | 5 | [A] ← [A] ∩ [data8 + [X]] | ||||||||
| AND A addr16 | EXT | 3 | 0B4h | 4 | [A] ← [A] ∩ [addr16] | ||||||||
| AND B #data8 | IMM | 2 | 0C4h | 2 | [B] ← [B] ∩ data8 | ||||||||
| AND B addr8 | DIR | 2 | 0D4h | 3 | [B] ← [B] ∩ [addr8] | ||||||||
| AND B data8,X | IDX | 2 | 0E4h | 5 | [B] ← [B] ∩ [data8 + [X]] | ||||||||
| AND B addr16 | EXT | 3 | 0F4h | 4 | [B] ← [B] ∩ [addr16] | ||||||||
| ASL | ASL A | ACC | 1 | 048h | 2 | x | x | x | x | - | - | Cette instruction permet d'effectuer un décalage arithmétique vers la gauche et fixe le bit 0 à 0. | |
| ASL B | ACC | 1 | 058h | 2 | |||||||||
| ASL data8,X | IDX | 2 | 068h | 7 | |||||||||
| ASL addr16 | EXT | 3 | 078h | 6 | |||||||||
| ASR | ASR A | ACC | 1 | 047h | 2 | x | x | x | x | - | - | Cette instruction permet d'effectuer un décalage arithmétique vers la droite et fixe le bit 7 avec le même. | |
| ASR B | ACC | 1 | 057h | 2 | |||||||||
| ASR data8,X | IDX | 2 | 067h | 7 | |||||||||
| ASR addr16 | EXT | 3 | 077h | 6 | |||||||||
| BCC | BCC disp | REL | 2 | 024h | 4 | - | - | - | - | - | - | SI C = 0 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si le drapeau de retenue est effacé. |
| BCS | BCS disp | REL | 2 | 025h | 4 | - | - | - | - | - | - | SI C = 1 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si le drapeau de retenue est fixé. |
| BEQ | BEQ disp | REL | 2 | 027h | 4 | - | - | - | - | - | - | SI Z = 1 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si égale à zéro. |
| BGE | BGE disp | REL | 2 | 02Ch | 4 | - | - | - | - | - | - | SI S XOR O = 0 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si supérieur ou égale à 0. |
| BGT | BGT disp | REL | 2 | 02Eh | 4 | - | - | - | - | - | - | SI Z U (S XOR O) = 0 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si supérieur à 0. |
| BHI | BHI disp | REL | 2 | 022h | 4 | - | - | - | - | - | - | SI C U Z = 0 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si le contenu de l'accumulateur est supérieur au comparé. |
| BIT | BIT A #data8 | IMM | 2 | 085h | 2 | - | x | x | 0 | - | - | [A] ∩ data8 | Cette instruction permet d'effectuer un «Et binaire» avec l'accumulateur en changeant seulement le registre d'état. |
| BIT A addr8 | DIR | 2 | 095h | 3 | [A] ∩ [addr8] | ||||||||
| BIT A data8,X | IDX | 2 | 0A5h | 5 | [A] ∩ [data8 + [X]] | ||||||||
| BIT A addr16 | EXT | 3 | 0B5h | 4 | [A] ∩ [addr16] | ||||||||
| BIT B #data8 | IMM | 2 | 0C5h | 2 | [B] ∩ data8 | ||||||||
| BIT B addr8 | DIR | 2 | 0D5h | 3 | [B] ∩ [addr8] | ||||||||
| BIT B data8,X | IDX | 2 | 0E5h | 5 | [B] ∩ [data8 + [X]] | ||||||||
| BIT B addr16 | EXT | 3 | 0F5h | 4 | [B] ∩ [addr16] | ||||||||
| BLE | BLE disp | REL | 2 | 02Fh | 4 | - | - | - | - | - | - | SI Z U (S XOR O) = 1 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si inférieur ou égale à 0. |
| BLS | BLS disp | REL | 2 | 023h | 4 | - | - | - | - | - | - | SI C U Z = 1 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si le contenu de l'accumulateur est inférieur ou le même que le comparé. |
| BLT | BLT disp | REL | 2 | 02Dh | 4 | - | - | - | - | - | - | SI S XOR O = 1 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si inférieur à 0. |
| BMI | BMI disp | REL | 2 | 02Bh | 4 | - | - | - | - | - | - | SI S = 1 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si négatif. |
| BNE | BNE disp | REL | 2 | 026h | 4 | - | - | - | - | - | - | SI Z = 0 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si n'est pas égale à 0. |
| BPL | BPL disp | REL | 2 | 02Ah | 4 | - | - | - | - | - | - | SI S = 0 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si positif. |
| BRA | BRA disp | REL | 2 | 020h | 4 | - | - | - | - | - | - | [PC] ← [PC] + disp + 2 | Cette instruction permet d'effectuer un branchement inconditionnel relatif au contenu du registre PC (Program Counter). |
| BSR | BSR disp | REL | 2 | 08Dh | 8 | - | - | - | - | - | - | [[SP]] ← [PC(LO)], [[SP] - 1] ← [PC(HI)], [SP] ← [SP] - 2, [PC] ← [PC] + disp + 2 |
Cette instruction permet d'effectuer un branchement inconditionnel à la sous-routine situé relativement au contenu du registre PC (Program Counter). |
| BVC | BVC disp | REL | 2 | 028h | 4 | - | - | - | - | - | - | SI O = 0 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si le drapeau de débordement est effacé. |
| BVS | BVS disp | REL | 2 | 029h | 4 | - | - | - | - | - | - | SI O = 1 ALORS [PC] ← [PC] + disp + 2 FIN SI |
Cette instruction permet d'effectuer un branchement si le drapeau de débordement est fixé. |
| CBA | CBA | INH | 1 | 011h | 2 | x | x | x | x | - | - | [A] - [B] | Cette instruction permet de comparer le contenu des registres accumulateurs A et B. |
| CLC | CLC | INH | 1 | 00Ch | 2 | 0 | - | - | - | - | - | C ← 0 | Cette instruction permet d'effacer le drapeau de retenue. |
| CLI | CLI | INH | 1 | 00Eh | 2 | - | - | - | - | - | 0 | I ← 0 | Cette instruction permet d'effacer le drapeau d'interruption et active les interruptions. |
| CLR | CLR A | ACC | 1 | 04Fh | 2 | 0 | 1 | 0 | 0 | - | - | [A] ← 0 | Cette instruction permet d'effacer l'opérande. |
| CLR B | ACC | 1 | 05Fh | 2 | [B] ← 0 | ||||||||
| CLR data8,X | IDX | 2 | 06Fh | 7 | [data8 + [X]] ← 0 | Cette instruction permet d'effacer l'emplacement mémoire. | |||||||
| CLR addr16 | EXT | 3 | 07Fh | 6 | [addr16] ← 0 | ||||||||
| CLV | CLV | INH | 1 | 00Ah | 2 | - | - | - | 0 | - | - | O ← 0 | Cette instruction permet d'effacer le drapeau de débordement. |
| CMP | CMP A #data8 | IMM | 2 | 081h | 2 | x | x | x | x | - | - | [A] - data8 | Cette instruction permet de comparer le contenu de la mémoire et de l'accumulateur. |
| CMP A addr8 | DIR | 2 | 091h | 3 | [A] - [addr8] | ||||||||
| CMP A data8,X | IDX | 2 | 0A1h | 5 | [A] - [data8 + [X]] | ||||||||
| CMP A addr16 | EXT | 3 | 0B1h | 4 | [A] - [addr16] | ||||||||
| CMP B #data8 | IMM | 2 | 0C1h | 2 | [B] - data8 | ||||||||
| CMP B addr8 | DIR | 2 | 0D1h | 3 | [B] - [addr8] | ||||||||
| CMP B data8,X | IDX | 2 | 0E1h | 5 | [B] - [data8 + [X]] | ||||||||
| CMP B addr16 | EXT | 3 | 0F1h | 4 | [B] - [addr16] | ||||||||
| COM | COM A | ACC | 1 | 043h | 2 | 1 | x | x | 0 | - | - | [A] ← 0FFh - [A] | Cette instruction permet de calculer le complément de l'opérande. |
| COM B | ACC | 1 | 053h | 2 | [B] ← 0FFh - [B] | ||||||||
| COM data8,X | IDX | 2 | 063h | 7 | [data8 + [X]] ← 0FFh - [data8 + [X]] | Cette instruction permet de calculer le complément de l'emplacement mémoire. | |||||||
| COM addr16 | EXT | 3 | 073h | 6 | [addr16] ← 0FFh - [addr16] | ||||||||
| CPX | CPX addr8 | DIR | 2 | 09Ch | 4 | - | x | x | x | - | - | [X(HI)] - [addr8], [X(LO)] - [addr8 + 1] |
Cette instruction permet de comparer le contenu de la mémoire avec le registre d'index X. |
| CPX data8,X | IDX | 2 | 0ACh | 6 | [X(HI)] - [data8 + [X]], [X(LO)] - [data8 + [X] + 1] |
||||||||
| CPX #data16 | IMM | 3 | 08Ch | 3 | [X(HI)] - data16(HI), [X(LO)] - data16(LO) |
||||||||
| CPX addr16 | EXT | 3 | 0BCh | 5 | [X(HI)] - [addr16(HI)], [X(LO)] - [addr16(LO)] |
||||||||
| DAA | DAA | INH | 1 | 019h | 2 | x | x | x | x | - | - | Cette instruction permet d'effectuer l'ajustement décimal du registre accumulateur A. | |
| DEC | DEC A | ACC | 1 | 04Ah | 2 | - | x | x | x | - | - | [A] ← [A] - 1 | Cette instruction permet de décrémenter une opérande. |
| DEC B | ACC | 1 | 05Ah | 2 | [B] ← [B] - 1 | ||||||||
| DEC data8,X | IDX | 2 | 06Ah | 7 | [data8 + [X]] ← [data8 + [X]] - 1 | Cette instruction permet de décrémenter un emplacement mémoire | |||||||
| DEC addr16 | EXT | 3 | 07Ah | 6 | [addr16] ← [addr16] - 1 | ||||||||
| DES | DES | INH | 1 | 034h | 4 | - | - | - | - | - | - | [SP] ← [SP] - 1 | Cette instruction permet de décrémenter le pointeur de pile. |
| DEX | DEX | INH | 1 | 009h | 4 | - | x | - | - | - | - | [X] ← [X] - 1 | Cette instruction permet de décrémenter le registre d'index X. |
| EOR | EOR A #data8 | IMM | 2 | 088h | 2 | - | x | x | 0 | - | - | [A] ← [A] XOR data8 | Cette instruction permet d'effectuer un «Ou exclusif binaire» d'un accumulateur avec le contenu de la mémoire. |
| EOR A addr8 | DIR | 2 | 098h | 3 | [A] ← [A] XOR [addr8] | ||||||||
| EOR A data8,X | IDX | 2 | 0A8h | 5 | [A] ← [A] XOR [data8 + [X]] | ||||||||
| EOR A addr16 | EXT | 3 | $B8 | 4 | [A] ← [A] XOR [addr16] | ||||||||
| EOR B #data8 | IMM | 2 | 0C8h | 2 | [B] ← [B] XOR data8 | ||||||||
| EOR B addr8 | DIR | 2 | 0D8h | 3 | [B] ← [B] XOR [addr8] | ||||||||
| EOR B data8,X | IDX | 2 | 0E8h | 5 | [B] ← [B] XOR [data8 + [X]] | ||||||||
| EOR B addr16 | EXT | 3 | 0F8h | 4 | [B] ← [B] XOR [addr16] | ||||||||
| INC | INC A | ACC | 1 | 04Ch | 2 | - | x | x | x | - | - | [A] ← [A] + 1 | Cette instruction permet d'incrémenter une opérande. |
| INC B | ACC | 1 | 05Ch | 2 | [B] ← [B] + 1 | ||||||||
| INC data8,X | IDX | 2 | 06Ch | 7 | [data8 + [X]] ← [data8 + [X]] + 1 | Cette instruction permet d'incrémenter l'emplacement mémoire. | |||||||
| INC addr16 | EXT | 3 | 07Ch | 6 | [addr16] ← [addr16] + 1 | ||||||||
| INS | INS | INH | 1 | 031h | 4 | - | - | - | - | - | - | [SP] ← [SP] + 1 | Cette instruction permet d'incrémenter le pointeur de pile. |
| INX | INX | INH | 1 | 008h | 4 | - | x | - | - | - | - | [X] ← [X] + 1 | Cette instruction permet d'incrémenter le registre d'index X. |
| JMP | JMP data8,X | IDX | 2 | 06Eh | 4 | - | - | - | - | - | - | [PC] ← data8 + [X] | Cette instruction permet de faire un branchement inconditionnel. |
| JMP addr16 | EXT | 3 | 07Eh | 3 | [PC] ← addr16 | ||||||||
| JSR | JSR data8,X | IDX | 2 | 0ADh | 8 | - | - | - | - | - | - | [[SP]] ← [PC(LO)], [[SP] - 1] ← [PC(HI)], [SP] ← [SP] - 2, [PC] ← data8 + [X] |
Cette instruction permet de faire un saut à une sous-routine. |
| JSR addr16 | EXT | 3 | 0BDh | 9 | [[SP]] ← [PC(LO)], [[SP] - 1] ← [PC(HI)], [SP] ← [SP] - 2, [PC] ← addr16 |
||||||||
| LDA | LDA A #data8 | IMM | 2 | 086h | 2 | - | x | x | 0 | - | - | [A] ← data8 | Cette instruction permet de charger l'accumulateur en mémoire. |
| LDA A addr8 | DIR | 2 | 096h | 3 | [A] ← [addr8] | ||||||||
| LDA A data8,X | IDX | 2 | 0A6h | 5 | [A] ← [data8 + [X]] | ||||||||
| LDA A addr16 | EXT | 3 | 0B6h | 4 | [A] ← [addr16] | ||||||||
| LDA B #data8 | IMM | 2 | 0C6h | 2 | [B] ← data8 | ||||||||
| LDA B addr8 | DIR | 2 | 0D6h | 3 | [B] ← [addr8] | ||||||||
| LDA B data8,X | IDX | 2 | 0E6h | 5 | [B] ← [data8 + [X]] | ||||||||
| LDA B addr16 | EXT | 3 | 0F6h | 4 | [B] ← [addr16] | ||||||||
| LDS | LDS addr8 | DIR | 2 | 09Eh | 4 | - | x | x | 0 | - | - | [SP(HI)] ← [addr8], [SP(LO)] ← [addr8 + 1] |
Cette instruction permet de charger le pointeur de pile. |
| LDS data8,X | IDX | 2 | 0AEh | 6 | [SP(HI)] ← [data8 + [X]], [SP(LO)] ← [data8 + [X] + 1] |
||||||||
| LDS #data16 | IMM | 3 | 08Eh | 3 | [SP(HI)] ← data16(HI), [SP(LO)] ← data16(LO) |
||||||||
| LDS addr16 | EXT | 3 | 0BEh | 5 | [SP(HI)] ← [addr16(HI)], [SP(LO)] ← [addr16(LO)] |
||||||||
| LDX | LDX addr8 | DIR | 2 | 0DEh | 4 | - | x | x | 0 | - | - | [X(HI)] ← [addr8], [X(LO)] ← [addr8 + 1] |
Cette instruction permet de charger le registre d'index. |
| LDX data8,X | IDX | 2 | 0EEh | 6 | [X(HI)] ← [data8 + [X]], [X(LO)] ← [data8 + [X] + 1] |
||||||||
| LDX #data16 | IMM | 3 | 0CEh | 3 | [X(HI)] ← data16(HI), [X(LO)] ← data16(LO) |
||||||||
| LDX addr16 | EXT | 3 | 0FEh | 5 | [X(HI)] ← [addr16(HI)], [X(LO)] ← [addr16(LO)] |
||||||||
| LSR | LSR A | ACC | 1 | 044h | 2 | x | x | 0 | x | - | - | Cette instruction permet d'effectuer un décalage logique vers la gauche et le bit 7 est fixé à 0. | |
| LSR B | ACC | 1 | 054h | 2 | |||||||||
| LSR data8,X | IDX | 2 | 064h | 7 | |||||||||
| LSR addr16 | EXT | 3 | 074h | 6 | |||||||||
| NEG | NEG A | ACC | 1 | 040h | 2 | x | x | x | x | - | - | [A] ← 0 - [A] | Cette instruction permet d'effectuer une négation de l'opérande. |
| NEG B | ACC | 1 | 050h | 2 | [B] ← 0 - [B] | ||||||||
| NEG data8,X | IDX | 2 | 060h | 7 | [data8 + [X]] ← 0 - [data8 + [X]] | Cette instruction permet d'effectuer une négation de l'emplacement mémoire. | |||||||
| NEG addr16 | EXT | 3 | 070h | 6 | [addr16] ← 0 - [addr16] | ||||||||
| NOP | NOP | INH | 1 | 001h | 2 | - | - | - | - | - | - | Cette instruction ne fait pas d'opération. | |
| ORA | ORA A #data8 | IMM | 2 | 08Ah | 2 | - | x | x | 0 | - | - | [A] ← [A] U data8 | Cette instruction permet d'effectuer un «Ou binaire» d'un accumulateur avec le contenu de la mémoire. |
| ORA A addr8 | DIR | 2 | 09Ah | 3 | [A] ← [A] U [addr8] | ||||||||
| ORA A data8,X | IDX | 2 | 0AAh | 5 | [A] ← [A] U [data8 + [X]] | ||||||||
| ORA A addr16 | EXT | 3 | 0BAh | 4 | [A] ← [A] U [addr16] | ||||||||
| ORA B #data8 | IMM | 2 | 0CAh | 2 | [B] ← [B] U data8 | ||||||||
| ORA B addr8 | DIR | 2 | 0DAh | 3 | [B] ← [B] U [addr8] | ||||||||
| ORA B data8,X | IDX | 2 | 0EAh | 5 | [B] ← [B] U [data8 + [X]] | ||||||||
| ORA B addr16 | EXT | 3 | 0FAh | 4 | [B] ← [B] U [addr16] | ||||||||
| PSH | PSH A | ACC | 1 | 036h | 4 | - | - | - | - | - | - | [[SP]] ← [A], [SP] ← [SP] - 1 | Cette instruction permet d'empiler l'accumulateur dans la pile. |
| PSH B | ACC | 1 | 037h | 4 | [[SP]] ← [B], [SP] ← [SP] - 1 |
||||||||
| PUL | PUL A | ACC | 1 | 032h | 4 | - | - | - | - | - | - | [SP] ← [SP] + 1, [A] ← [[SP]] | Cette instruction permet de dépiler des données de la pile vers l'accumulateur. |
| PUL B | ACC | 1 | 033h | 4 | [SP] ← [SP] + 1, [B] ← [[SP]] |
||||||||
| ROL | ROL A | ACC | 1 | 049h | 2 | x | x | x | x | - | - | Cette instruction permet d'effectuer une rotation vers la gauche dans le bit de retenue. | |
| ROL B | ACC | 1 | 059h | 2 | |||||||||
| ROL data8,X | IDX | 2 | 069h | 7 | |||||||||
| ROL addr16 | EXT | 3 | 079h | 6 | |||||||||
| ROR | ROR A | ACC | 1 | 046h | 2 | x | x | x | x | - | - | Cette instruction permet d'effectuer une rotation vers la droite dans le bit de retenue. | |
| ROR B | ACC | 1 | 056h | 2 | |||||||||
| ROR data8,X | IDX | 2 | 066h | 7 | |||||||||
| ROR addr16 | EXT | 3 | 076h | 6 | |||||||||
| RTI | RTI | INH | 1 | 03Bh | 10 | x | x | x | x | x | x | [SR] ← [[SP] + 1], [B] ← [[SP] + 2], [A] ← [[SP] + 3], [X(HI)] ← [[SP] + 4], [X(LO)] ← [[SP] + 5], [PC(HI)] ← [[SP] + 6], [PC(LO)] ← [[SP] + 7], [SP] ← [SP] + 7 |
Cette instruction permet de retourner d'une interruption. |
| RTS | RTS | INH | 1 | 039h | 5 | - | - | - | - | - | - | [PC(HI)] ← [[SP] + 1], [PC(LO)] ← [[SP] + 2], [SP] ← [SP] + 2 |
Cette instruction permet de retourner d'une sous-routine. |
| SBA | SBA | INH | 1 | 010h | 2 | x | x | x | x | - | - | [A] ← [A] - [B] | Cette instruction permet de soustraire le contenu de l'accumulateur B de l'accumulateur A. |
| SBC | SBC A #data8 | IMM | 2 | 082h | 2 | x | x | x | x | - | - | [A] ← [A] - data8 - C | Cette instruction permet de soustraire le contenu de la mémoire et du drapeau de retenue de l'accumulateur. |
| SBC A addr8 | DIR | 2 | 092h | 3 | [A] ← [A] - [addr8] - C | ||||||||
| SBC A data8,X | IDX | 2 | 0A2h | 5 | [A] ← [A] - [data8 + [X]] - C | ||||||||
| SBC A addr16 | EXT | 3 | 0B2h | 4 | [A] ← [A] - [addr16] - C | ||||||||
| SBC B #data8 | IMM | 2 | 0C2h | 2 | [B] ← [B] - data8 - C | ||||||||
| SBC B addr8 | DIR | 2 | 0D2h | 3 | [B] ← [B] - [addr8] - C | ||||||||
| SBC B data8,X | IDX | 2 | 0E2h | 5 | [B] ← [B] - [data8 + [X]] - C | ||||||||
| SBC B addr16 | EXT | 3 | 0F2h | 4 | [B] ← [B] - [addr16] - C | ||||||||
| SEC | SEC | INH | 1 | 00Dh | 2 | 1 | - | - | - | - | - | C ← 1 | Cette instruction permet de fixer le drapeau de retenue. |
| SEI | SEI | INH | 1 | 00Fh | 2 | - | - | - | - | - | 1 | I ← 1 | Cette instruction permet de fixer le drapeau d'interruption et désactive les interruptions. |
| SEV | SEV | INH | 1 | 00Bh | 2 | - | - | - | 1 | - | - | O ← 1 | Cette instruction permet de fixer le drapeau de débordement. |
| STA | STA A addr8 | DIR | 2 | 097h | 4 | - | x | x | 0 | - | - | [addr8] ← [A] | Cette instruction permet d'entreposer l'accumulateur en mémoire. |
| STA A data8,X | IDX | 2 | 0A7h | 6 | [data8 + [X]] ← [A] | ||||||||
| STA A addr16 | EXT | 3 | 0B7h | 5 | [addr16] ← [A] | ||||||||
| STA B addr8 | DIR | 2 | 0D7h | 4 | [addr8] ← [B] | ||||||||
| STA B data8,X | IDX | 2 | 0E7h | 6 | [data8 + [X]] ← [B] | ||||||||
| STA B addr16 | EXT | 3 | 0F7h | 5 | [addr16] ← [B] | ||||||||
| STS | STS addr8 | DIR | 2 | 09Fh | 5 | - | x | x | 0 | - | - | [addr8] ← [SP(HI)], [addr8 + 1] ← [SP(LO)] |
Cette instruction permet d'entreposer le pointeur de pile. |
| STS data8,X | IDX | 2 | 0AFh | 7 | [data8 + [X]] ← [SP(HI)], [data8 + [X] + 1] ← [SP(LO)] |
||||||||
| STS addr16 | EXT | 3 | 0BFh | 6 | [addr16(HI)] ← [SP(HI)], [addr16(LO)] ← [SP(LO)] |
||||||||
| STX | STX addr8 | DIR | 2 | 0DFh | 5 | - | x | x | 0 | - | - | [addr8] ← [X(HI)], [addr8 + 1] ← [X(LO)] |
Cette instruction permet d'entreposer le registre d'index X. |
| STX data8,X | IDX | 2 | 0EFh | 7 | [data8 + [X]] ← [X(HI)], [data8 + [X] + 1] ← [X(LO)] |
||||||||
| STX addr16 | EXT | 3 | 0FFh | 6 | [addr16(HI)] ← [X(HI)], [addr16(LO)] ← [X(LO)] |
||||||||
| SUB | SUB A #data8 | IMM | 2 | 080h | 2 | x | x | x | x | - | - | [A] ← [A] - data8 | Cette instruction permet de soustraire le contenu de la mémoire de l'accumulateur. |
| SUB A addr8 | DIR | 2 | 090h | 3 | [A] ← [A] - [addr8] | ||||||||
| SUB A data8,X | IDX | 2 | 0A0h | 5 | [A] ← [A] - [data8 + [X]] | ||||||||
| SUB A addr16 | EXT | 3 | 0B0h | 4 | [A] ← [A] - [addr16] | ||||||||
| SUB B #data8 | IMM | 2 | 0C0h | 2 | [B] ← [B] - data8 | ||||||||
| SUB B addr8 | DIR | 2 | 0D0h | 3 | [B] ← [B] - [addr8] | ||||||||
| SUB B data8,X | IDX | 2 | 0E0h | 5 | [B] ← [B] - [data8 + [X]] | ||||||||
| SUB B addr16 | EXT | 3 | 0F0h | 4 | [B] ← [B] - [addr16] | ||||||||
| SWI | SWI | INH | 1 | 03Fh | 12 | - | - | - | - | - | 1 | [[SP]] ← [PC(LO)], [[SP] - 1] ← [PC(HI)], [[SP] - 2] ← [X(LO)], [[SP] - 3] ← [X(HI)], [[SP] - 4] ← [A], [[SP] - 5] ← [B], [[SP] - 6] ← [SR], [SP] ← [SP] - 7, [PC(HI)] ← [$FFFA], [PC(LO)] ← [$FFFB] |
Cette instruction permet d'effectuer une interruption logiciel, soit d'empiler les registres sur la pile, de décrémenter le pointeur de pile et de sauter à la sous-routine d'interruption. |
| TAB | TAB | INH | 1 | 016h | 2 | - | x | x | 0 | - | - | [B] ← [A] | Cette instruction permet de transférer le registre A vers registre B. |
| TAP | TAP | INH | 1 | 006h | 2 | x | x | x | x | x | - | [SR] ← [A] | Cette instruction permet de transférer le registre A vers le registre d'état. |
| TBA | TBA | INH | 1 | 017h | 2 | - | x | x | 0 | - | - | [A] ← [B] | Cette instruction permet de transférer le registre B vers registre A. |
| TPA | TPA | INH | 1 | 007h | 2 | - | - | - | - | - | - | [A] ← [SR] | Cette instruction permet de transférer le registre d'état vers le registre A. |
| TST | TST A | ACC | 1 | 04Dh | 2 | 0 | x | x | 0 | - | - | [A] - 0 | Cette instruction permet d'effectuer un test de l'opérande. |
| TST B | ACC | 1 | 05Dh | 2 | [B] - 0 | ||||||||
| TST data8,X | IDX | 2 | 06Dh | 7 | [data8 + [X]] - 0 | Cette instruction permet d'effectuer un test de l'emplacement mémoire. | |||||||
| TST addr16 | EXT | 3 | 07Dh | 6 | [addr16] - 0 | ||||||||
| TSX | TSX | INH | 1 | 030h | 4 | - | - | - | - | - | - | [X] ← [SP] + 1 | Cette instruction permet de copier le contenu du pointeur de pile vers le registre d'index et de l'incrémenter. |
| TXS | TXS | INH | 1 | 035h | 4 | - | - | - | - | - | - | [SP] ← [X] - 1 | Cette instruction permet de copier le contenu du registre d'index vers le pointeur de pile et de le décrémenter. |
| WAI | WAI | INH | 1 | 03Eh | 9 | - | - | - | - | - | 1 | [[SP]] ← [PC(LO)], [[SP] - 1] ← [PC(HI)], [[SP] - 2] ← [X(LO)], [[SP] - 3] ← [X(HI)], [[SP] - 4] ← [A], [[SP] - 5] ← [B], [[SP] - 6] ← [SR], [SP] ← [SP] - 7 |
Cette instruction permet d'empiler les registres dans la pile, de décrémenter le pointeur de pile et d'attendre après une interruption. |
Dernière mise à jour : Mardi, le 24 juillet 2018