Vous êtes sur la page 1sur 18

Akharraz Hajar M .

Fettah
Benammou Jamila
TP 1 : Programmation du microcontrôleur 68HC11
On a le programme suivant :

ORG $FE00

CLRA

LDAA #$12

STAA $40

LDAA #$34

STAA $41

LDAA $40

ADDA $41

STAA $42

SWI

END

On exécute ce programme puis on remplit le tableau ci-dessous avec


ce qui est obtenu :
Adresse Code machine Code mnémonique Mode Commentaire
d’adressa
Code Code Code Code
ge
opération opérand opération opérande
e
ORG $FE00 Commencer de $FE00

$FE00 4F CLRA INH Effacer l’accumulateur

$FE01 86 12 LDAA #$12 IMM Changer A avec la


valeur $12
$FE03 97 40 STAA $40 DIR Stocker dans l’adresse
$40la valeur $12

$FE05 86 34 LDAA #$34 IMM Changer A avec la


valeur 34
$FE07 97 41 STAA $41 DIR Stocker la valeur 34
dans la case
mémoire$41

$FE09 96 40 LDAA $40 DIR Changer dans A le


contenu de $40

$FE0B 96 41 ADDA $41 DIR Additionner le contenu


de A avec la ($41)

$FE0D 97 42 STAA $42 DIR Stocker dans l’adresse


$42 le contenu de A

$FE0F 3F SWI INH Interrupter le logiciel

END
Les contenues avant et après exécution du programme :

Avant : Après :

($0040)=$FF ($0040)=$12

($0041)=$FF ($0041)=$34

($0042)=$FF ($0042)=$46

La fonction réalisée par le programme est l’addition de deux nombres sans


tenir compte du retenu

On a le programme assembleur suivant :


ORG $FE00

CLR $43

CLRA

LDAA #N1

STAA $40

LDAA #$N2

STAA $41

LDAA $40

ADDA $41

BCC TOTO

INC $43

TOTO: STAA $42

SWI

END
Adresse Code machine ETIQUETTE Code mnémonique Mode Commentaire
d’adressage
Code Code Code Code
opération opérande opération opérande

ORG $FE00

$FE00 7F 00 CLR $43 DIR

$FE03 4F CLRA INH

$FE04 86 11 LDAA #$11 (#$87) IMM

$FE06 97 40 STAA $40 DIR

$FE08 86 22 LDAA #$22 IMM

