You are on page 1of 3

Tableau – 1 

: Jeu d’instructions de 6809


Modes d’adressages
5 3 2 1 0
Immédiat Direct Indexé étendu inhérent
Instr. Formes Descriptions
Op. ~ # Op. ~ # Op. ~ # Op. ~ # Op. ~ # H N Z V C
ABX 3A 3 1 B + X  X ( non signé ) * * * * *
ADC ADCA 89 2 2 99 4 2 A9 4+ 2+ B9 5 3 A+M+C A t t t t t
ADCB C9 2 2 D9 4 2 E9 4+ 2+ F9 5 3 B+M+CB t t t t t
ADD ADDA 8B 2 2 9B 4 2 AB 4+ 2+ BB 5 3 A+MA t t t t t
ADDB CB 2 2 DB 4 2 EB 4+ 2+ FB 5 3 B+MB t t t t t
ADDD C3 4 3 D3 6 2 E3 6+ 2+ F3 7 3 D + M: M+1  D * t t t t
AND ANDA 84 2 2 94 4 2 A4 4+ 2+ B4 5 3 A^MA * t t 0 *
ANDB C4 2 2 D4 4 2 E4 4+ 2+ F4 5 3 B^MB * t t 0 *
ANDCC 1C 3 2 CC ^ IMM  CC 7
ASL ASLA 48 2 1 8 t t t t
}}
AA
ASLB 58 2 1 C C b7 b7 b0 b0 8 t t t t
BB 0 0
ASL 08 6 2 68 6+ 2+ 78 7 3 M 8 t t t t
M
ASR ASRA 47 2 1 A 8 t t * t
} b7 b7 b0 b0 C C
ASRB 57 2 1 B 8 t t * t
ASR 07 6 2 67 6+ 2+ 77 7 3 M 8 t t * t
BIT BITA 85 2 2 95 4 2 A5 4+ 2+ B5 5 3 Bit test A ( M ^ A ) * t t 0 *
BITB C5 2 2 D5 4 2 E5 4+ 2+ F5 5 3 Bit test B ( M ^ B ) * t t 0 *
CLR CLRA 4F 2 1 0A * 0 1 0 0
CLRB 5F 2 1 0B * 0 1 0 0
CLR 0F 6 2 6F 6+ 2+ 7F 7 3 0M * 0 1 0 0
CMP CMPA 81 2 2 91 4 2 A1 4+ 2+ B1 5 3 Compare M avec A 8 t t t t
CMPB C1 2 2 D1 4 2 E1 4+ 2+ F1 5 3 Compare M avec B 8 t t t t
CMPD 10 83 5 4 10 93 7 3 10 A3 7+ 3+ 10 B3 8 4 Compare M : M+1 avec D * t t t t
CMPS 11 8C 5 4 11 9C 7 3 11AC 7+ 3+ 11 BC 8 4 Compare M : M+1 avec S * t t t t
CMPU 11 83 5 4 11 93 7 3 11 A3 7+ 3+ 11 B3 8 4 Compare M : M+1 avec U * t t t t
CMPX 8C 4 3 9C 6 2 AC 6+ 2+ BC 7 3 Compare M : M+1 avec X * t t t t
CMPY 10 8C 5 4 10 9C 7 3 10AC 7+ 3+ 10 BC 8 4 Compare M : M+1 avec Y * t t t t
COM COMA 43 2 1 Complément A  A * t t 0 1
COMB 53 2 1 Complément B  B * t t 0 1
COM 03 6 2 63 6+ 2+ 73 7 3 Complément M  M * t t 0 1
CWAI 3C ≥20 2 CC ^ IMM  CC 7
DAA 19 2 1 Ajustement décimal de A * t t 0 t
DEC DECA 4A 2 1 A–1A * t t t *
DECB 5A 2 1 B–1B * t t t *
DEC 0A 6 2 6A 6+ 2+ 7A 7 3 M–1M * t t t *
EOR EORA 88 2 2 98 4 2 A8 4+ 2+ B8 5 3 A MA * t t 0 *
EORB C8 2 2 D8 4 2 E8 4+ 2+ F8 5 3 B MB * t t 0 *
EXG R1 , R2 1E 8 2 R1  R2 (2) * * * * *
INC INCA 4C 2 1 A+1A * t t t *
INCB 5C 2 1 B+1B * t t t *
INC 0C 6 2 6C 6+ 2+ 7C 7 3 M+1M * t t t *
JMP 0E 3 2 6E 3+ 2+ 7E 4 3 AE  PC (3) * * * * *
JSR 9D 7 2 AD 7+ 2+ BD 8 3 Appel de sous programme * * * * *
LD LDA 86 2 2 96 4 2 A6 4+ 2+ B6 5 3 MA * t t 0 *
LDB C6 2 2 D6 4 2 E6 4+ 2+ F6 5 3 MB * t t 0 *
LDD CC 3 3 DC 5 2 EC 5+ 2+ FC 6 3 M : M+1  D * t t 0 *
LDS 10 CE 4 4 10 DE 6 3 10 EE 6+ 3+ 10 FE 7 4 M : M+1  S * t t 0 *
LDU CE 3 3 DE 5 2 EE 5+ 2+ FE 6 3 M : M+1  U * t t 0 *
LDX 8E 3 3 9E 5 2 AE 5+ 2+ BE 6 3 M : M+1  X * t t 0 *
LDY 10 8E 4 4 10 9E 6 3 10 AE 6+ 3+ 10 BE 7 4 M : M+1  Y * t t 0 *
LEA LEAS 32 4+ 2+ AE  S (3) * * * * *
LEAU 33 4+ 2+ AE  U (3) * * * * *
LEAX 30 4+ 2+ AE  X (3) * * t * *
LEAY 31 4+ 2+ AE  Y (3) * * t * *
LSL LSLA 48 2 1 AA * t t t t
LSLB
LSL 08 6 2 68 6+ 2+ 78 7 3
58 2 1 BB
MM
} CC b7b7 b0b0
00 *
*
t
t
t
t
t
t
t
t

}}
LSR LSRA 44 2 1 AA b7 b0 CC * 0 t * t
LSRB 54 2 1 BB 00 * 0 t * t
LSR 04 6 2 64 6+ 2+ 74 7 3 MM * 0 t * t
MUL 3D 11 1 A x B  D ( non signé ) * * t * 9
NEG NEGA 40 2 1 (Compl. A ) + 1  A 8 t t t t
NEGB 50 2 1 (Compl. B ) + 1  B 8 t t t t
NEG 00 6 2 60 6+ 2+ 70 7 3 (Compl. M ) + 1  M 8 t t t t
NOP 12 2 1 Aucune opération ( No operation ) * * * * *
OR ORA 8A 2 2 9A 4 2 AA 4+ 2+ BA 5 3 AvMA * t t 0 *
ORB CA 2 2 DA 4 2 EA 4+ 2+ FA 5 3 BvMB * t t 0 *
ORCC 1A 3 2 CC v IMM  CC 7
4
PSH PSHS 34 5+ 2 Sauvgarde les registres dans la pile S * * * * *
4
PSHU 36 5+ 2 Sauvgarde les registres dans la pile U * * * * *
4
PUL PULS 35 5+ 2 Restore les registres de la pile S * * * * *
PULU 37 5+ 4
2 RestoreCles registres de la pile U * * * * *
ROL ROLA
ROLB
49
59
2
2
1
1
A
B
M
} C b7

