université du québec École de technologie supérieure gpa770: microélectronique appliquée Éric...

55
Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS A . M ISE EN CONTEXTE B. C ONCEPTS LO G IC IELS ( PR O G R A M M A TIO N EN ASSEM BLEUR ET EN C) C . C ONCEPTS M ATÉRIELS ( COM POSANTS D UN M ICROCONTRÔLEUR )

Upload: benoit-bodin

Post on 04-Apr-2015

110 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-1

CONTENU DU COURS

A. MISE EN CONTEXTE

B. CONCEPTS LOGICIELS

(PROGRAMMATION EN ASSEMBLEUR ET

EN C)

C. CONCEPTS MATÉRIELS

(COMPOSANTS D’UN MICROCONTRÔLEUR)

Page 2: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-2

Partie B − Concepts logiciels

B.1 Langage assembleur et programmation structurée:modes d’adressage et jeu d’instructionsboucles, pile et sous-routinesprogrammation structurée

B.2 Microcontrôleurs à logique floue: systèmes de contrôle à logique floueinstructions spécialisées du 68HC12

B.3 Programmation à haut niveau:survol du langage C comparaisons des langages assembleur et Cpassages de paramètrescompilation, bibliothèques et compilation mixte

Page 3: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-3

Sommaire de la Section B.1B.1 Langage assembleur et programmation

structurée:

1) Processus d’assemblage2) Directives de compilation3) Modes d’adressage4) Jeu d’instructions5) Boucles6) Piles7) Sous-routines: appel et passage de paramètres8) Sous-routines utilitaires du D-BUG129) Programmation structurée

Page 4: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-4

B.1(1) Processus d’assemblage

Le processus génère:

1. un fichier en langage machine (*.s19): selon le format de Motorola

2. un fichier liste (*.lst): pour le déverminage:– affiche le code machine pour chaque adresse

mémoire – indique l’adresse d’exécution et le mode d’opération

de chaque instruction

code source en langage assembleur

code assemblé en langage machine

Page 5: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-5

B.1(1) Processus d’assemblage

MODIFICATIONS AU PROGRAMME ASSEMBLEUR

PROGRAMME ASSEMBLEUR

(fichier.asm)

PROGRAMME EN LANGUAGE MACHINE

(fichier.s19)

LISTING DU PROGRAMME

(fichier.lst)

ASSEMBLEUR

EXÉCUTION SUR LE 68HC12

Page 6: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure

Fichier .S19 de Motorola

GPA770: Microélectronique appliquée B.1-6

Page 7: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure

Fichier Lab1a.S19 simulation

GPA770: Microélectronique appliquée B.1-7

S0360000463A5C4750413737305C6C61626F315C70726F6A6574315C62696E5C536F665465635F696E444152542D48435331322E616273C3

S123400010EFCF1000C6015B34C6035B35C6FF5B037900C8C6345BC97900CAC60C5BCBCC86

S1234020406115FBBDE015FBBDD8C10D270615FBBDD220F2CC409B15FBBDCBF6406115FBF7

S1234040BDD4CC40B015FBBDBDCCA25F15FBBDC8CE00000826FDF60800527B08005B0120DB

S1234060F24269656E76656E7565206175206C61626F7261746F697265206465206D6963BD

S1234080726FE96C656374726F6E697175650D6170706C697175E9650A0D000A0D41206C55

S12340A0612070726F636861696E6521210A0D000A0D003696CC842027FAD6CF323D369615

S12340C0CC844027FA7900CE5BCF323D3754545454C10A2404CB302002CB3715FBBD25338D

S12340E0C40FC10A2404CB302002CB3715FBBD143D3B180E7B0801F6080115FBBD183A7B3B

S11D41000801F6080115FBBD0D3D34B7C5E600270715FBBCEF0820F5303D79

S109FE0240B340BE410ABA

S107FE1640CC40F1A7

S105FFFE4000BD

S9030000FC

Bienvenue au laboratoire de microélectronique $0D

appliquée $0A $0D $00

$0A $0D A la prochaine!! $0A $0D $00

Page 8: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-8

B.1(1) Processus d’assemblage

Éléments d’un programme en assembleur:

1. Directives de compilation• instructions spéciales qui contrôlent l’opération de

l’assembleur, et permettent d’organiser un programme

2. Instructions en langage assembleur• séquences d’instructions que peut reconnaître et

exécuter le CPU

3. Commentaires• explique la fonction d’une ou de plusieurs instructions