(#$82)

$FE0A 97 41 STAA $41 DIR

$FE06 96 40 LDAA $40 DIR

$FE0E 98 41 ADDA $41 DIR

$FE10 24 03 TOTO BCC TOTO RELATIF I

$FE12 76 00 INC $43 EXT

$FE15 97 42 STAA $42 DIR

$FE17 3F SWI INH

END
Les contenues avant et après exécution du programme :

Avant : Après :

($0040)=$FF ($0040)=$11

($0041)=$FF ($0041)=$22

($0042)=$FF ($0042)=$33

($0043)=$00 ($0043)=$00

(CC)=11010000 (CC)=(11010001)

• Le contenu de l’octet mémoire $0043 est le retenu de l’addition de


deux nombres
• Le deuxième programme prend en considération les deux pour les
grandes additions, au contraire du premier programme.

TP 2 : Programmation du microcontrôleur 68HC11-F1


Soit le programme suivant qui permet d’effectuer le comptage du nombre de
données paires et impaires :
ORG $FE00

P EQU $0050

IP EQU $0051

D_TABLE EQU $0100

F_TABLE EQU $0101

LDX #D_TABLE

CLR P

CLR IP

BOUCLE CPX #F_TABLE

BEQ FIN
LDAA ,X

ANDA #$11

BEQ PAIR

INC IP

INX

BRA BOUCLE

PAIR : INC P

INX

BRA BOUCLE

FIN : SWI

On obtient le tableau suivant :


Adresse Code machine ETIQUETTE Code mnémonique Mode Commentaire
d’adressage
Code Code Code Code
opération opérande opération opérande

ORG $FE00

$fe00 Ce 01 00 LDX #D_TABLE IMM

$fe03 7F 00 50 CLR P

$fe06 7F 00 51 CLR IP

$fe09 8c 01 01 BOUCLE CPX #F_TABLE IMM

$fe0c 86 12 BEQ FIN RELATIF

$fe0e 97 00 LDAA ,X
$fe10 96 11 ANDA #$11 IMM

$fe12 98 06 BEQ PAIR RELATIF

$fe14 24 00 51 INC IP I

$fe17 76 INX INH

$fe18 97 Ef BRA BOUCLE RELATIF

$fe1a 7c 00 50 PAIR INC P

$fe1d INX INH

$fe1e 20 e9 BRA BOUCLE RELATIF

$fe20 3f FIN SWI

Soit le programme suivant qui permet de ranger en mémoire l’ensemble des


données 8bits non signés :

ORG $FE00

LDAA #$00

LDX #$01

BOUCLE : STAA ,X

INX

CMPA #$FF

BEQ SAUT

INCA

BRA BOUCLE
SAUT: SWI

END

adresse Code machine code mnémonique mode commentaire Etiquette


d’adressage
Code code Code Code
opération opérande opération opérande
$fe00 86 00 LDAA #$00 DIR Commencer
par $fe00
$fe02 ce 00 01 LDX #$01 IMM
$fe05 A7 00 STAA ,X INDEXE BOUCLE
$fe07 08 INX INH
$fe08 81 Ff CMPA #$FF IMM
$fe0a 27 03 BEQ SAUT RELATIF
$fe0c 4c INCA INH
$fe0d 20 F6 BRA BOUCLE RELATIF

$f0f 3f SWI INH Saut

END

Soit le programme suivant qui permet de ranger en mémoire l’ensemble des


données 8bits signés :

ORG $fE00

LDAA #$FF

LDX #$0200

BOUCLE1 STAA ,x

INX

CMPA #$80

BEQ SAUT1

DECA

BRA BOUCLE1

SAUT1 LDAB #$00

BOUCLE2 STAB ,X
INX

CMPB #$7f

BEQ SAUT2

INCB

BRA BOUCLE2

SAUT2 SWI

END

On obtient le tableau suivant :

Adresse Code machine Code mnémonique Mode Commentaire Etiquette


code mnémonique d’adressage
Code code Code Code
opération opérande opération opérande
ORG $FE00 Commencer
par $fE00
$Fe00 86 FF LDAA #$FF DIR
$fe02 Ce 02 00 LDX #$02 00 ETENDU
$fe05 A7 00 STAA ,X INDEXE BOUCLE 1
$FE07 08 INX INH
$FE08 81 80 CMPA #$80 IMM
$FE0a 27 03 BEQ SAUT 1 RELATIF
$FE0c 4a DECA INH
$FE0d 20 F6 BRA BOUCLE RELATIF
1
$FE0f C6 00 LDAB #$00 IMM SAUT1

$FE11 E7 00 STAB ,X INDEXE BOUCLE2


$FE13 08 INX INH

$FE14 C1 7F CMPB #$7F IMM.

$FE16 27 03 BEQ SAUT 2 RELATIF

$FE18 5C INCB INH

$FE19 20 F6 BRA BOUCLE RELATIF


2
$FE1B 3F SWI INH SAUT 2

END
Soit le programme suivant qui permet de déterminer chacune des nombres
positifs, négatifs et nuls :
ORG $FE00

NP EQU $0050

NNE EQU $0051

NNU EQU $0052

D.TABLE EQU $0100

F.TABLE EQU $010A

LDX #D.TABLE

CLR NP

CLR NNE

CLR NNU

BOUCLE: CPX #F.TABLE

BEQ FIN

LDAA ,X

BMI Négatif

BEQ Null

INC NP

INX

BRA BOUCLE

Negatif: INC NNE

INX

BRA BOUCLE

Null: INC NNU

INX

BRA BOUCLE

FIN: SWI
ORG D.TABLE

FCB 2,0,-1,3,4,,8,-14,-15,7

END

On obtient le tableau suivant:


Adresse Code machine ETIQUETTE Code mnémonique Mode Commentair
d’adressage
Code Code Code Code
opération opérande opération opérande

$FE00 CE 01 00 CLR #D.Table IMM

$FE03 7F 00 50 CLR NP Etendu

$FE06 7F 00 51 CLR NNE Etendu

$FE09 7F 00 52 CLR NNU Etendu

$FE0C 8C 01 0A BOUCLE CPX #F.TABLE IMM

$FE0F 27 18 BEQ FIN RELATIF

$FE11 A6 00 LDAA ,X Ind.x

$FE13 2B 08 BMI NEGATIF RELATIF

$FE15 27 0C BEQ NULL RELATIF I

$FE17 7C 00 50 INC NP etendu

$FE1A 08 INX INH


$FE1B 20 EF BRA BOUCLE RELATIF

$FE1D 7C 00 51 Negatif INC NNE Etendu

$FE20 08 INX INH

$FE21 20 E9 BRA BOUCLE RELATIF

$FE23 7C 00 52 NULL INC NNU Etendu

$FE26 08 INX INH

$FE27 20 E3 BRA BOUCLE RELATIF

$FE29 3F FIN SWI

END

TP3 : Programmation du microcontrôleur 68HC11-F1

Soit le programme suivant qui permet de déterminer la valeur minimale et


maximale d’une liste de nombres :
ORG $FE00

CLR MIN

CLR MAX

LDX #TABLE

LDAA ,X
INX

STAA

MAX

STAA MIN

BOUCLE CMPX #F.TABLE

BEQ FIN1

CMPA MAX

BHI high

LDAA ,X

CMPA MIN

BLO low

INX

BRA BOUCLE

high LDAA ,X

INX

STAA MAX

BRA BOUCLE

low LDAA ,X

INX

STAA MIN

BRA BOUCLE

FIN1 SWI

ORG $0100

FCB $02,$02,$04,$05,$01,$07,$07,$00

END
Adresse Code machine ETIQUETTE Code mnémonique Mode Commentaire
d’adressage
Code Code Code Code
opération opérande opération opérande

$FE00 7F 02 00 CLR MIN Etendu

$FE03 7F 02 10 CLRA MAX Etendu

$FE06 CE 01 00 LDX #TABLE IMM

$FE09 A6 00 LDAA ,X IND.X

$FE0B 08 INX INH

$FE0C B7 02 10 STAA MAX Etendu

$FE0F B7 02 00 STAA MIN Etendu

$FE12 8C 01 0A BOUCLE CMPX #F.TABLE IMM

$FE15 27 1F BEQ FIN1 RELATIF

$FE17 B1 02 10 CMPA MAX Etendu

$FE1A 22 0A BHI HIGH Relatif

$FE1C A6 00 LDAA ,X IND.X

$FE1E B1 02 00 CMPA MIN Etendu

$FE21 25 0b BLO LOW RELATIF


$FE23 08 INX INH

$FE24 20 EC BRA BOUCLE RELATIF

$FE26 A6 00 HIGH LDAA ,X IND.X

$FE28 08 INX INH

$FE29 B7 02 10 STAA MAX Etendu

$FE2C 20 E4 BOUCLE RELATIF

$FE2E A6 00 Low LDAA ,X IND.X

Soit le programme suivant qui permet de transférer une table de données


d’une zone mémoire à une autre :
ORG $FE00

LDX #$0100

LDY #$0200

Boucle LDAA ,X

STAA ,Y

INX

INY

CPX #$010A

BEQ FIN

BRA BOUCLE

FIN SWI

ORG $0100
FCB 2,3,4,5,6,8,1,2,0,14

END

On obtient le tableau suivant :

Adresse Code machine code mnémonique Mode Commentaire Etiquette


d’adressage
Code code Code Code
opération opérande opération opérande

ORG $FE00 Commencer


par $fE00

$FE00 Ce 01 00 LDX #$0100 IMM

$Fe03 18 Ce 02 00 LDY #$0200 IMM

$FE07 A6 00 LDAA ,X INDEXE BOUCLE

$FE09 18 A7 00 STAA ,Y INDEXE

$FE0C 08 INX INH

$FE0d 18 08 INY INH

$FE0F 8C 01 0a CPX #$010A

$FE12 27 02 BEQ FIN RELATIF

$FE14 20 F1 BRA BOUCLE RELATIF

$fe16 3F SWI INH FIN

END

Vous aimerez peut-être aussi