b7
b0

b0
*
*
t
t
t
t
t
t
t
t

ROR
ROL
RORA
RORB
09 6 2 69 6+ 2+ 79 7 3
46
56
2
2
1
1
A
B
M
} C b7 b0 *
*
*
t
t
t
t
t
t
t
*
*
t
t
t
ROR 06 6 2 66 6+ 2+ 76 7 3 * t t * t
RTI 3B 6/15 1 Retour de sous programme d’interruption 7
RTS 39 5 1 Retour de sous programme * * * * *
SBC SBCA 82 2 2 92 4 2 A2 4+ 2+ B2 5 3 A–M–CA 8 t t t t
SBCB C2 2 2 D2 4 2 E2 4+ 2+ F2 5 3 B–M–CB 8 t t t t
SEX 1D 2 1 ( B signé )  D ( sign extend B into D ) * t t 0 t
ST STA 97 4 2 A7 4+ 2+ B7 5 3 AM * t t 0 *
STB D7 4 2 E7 4+ 2+ F7 5 3 BM * t t 0 *
STD DD 5 2 ED 5+ 2+ FD 6 3 D  M : M+1 * t t 0 *
STS 10 DF 6 3 10 EF 6+ 3+ 10 FF 7 4 S  M : M+1 * t t 0 *
STU DF 5 2 EF 5+ 2+ FF 6 3 U  M : M+1 * t t 0 *
STX 9F 5 2 AF 5+ 2+ BF 6 3 X  M : M+1 * t t 0 *
STY 10 9F 6 3 10 AF 6+ 3+ 10 BF 7 4 Y  M : M+1 * t t 0 *
SUB SUBA 80 2 2 90 4 2 A0 4+ 2+ B0 5 3 A–MA 8 t t t t
SUBB C0 2 2 D0 4 2 E0 4+ 2+ F0 5 3 B–MB 8 t t t t
SUBD 83 4 3 93 6 2 A3 6+ 2+ B3 7 3 D – M : M+1  D * t t t t
6
SWI SWI 3F 19 1 Interruption logicielle 1 * * * * *
6
SWI2 10 3F 20 2 Interruption logicielle 2 * * * * *
6
SWI3 11 3F 20 1 Interruption logicielle 3 * * * * *
SYNC 13 ≥4 1 Synchronisation de l’interruption * * * * *
TFR R1 , R2 1F 6 2 R1  R2 ( R1,R2 registres 8 ou 16 bits ) * * * * *
TST TSTA 4D 2 1 Test A * t t 0 *
TSTB 5D 2 1 Test B * t t 0 *
TST 0D 6 2 6D 6+ 2+ 7D 7 3 Test M * t t 0 *
Instructions de branchements de 6809, qui utilisent le mode d’adressage relatif
Notes :
Instruc.FormesModes d’adressages relatifDescriptions53210Op.~#HNZVCBCCBCC2432Branchement si C = 0*****LBCC10
245(6)4Longue branchement si C = 0*****BCSBCS2532Branchement si C = 1*****LBCS10 255(6)4Longue branchement si C = Op. Code opération ( Hexadécimal ).
1*****BEQBEQ2732Branchement si Z = 1*****LBEQ10 275(6)4Longue branchement si Z = 1*****BGEBGE2C32Branchement si ~ Nombre de cycles.
résult. ≥ 0 ( si N  V = 0 )*****LBGE10 2C5(6)4Longue branchement si résult. ≥ 0 ( si N  V = 0 ) # Nombre d’octets.
*****BGTBGT2E32Branchement si résult. > 0 ( si Z ^ [ N  V ] = 0 )*****LBGT10 2E5(6)4Longue branchement si résult. > 0 ( si Z ^ AND ( ET logique ).
^ [ N  V ] = 0 )*****BHIBHI2232Branchement si résult. > 0 ( si C v Z = 0 )*****LBHI10 225(6)4Longue branchement si résult. > v OR ( OU logique ).
0 (si C v Z = 0 )*****BHSBHS2432Branchement si résult. ≥ 0 ( si C = 0 )*****LBHS10 245(6)4Longue branchement si résult. ≥ 0  XOR ( OU exclusif ).
( si C = 0 )*****BLEBLE2F32Branchement si résult. ≤ 0 ( si Z v [ N  V ] = 1 )*****LBLE10 2F5(6)4Longue branchement si : Concaténation.
résult. ≤ 0 ( si Z v [ N  V ] = 1)*****BLOBLO2532Branchement si résult. < 0 ( si C = 1 )*****LBLO10 255(6)4Longue  Non affecté.
branchement si résult. < 0 ( si C = 1 )*****BLSBLS2332Branchement si résult. ≤ 0 ( si C v Z = 1 )*****LBLS10 235(6)4Longue  Transfert vers .
branchement si résult. ≤ 0 (si C v Z = 1 )*****BLTBLT2D32Branchement si résult. < 0 ( si N  V = 1 )*****LBLT10  Echange
2D5(6)4Longue branchement si résult. < 0 ( si N  V = 1 )*****BMIBMI2B32Branchement si N = 1*****LBMI10 2B5(6)4Longue CC Registre code condition.
branchement si N = 1*****BNEBNE2632Branchement si Z = 0*****LBNE10 265(6)4Longue branchement si Z = M Donnée en mémoire ou immédiate.
0*****BPLBPL2A22Branchement si N = 0*****LBPL10 2A5(6)4Longue branchement si N = 0*****BRABRA2032Branchement t Mise à 1 si vrai , mise à 0 si faux.
inconditionnel*****LBRA1653Longue branchement inconditionnel*****BRNBRN2132Branchement nul part ( équivalent à NOP )
*****LBRN10 2154Longue branchement nul part ( équivalent à NOP )*****BSRBSR8D72Branchement au sous E Bit d’état de sauvegarde des registres dans la pile.
programme*****LBSR1793Longue branchement au sous programme*****BVCBVC2832Branchement si V = 0*****LBVC10 F Bit de masquage de l’interruption FIRQ.
285(6)4Longue branchement si V = 0*****BVSBVS2932Branchement si V = 1*****LBVS10 295(6)4Longue branchement si V = H Bit de demi retenue ( Half carry ).
1***** I Bit de masquage de l’interruption IRQ.
N Bit de signe négatif.
Z Bit indiquant un résultat nul.
V Bit indiquant un dépassement ( Overflow ).
C Bit de retenue ( Carry ).