Page 9: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-9

B.1(1) Processus d’assemblage

Format d’instructions en assembleur:

étiquette op-code opérant(s) commentaires

début: LDAA #$FC ;charger l’acc. A

étiquette: identifie une ligne de code du programme permet de localiser une {instructions} à exécuter

op-code/directive/macro: élément fonctionnel de l’instruction/dirige le compilateur/enregistrement de texte

opérant(s): information permettant d’accéder aux données pour exécuter une instruction, via le mode d’adressage

Commentaires: “;” indique le début d’un commentaire utile aussi pour documentation au début d’une ligne

Page 10: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-10

B.1(1) Processus d’assemblage

Structure globale d’un programme:; SECTION DÉFINTIONSNUM1: EQU $24NUM2: EQU $05

; SECTION DE DONNÉESORG $0800

RESULT: RMB $02

ORG $4000; SOUS-ROUTINES; SECTION DU PROGRAMME PRINCIPALDEBUT: LDAA #NUM1

LDAB #NUM2MULSTD RESULTEND

Page 11: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-11

Sommaire de la Section B.1B.1 Langage assembleur et programmation

structurée:

1) Processus d’assemblage2) Directives de compilation3) Modes d’adressage4) Jeu d’instructions5) Boucles6) Piles7) Sous-routines: appel et passage de paramètres8) Sous-routines utilitaires du D-BUG129) Programmation structurée

Page 12: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-12

B.1(2) Directives de compilation

déf.: Instructions spéciales qui contrôlent l’opération de l’assembleur, et permettent d’organiser un programme en mémoire

Rôle des directives de compilation:

spécifier le début et la fin d’un programme

définir des symboles et des données

réserver et initialiser des blocks en mémoire

spécifier le format de sortie

fixer les conditions pour l’assemblage

Page 13: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-13

B.1(2) Directives de compilation

Directives de base: ORG: fixe une adresse de départ pour le compilateurINCLUDE: inclure un fichier texteLIST: écrit le résultat de la compilation dans *.lstEQU: associe un symbole avec une valeur numériqueEND: commande la fin de la compilation (et non la fin du programme)

étiquette op-code opérant(s) commentaireORG $4000LDAA #$10......END

Page 14: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-14

B.1(2) Directives de compilation

Directives pour réserver et initialiser des blocks en mémoire RAM:

RMB: réserve un bloc de mémoire d’un nombre spécifié d’octets pour le programme

FCB (FDB): réserve un bloc de mémoire de 1 octet (2 octets) par nombre et initialise les valeurs

FCC: permet d’initialiser des caractères de texte

étiquette op-code opérant(s) commentaireTEMP1: RMB $10 ; réserve $10 octetsTEMP2: FDB $1100, $1233 ; réserve et initialise 4

octets TEMP3: FCC `JOE` ; stocke JOE en ASCII

Page 15: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-15

Sommaire de la Section B.1B.1 Langage assembleur et programmation

structurée:

1) Processus d’assemblage2) Directives de compilation3) Modes d’adressage4) Jeu d’instructions5) Boucles6) Piles7) Sous-routines: appel et passage de paramètres8) Sous-routines utilitaires du D-BUG129) Programmation structurée

Page 16: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-16

B.1(3) Modes d’adressage

déf.: méthode utilisée par le CPU afin d’accéder aux données pour exécuter des instructions

Indicateurs du mode: op-code + opérants

Types de modes d’adressage:a. mode inhérent (INH)b. mode immédiat (IMM)c. mode direct (DIR)d. mode étendu (EXT)e. mode indexé (IDX)f. mode relative (REL)

Page 17: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-17

B.1(3) Modes d’adressage

a. Mode inhérent (INH)

Les données requises pour exécuter l’instruction est contenue dans son op-code

les opérants sont dans les registres du CPU

Exemples:

étiquette op-code opérant(s) commentaires

INCA ; A + 1 → A

ABA ; A + B → A

INX ; IX + 1 → IX

Page 18: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-18

B.1(3) Modes d’adressage

b. Mode immédiat (IMM)

Les données requises pour exécuter l’instruction sont stockées immédiatement après le op-code en mémoire

les opérants sont inclus dans la séquence d’instructions

symbole ‘#’: indique à l’assembleur que l’opérant doit être traitée comme une donnée (non comme une adresse).

Exemples:

étiquette op-code opérant(s) commentaires

LDAA #$5F ; $5F → AADDA #$12 ; A+$12 → ALDD #$1234 ; $1234 → D

