Référence des instructions de l'assembleur du microprocesseur 6800 vue par bloc :
MSB \ LSB | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | NOP (INH) | TAP (INH) | TPA (INH) | INX (INH) | DEX (INH) | CLV (INH) | SEV (INH) | CLC (INH) | SEC (INH) | CLI (INH) | SEI (INH) | |||||
1 | SBA (INH) | CBA (INH) | TAB (INH) | TBA (INH) | DAA (INH) | ABA (ACC) | ||||||||||
2 | BRA REL) | BHI (REL) | BLS (REL) | BCC (REL) | BCS (REL) | BNE (REL) | BEQ (REL) | BVC (REL) | BVS (REL) | BPL (REL) | BMI (REL) | BGE (REL) | BLT (REL) | BGT (REL) | BLE (REL) | |
3 | TSX (INH) | INS (INH) | PUL A (ACC) | PUL B (ACC) | DES (INH) | TXS (INH) | PSH A (ACC) | PSH B (ACC) | RTS (INH) | RTI (INH) | WAI (INH) | SWI (INH) | ||||
4 | NEG A (ACC) | COM A (ACC) | LSR A (ACC) | ROR A (ACC) | ASR A (ACC) | ASL A (ACC) | ROL A (ACC) | DEC A (ACC) | INC A (ACC) | TST A (ACC) | CLR A (ACC) | |||||
5 | NEG B (ACC) | COM B (ACC) | LSR B (ACC) | ROR B (ACC) | ASR B (ACC) | ASL B (ACC) | ROL B (ACC) | DEC B (ACC) | INC B (ACC) | TST B (ACC) | CLR B (ACC) | |||||
6 | NEG (IDX) | COM (IDX) | LSR (IDX) | ROR (IDX) | ASR (IDX) | ASL (IDX) | ROL (IDX) | DEC (IDX) | INC (IDX) | TST (IDX) | JMP (IDX) | CLR (IDX) | ||||
7 | NEG (EXT) | COM (EXT) | LSR (EXT) | ROR (EXT) | ASR (EXT) | ASL (EXT) | ROL (EXT) | DEC (EXT) | INC (EXT) | TST (EXT) | JMP (EXT) | CLR (EXT) | ||||
8 | SUB A (IMM) | CMP A (IMM) | SBC A (IMM) | AND A (IMM) | BIT A (IMM) | LDA A (IMM) | EOR A (IMM) | ADC A (IMM) | ORA A (IMM) | ADD A (IMM) | CPX A (IMM) | BSR (REL) | LDS (IMM) | |||
9 | SUB A (DIR) | CMP A (DIR) | SBC A (DIR) | AND A (DIR) | BIT A (DIR) | LDA A (DIR) | STA A (DIR) | EOR A (DIR) | ADC A (DIR) | ORA A (DIR) | ADD A (DIR) | CPX A (DIR) | LDS (DIR) | STS (DIR) | ||
A | SUB A (IDX) | CMP A (IDX) | SBC A (IDX) | AND A (IDX) | BIT A (IDX) | LDA A (IDX) | STA A (IDX) | EOR A (IDX) | ADC A (IDX) | ORA A (IDX) | ADD A (IDX) | CPX A (IDX) | JSR (IDX) | LDS (IDX) | STS (IDX) | |
B | SUB A (EXT) | CMP A (EXT) | SBC A (EXT) | AND A (EXT) | BIT A (EXT) | LDA A (EXT) | STA A (EXT) | EOR A (EXT) | ADC A (EXT) | ORA A (EXT) | ADD A (EXT) | CPX A (EXT) | JSR (EXT) | LDS (EXT) | STS (EXT) | |
C | SUB B (IMM) | CMP B (IMM) | SBC B (IMM) | AND B (IMM) | BIT B (IMM) | LDA B (IMM) | EOR B (IMM) | ADC B (IMM) | ORA B (IMM) | ADD B (IMM) | LDX (IMM) | |||||
D | SUB B (DIR) | CMP B (DIR) | SBC B (DIR) | AND B (DIR) | BIT B (DIR) | LDA B (DIR) | STA B (DIR) | EOR B (DIR) | ADC B (DIR) | ORA B (DIR) | ADD B (DIR) | LDX (DIR) | STX (DIR) | |||
E | SUB B (IDX) | CMP B (IDX) | SBC B (IDX) | AND B (IDX) | BIT B (IDX) | LDA B (IDX) | STA B (IDX) | EOR B (IDX) | ADC B (IDX) | ORA B (IDX) | ADD B (IDX) | LDX (IDX) | STX (IDX) | |||
F | SUB B (EXT) | CMP B (EXT) | SBC B (EXT) | AND B (EXT) | BIT B (EXT) | LDA B (EXT) | STA B (EXT) | EOR B (EXT) | ADC B (EXT) | ORA B (EXT) | ADD B (EXT) | LDX (EXT) | STX (EXT) |
- ACC - Accumulateur : Dans l'adressage de l'accumulateur, l'accumulateur A ou l'accumulateur B est spécifié. Ce sont des instructions d'un octet. Exemple: ABA ajoute le contenu des accumulateurs et stocke le résultat dans l'accumulateur A.
- IMM - Immédiat : Dans l'adressage immédiat, l'opérande est situé immédiatement après le code opération dans le deuxième octet de l'instruction dans la mémoire programme (sauf LDS et LDX où l'opérande est dans le deuxième et troisième octet de l'instruction). Ce sont des instructions de 2 octets ou de 3 octets. Exemple : LDAA #$16 charge le nombre (16)H dans l'accumulateur A.
- DIR - Direct : En adressage direct, l'adresse de l'opérande est contenue dans le deuxième octet de l'instruction. L'adressage direct permet à l'utilisateur d'adresser directement les 256 octets les plus faibles de la mémoire, à savoir les emplacements 0 à 255. Des temps d'exécution améliorés sont obtenus en entreposant des données à ces emplacements. Ce sont des instructions de 2 octets. Exemple : LDAA $16 charge le contenu de l'adresse mémoire (16)H dans l'accumulateur A.
- EXT - étendu : Dans l'adressage étendu, l'adresse contenue dans le deuxième octet de l'instruction est utilisée comme 8 bits supérieurs de l'adresse de l'opérande. Le troisième octet de l'instruction est utilisé comme 8 bits inférieurs de l'adresse de l'opérande. C'est une adresse absolue dans la mémoire. Ce sont des instructions de 3 octets. Exemple : LDAA $1600 charge le contenu de l'adresse mémoire (1600)H dans l'accumulateur A.
- IDX - Indexé : Dans l'adressage indexé, l'adresse contenue dans le deuxième octet de l'instruction est ajoutée aux 8 bits les plus bas du registre d'index. Le report est ensuite ajouté aux 8 bits supérieurs du registre d'index. Ce résultat est ensuite utilisé pour adresser la mémoire. L'adresse modifiée est conservée dans un registre d'adresses temporaire, de sorte qu'il n'y a pas de changement dans le registre d'index. Ce sont des instructions de 2 octets. Exemple : «LDX #$1600 ou LDAA $16, X». Initialement, l'instruction LDX #1600 charge 1600h dans le registre d'index (X) en utilisant l'adressage immédiat. Ensuite, l'instruction «LDAA $16, X», utilisant l'adressage indexé, charge le contenu de l'adresse mémoire (10)h + X = 1616h dans l'accumulateur A.
- INH - implicite (inhérent) : Dans le mode d'adressage implicite, l'instruction donne l'adresse de manière inhérente (c'est-à-dire un pointeur de pile, un registre d'index,...). Les instructions inhérentes sont utilisées lorsque aucun opérande ne doit pas être récupéré. Ce sont des instructions à 1 octet. Exemple : INX augmente le contenu du registre d'index de 1. Les informations d'adresse sont «inhérentes» à l'instruction même. INCA augmente le contenu de l'accumulateur A de 1. DECB diminue le contenu de l'accumulateur B de 1.
- REL - relative : Le mode d'adressage relatif est utilisé avec la plupart des instructions de branchement sur le microprocesseur 6802. Le premier octet de l'instruction est l'opcode. Le second octet de l'instruction s'appelle le déplacement. Le déplacement est interprété comme un nombre à 7 bits signé. Si le MSB (bit le plus significatif) du déplacement est 0, le nombre est positif, ce qui indique un branchement avant. Si le MSB du déplacement est 1, le nombre est négatif, ce qui indique un branchement en arrière. Cela permet à l'utilisateur d'adresser des données dans une plage de -126 à +129 octets de la présente instruction. Ce sont des instructions de 2 octets.
Dernière mise à jour : Mardi, le 24 juillet 2018