2 R1 et R2 sont 2 registres de 8 bits tels que A, B, CC, DP


ou 2 registres de 16 bits tels que X, Y, U, S, D, PC.
3 EA : adresse effective.
4 Les instructions PSH et PUL durent 5 cycles plus 1 cycle
pour chaque octet sauvegarder ou restaurer .
5 5 cycles si le branchement n’est pas effectué, 6 cycles si
le branchement est effectué .
6 SWI place le bit I et F de CC à 1, SWI2 et SWI3
n’affectent pas I et F .
7 Le contenu de CC est identique au résultat obtenu par
l’instruction .
8 Valeur de H (demi-retenue ) est indéfinie.
9 Le bit C est mis à 1 si le bit b7 est mis à 1.

Registres internes de 6809


b15 b0
Registre indexe X
Registre indexe Y
Pointeur de pile utilisateur U
Pointeur de pile système S
PC
A B
D=A:B
b7 b0
DP
b7 b0
Registre CC ( F ) E F H I N Z V C

Post-octets des instructions qui utilisent le mode d’adressage indexé


Non indirectIndirectTypeFormesSyntaxe
AssembleurPost-octet
Code opération+
~+
#Syntaxe
AssembleurPost-octet
Code opération+
~+
#Déplacement constant à partir de R (signé)Pas de déplacement, R1RR0010000[ , R ]1RR1010030Déplacement 5 bitsn , R0RRnnnnn10Par défaut - 8 bitsDéplacement 8 bitsn ,
R1RR0100011[ n , R ]1RR1100041Déplacement 16 bitsn , R1RR0100142[ n , R ]1RR1100172Accumulateur utilisé comme déplacement pour le registre R ( déplacement signé )
Registre de déplacement AA , R1RR0011010[ A , R ]1RR1011040Registre de déplacement BB , R1RR0010110[ B , R ]1RR1010140Registre de déplacement DD ,
R1RR0101140[ D , R ]1RR1101170Auto incrémentation / décrémentation du
registre RIncrémenté par 1, R+1RR0000020ImpossibleIncrémenté par 2, R + +1RR0000130[ , R + + ]1RR1000160décrémenté par 1, - R1RR0001020Impossibledécrémenté par 2, -
- R1RR0001130[ , - - R ]1RR1001160Déplacement constant à
partir de PCDéplacement 8 bitsn , PCR1XX0110011[ n , PCR ]1XX1110041Déplacement 16 bitsn , PCR1XX0110152[ n , PCR ]1XX1110182Indirect étenduAdresses 16
bits-----------[ n ]1001111152Note : Si R = X  RR = 00 , si R =Y  RR = 01 , si R = U  RR = 10 , si R = S  RR = 11 .