Page 19: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-19

B.1(3) Modes d’adressage

c. Mode direct (DIR)

Les données requises sont stockées à l’adresse mémoire indiqué par l’octet bas (suppose l’octet haut = $00)

l’étendue des adresses mémoire limitée: $0000 → $00FF

consomme moins de mémoire et s’exécute plus rapidement

Exemples:

étiquette op-code opérant(s) commentaires

LDAA $5F ; ($005F) → A

ADDA $12 ; ???

Page 20: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-20

B.1(3) Modes d’adressage

d. Mode direct étendu (EXT)

Les données requises sont stockées à l’adresse mémoire qui est indiqué par deux octets (adresse de 16 bits)

l’étendue des adresses mémoire: $0100 → $FFFF

l’adresse effective est une adresse explicite

Exemples:

étiquette op-code opérant(s) commentaires

LDAA $5F43 ; charge ($5F43)→ A

ADDA $1234 ; charge ($1234)+A→A

ADDD $1030 ; ???

Page 21: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-21

B.1(3) Modes d’adressage

e. Modes indexés (IDX)

Les données requises sont accédées en additionnant le contenu des indexes IX, IY, SP ou PC avec un décalage

le décalage (offset) est: nombre hex, dec ou bin de longueur 5, 9 ou 16 bitsnombre signés en complément à 2: décalage + ou –décalage avec accumulateurs A/B (8 bits) et D (16 bits)

Exemples:

étiquette op-code opérant(s) commentaires

LDAA $53, X ; charge ($53+IX) → A

ADDA $12, X ; ???

Page 22: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-22

B.1(3) Modes d’adressage

e. Modes indexés (suite)

Lors de l’exécution, on peut effectuer une pré/post incr/décrémentation automatique de IX, IY et SP:

le signe + (-): incrémente (décrémente) de 1 à 8 (-8 à -1) valeursle signe vient avant (après) l’index: indique la pré (post) incr/décrémentation

Exemples:

étiquette op-code opérant(s) commentaires

STAA 2, -SP ; SP-2→SP et A→(SP)

LDX 2, SP+ ; (SP)→X et SP+2→SP

LDX 2, SP ; ???

Page 23: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-23

B.1(3) Modes d’adressage

e. Modes indexés (suite)

Mode indexé indirect [IDX]− trouve un pointeur (i.e., une adresse) aux données d’intérêt:

l’adresse effective est indiquée par un décalage de 16 bits (soit D ou une valeur de 16 bits) et le registre IX, IY, SP ou PC

Exemples:

étiquette op-code opérant(s) commentaires

SUBA $0, Y ; A-($0+IY) → A

LDAA A, X ; (A+IX) → A

LDAA [D, X] ; ???

Page 24: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquée B.1-24

B.1(3) Modes d’adressage

e. Mode indexé (suite)

Page 25: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-25

B.1(3) Modes d’adressage

f. Mode relatif (REL)

Utilisé pour les instructions de branchement − Bxx et LBxx

Calcul l’adresse effective de branchement en additionnant un décalage relatif signé au contenu du PC.

Exemple: branchement conditionnel

étiquette op-code opérant(s) commentaire

BEQ $10 ; branchement si Z=1

STAA $0800

..... ......

INX

Page 26: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-26

B.1(3) Modes d’adressage

f. Mode relatif (suite)

Utilise normalement une étiquette, plutôt qu’une valeur numérique

Exemple:

étiquette op-code opérant(s) commentaire

BEQ NEXT ; brancher si Z=1

STAA $0800

..... ......

NEXT INX

Page 27: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-27

Sommaire de la Section B.1B.1 Langage assembleur et programmation

structurée:

1) Processus d’assemblage2) Directives de compilation3) Modes d’adressage4) Jeu d’instructions5) Boucles6) Piles7) Sous-routines: appel et passage de paramètres8) Sous-routines utilitaires du D-BUG129) Programmation structurée

Page 28: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-28

B.1(4) Jeu d’instructions

Catégories d’instructions:

a. transfert et manipulation de données

b. arithmétique

c. logique et manipulation de bits

d. test de données

e. branchement

f. appel aux fonctions (à voir plus loin dans B.1)

g. logique floue (à voir dans la section B.2)

Page 29: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-29

B.1(4) Jeu d’instructions

a. Transfert et manipulation de données

Fonction: déplacer et manipuler des données

Exemples communs:MOVB: déplacer un octet d’une adresse mémoire à une autre

LDAA: charger une valeur de mémoire dans A

STAA: stocker la valeur dans A en mémoire

PULX: accéder les 2 premiers octets de la pile, et charger dans IX

PSHA: stocker le contenue de l’accumulateur A dans la pile

ROL: rotation des données vers la gauche

ASR: décaler les données vers la droite

Page 30: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-30

B.1(4) Jeu d’instructions

a. Transfert et manipulation de données (suite)

LDx – Instructions de chargement: copient le contenu de l’adresse mémoire indiquée vers un accumulateur (A, B ou D), ou vers un indexe (IX, IY ou SP)

Affecte les bits d’état N, Z et V du CCR

Exemples:

étiquette op-code opérant(s) commentaires

LDAA #$12 ; charger $12 → A

LDAB $4000 ; charger ($4000) → B

LDS #$1000 ; ????

Page 31: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-31

B.1(4) Jeu d’instructions

a. Transfert et manipulation de données (suite)

STx – Instructions de stockage: copient le contenu d’un accumulateur ou d’un index vers l’adresse mémoire qui est indiquée

Affecte les bits d’état N, Z et V du CCR

Exemples:

étiquette op-code opérant(s) commentaires

STAB $1237 ; stocker B → ($1237)

STD $0800 ; stocker D → ($0800:$0801)

STAA $FF ; ????

Page 32: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-32

B.1(4) Jeu d’instructions

a. Transfert et manipulation de données (suite)

MOV et TFR – Instructions de transfert: copient le contenu entre registres du CPU, ou entre adresses de mémoire

MOV n’affecte pas les bits d’état N, Z et V du CCR

Exemples:

étiquette op-code opérant(s) commentaires (source → destination)MOVB $1234, $CF0D ; 8 bits mém →

mémMOVW $1234, $CF0D ; 16 bits mém →

mém TFR A, B ; transfert A → BTBA ; ????

Page 33: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-33

B.1(4) Jeu d’instructions

a. Transfert et manipulation de données (suite)

Instructions de décalage et de rotation: 21 différentes opérations classifiées en 3 types.

1. LSL/R– instructions de décalage logique, pour: examiner chaque bit, en regardant le bit d’état C du CCRécarter des bits, et de les remplacer par des 0décaler dans la direction spécifiée

2. ASL/R– instructions de décalage arithmétique, pour:la multiplication et la division par multiple de 2 (car on conserve le bit MSb de signe)

3. ROL/R– instructions de rotation, pour:la rotation des positions de bits dans un octet (conserve l’ordre)

Page 34: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-34

B.1(4) Jeu d’instructions

a. Transfert et manipulation de données (suite)

Instructions de décalage et de rotation: (suite)

Page 35: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-35

B.1(4) Jeu d’instructions

a. Transfert et manipulation de données (suite)

Instructions de décalage et de rotation: (suite)

Exemples:

étiquette op-code opérant(s) commentaires

ROL $1234 ; rotation gauche

RORA ; rotation droite

LSLD ; décalage logique gauche

ASL $2345 ; décalage arithm. gauche

ASRB ; ???

Page 36: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-36

B.1(4) Jeu d’instructions

b. Arithmétique

Fonction: effectuer des opérations arithmétiques

Exemples communs:ADDA: additionner le contenu de A avec celle d’un adresse mémoire, et stocker dans A SUBA: soustraire une valeur en mémoire de A, et stocker dans A

MUL: multiplier deux nombres à 8 bitsEMUL: multiplier deux nombres à 16 bits

IDIV: division de nombres entiersFDIV: division de nombres fractionnaires

Page 37: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-37

B.1(4) Jeu d’instructions

b. Arithmétique (suite)ADD/SUB–Addition et soustraction: plusieurs différentes instructions

addition à 8 bits: ABA, ABX/ABY, ADCA/ADCB, ADDA/ADDBaddition à 16 bits: ADDD

Exemples:

étiquette op-code opérant(s) commentaires

ABA ; A + B → AADDB $1234 ; B + ($1234) → BSBA ; A - B → ASUBB $1234 ; ???

Page 38: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-38

B.1(4) Jeu d’instructions

b. Arithmétique (suite)

MUL–Multiplication: 4 différentes instructions, nombres entiers

MUL: multiplier 2 nombres à 8 bits qui sont dans A et B, et stocker le résultat à 16 bits dans D

EMUL (étendue): multiplier 2 nombres à 16 bits dans D et IY, et stocker le résultat à 32 bits dans D et IY.