Post-octet des instructions TFR et EXG

b7b6b5b4R2b3b2b1b0R10000D
Le code opération de l’instruction TFR R1 , R2 est constitué de 2 octets, le premier est $1F, le 2ème octet
( A:B ) (post-octet ) est déterminé à partir de tableau ci-contre de la manière suivante :
0001X0010Y0011U0100S0101P Exemple : TFR A, DP ( A  DP )
C1000A1001B1010CC1011DP
R1 ( = A )R2 ( = DP )
b7b6b5b4b3b2b1b0100010118B

Le code opération de l’instruction TFR A, DP est alors : 1F 8B

Remarque : la même opération est effectuée pour déterminer le 2ème octet (post-octet ) de l’instruction EXG
R1 , R2
ECOLE SUP’TEMA 3ème TELECOM

CONTROLE EN MICROPROCESSEUR

1) Exercice 1
on dispose d’une table de 10 données de 8 bits choisies arbitrairement. Proposer un programme de
recherche de la donnée maximale

1.1 / Etablir un algorithme ou un organigramme.


1.2 / Ecrire le programme complet en assembleur

2) Programmation du chenillard :

On considère que nous avons 8 diodes LED connectées sur le port B. L’allumage des
diodes est provoqué par un état ‘1’ sur le bit qui convient du registre ORB.
Le registre DDRB permet d’indiquer le sens de fonctionnement du port. Chacun des
bits peuvent être programmé individuellement. ‘0’ le bit fonctionne en sortie, ‘1’ le bit
fonctionne en entrée.
Le CRB est le registre de contrôle permet d’accéder soit au registre ORB soit au
registre DDRB.
2-1)- compléter le schéma ci-dessus en insérant les diodes
2-2)- Etablir un algorithme permettent l’initialisation du PIA :
2-3)- Etablir un algorithme ou organigramme permettant de faire clignoter toutes les
diodes du port B :
2-4)- Ecrire un sous programme de temporisation appelé DELAI qui permet de
programmer la période de clignotement à 500 ms
2-5)- Ecrire le programme complet en langage assembleur

You might also like