EMULS (signé): même chose que EMUL, mais avec nombres signés

EMACS: multiplier et accumuler 2 nombres signés à 16 bits à partir de la mémoire.

étiquette op-code opérant(s) commentaires

LDAA #$10 ; charger $10 → A

LDAB #$20 ; charger $20 → B MUL ; A * B → D (écrase A

et B)

Page 39: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-39

B.1(4) Jeu d’instructions

b. Arithmétique (suite)

DIV–Division: 5 différentes instructions, opérants de 16/32 bits

IDIV (IDIVS): division d’entiers non-signés (signés) à 16 bits. Le dividende et le diviseur sont dans D et IX, tandis que le quotient et le reste sont dans IX et D.

FDIV: division à 16 bits de nombres fractionnaires non-signés

EDIV (EDIVS): division d’entiers non-signés (signés), avec un dividende à 32 bits (dans IY et D), et un diviseur à 16 bits

étiquette op-code opérant(s) commentairesLDD #$0020 ; charger D

LDX #$0010 ; charger IX

IDIV ; D / IX → IX.D

Page 40: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-40

B.1(4) Jeu d’instructions

c. Logique et manipulation de bits

Fonction: effectuer des opérations logiques

Exemples communs:ANDA: effectuer un ET, bit par bit, avec le contenu de A et une valeur de 8 bits EORB: effectuer un OU-exclusif, bit par bit, avec le contenu de B et une valeur de 8 bitsORCC: effectuer un OU, bit par bit, avec le contenu du CCR et une valeur de 8 bits

BSET: fixer à 1 les bits indiqués dans un masque à 8 bitsBCLR: fixer à 0 les bits indiqués dans un masque à 8 bits

Page 41: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-41

B.1(4) Jeu d’instructions

c. Logique et manipulation de bits (suite)

Logique: fonctions ET, OU, OU-exclusif et complément

AND – produit ‘1’ si les deux bits sont ‘1’

ANDA (ANDB): effectuer un ET, bit par bit, entre les contenus de A (B) et une adresse mémoire, et stocker dans A (B)

ANDCC: [effacer des bits] effectuer un ET, bit par bit, entre le contenu du CCR et un masque à 8 bits, et stocker dans CCR

BITA (BITB): même que ANDA (ANDB), sauf qu’il affecte seulement les bits N, Z et (V=0) du CCR

étiquette op-code opérant(s) commentaires

ANDA $1234 ; A and ($1234) → A

BITA $1234 ; A and ($1234) (change le CCR)

Page 42: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-42

B.1(4) Jeu d’instructions

c. Logique et manipulation de bits (suite)

OR – produit ‘1’ si au moins un des bits est ‘1’

ORA (ORB): effectuer un OU, bit par bit, entre les contenus de A (B) et une adresse mémoire, et stocker dans A (B)

ORCC: [fixer des bits] effectuer un OU, bit par bit, entre le contenu du CCR et un masque à 8 bits, et stocker dans CCR

BITA (BITB): pas d’équivalent au ET

EOR – produit ‘1’ si les deux bits sont différents

EORA (EORB): effectuer un OU-exclusif, bit par bit, entre les contenus de A (B) et une adresse mémoire, et stocker dans A (B)

ANDCC et BITA (BITB): pas d’équivalent au ET

Page 43: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-43

B.1(4) Jeu d’instructions

c. Logique et manipulation de bits (suite)

NEG/COM – Instructions pour gérer des nombres signés en complément à 2:

NEGA (NEGB): effectuer un codage en complément à 2 sur le contenu de A (B)

COMA (COMB): effectuer un codage en complément à 1 sur le contenu de A (B)

Page 44: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-44

B.1(4) Jeu d’instructions

c. Logique et manipulation de bits (suite)

Manipulation de bits: 4 différentes instructions

BCLR (BSET): fixer les bits contenus dans l’adresse mémoire M à ‘0’ (‘1’) s’ils correspondent aux bits = ‘1’ dans le masque

Format: op-code adr_mémoire, masque

BRCLR (BRSET): branchement si les bits contenus dans l’adresse mémoire M, qui sont spécifiés par le masque, sont ‘0’ (‘1’).

Format: op-code adr_mémoire, masque, adr_branchement

étiquette op-code opérant(s) commentaires BSET $D000, %01100000 ;

($D000)*masque→($D000)

NEXT BRCLR $D000, %01100000, NEXT ;branch. étiquette

Page 45: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-45

B.1(4) Jeu d’instructions

d. Test de données

Fonction: comparer et tester le contenu d’un accumulateur ou d’une adresse mémoire

fixe les drapeau du CCR sans modifier les opérants (contenus dans les registres ou la mémoire)

Exemples communs:CMPA: comparer les contenus de A et d’une adresses mémoire CPY: comparer les contenus de IY et de 2 adresses mémoire consécutives. TSTB: tester le contenu de B pour un 0

Page 46: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-46

B.1(4) Jeu d’instructions

d. Test de données (suite)

Il existe 10 instructions de 2 types, presque toujours suivies d’un branchement:

1. CMP – Comparaison: soustraire une valeur du registre indiqué, et ensuite fixer les bits N, Z, V et C du CCR.

CMPA, CMPB, CBA, CPD, CPS, CPX, CPY

2. TST – Test: soustraire ‘0’ du registre indiqué, et ensuite fixer les bits N et Z du CCR (C et V sont fixés à 0)

TST, TSTA, TSTB

Page 47: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-47

B.1(4) Jeu d’instructions

e. Branchement

Fonction: réaliser des structures de contrôle et des boucles en langage assembleur

peuvent modifier l’ordre d’exécution des instructions

Exemples communs:BEQ: branchement si le résultat de l’instruction précédente est 0 (si Z = 1 au CCR)

BMI: branchement si le résultat de l’instruction précédente est un nombre négatif (si N = 1 au CCR)

BRA: branchement non-conditionnel

Page 48: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-48

B.1(4) Jeu d’instructionse. Branchement (suite)

Types d’instructions de branchement:

1. non-conditionnel: s’exécute toujours

2. conditionnel: s’exécute selon les bits d’état du CCR• signé (non-signé): si un test de valeurs signées (non-

signées) donne un combinaison de bits au CCR.

Longueur des branchements:

court Bxx: décalage représenté sur 8 bits signés entre -128 et +127 adresses)long LBxx: décalage représenté sur 16 bits signés (couvre toute la mémoire, entre -32768 et +32767 adresses)

Page 49: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-49

B.1(4) Jeu d’instructions

e. Branchement (suite)

Branchement non-conditionnel: 3 instructionsBRA:

brancher vers une adresse indiquée par un décalageplus rapide, consomme peu de mémoire

LBRA:brancher vers une adresse quelconque de mémoiremais plus lent, consomme plus de mémoire

JMP:comme LBRA, mais permet un mode EXT, IDX,etc. (plutôt que le mode REL)

Page 50: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-50

B.1(4) Jeu d’instructions

e. Branchement (suite)

Branchement conditionnel: 34 instructions

évalue des bits du CCR pour décider d’un branchement

format: Bxx adresse_relative où ‘xx’ indique les bits d’état du CCR à tester

convention de xx selon les nombres: non-signés: HI (higher than), HS (higher or same),

LO (lower than) , LS (lower or same)

signés: GT (greater than), LT (less than), GE (greater or equal), LE (less or equal)

une bonne habitude: faire précéder le branchement par un instruction de TST,CMP …pour actualiser les bits du CCR.

Page 51: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-51

B.1(4) Jeu d’instructions

e. Branchement (suite)

Page 52: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-52

B.1(4) Jeu d’instructions

e. Branchement (suite)

étiquette op-code opérant(s) commentaires

LDAA #$00 ; initialise un compteur de boucles

VER: CMPA #$0A ; vérifie que (A) = $OA?

BEQ STOP ; si oui, sortir de la boucle

INCA ; incrémenter le compteur

BRA VER ; prochaine itération de boucle

STOP: STAA $0800 ; stocker le compteur

Page 53: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-53

B.1(4) Jeu d’instructions

f. Appel aux fonctions

Fonction: initier ou terminer une sous-routine

Exemples communs:

JSR: appel vers une sous-routine loin

BRS: appel vers une sous-routine près

RTS: retourner d’une sous-routine

RTI: retourner d’une routine de service

CALL: appel une sous-routine en mode étendu paginé

A voir dans la suite de cette section, les sous-routines...

Page 54: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-54

B.1(2) Jeu d’instructions

d. Logique floue

Fonction: réaliser un contrôleur à logique floue

Exemples communs:

MEM: fuzzification

REV: méthode d’inférence MIN-MAX pour l’évaluation des règles

WAV: dé-fuzzification

A voir dans la section B.2...

Page 55: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1-55

B.1Exercice de compilation