B.1(1)

publicité
CONTENU DU COURS
B. CONCEPTS
A. MISE EN
CONTEXTE
LOGICIELS
(PROGRAMMATION
EN ASSEMBLEUR ET
EN
Université du Québec
École de technologie supérieure
C)
C. CONCEPTS
MATÉRIELS
(COMPOSANTS D’UN
MICROCONTRÔLEUR)
GPA770: Microélectronique appliquée
Éric Granger
B.1-1
Partie B − Concepts logiciels
B.1 Langage assembleur et programmation structurée:
modes d’adressage et jeu d’instructions
boucles, pile et sous-routines
programmation structurée
B.2 Microcontrôleurs à logique floue:
systèmes de contrôle à logique floue
Instructions spécialisées du 68HC12
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-2
Sommaire de la Section B.1
B.1 Langage assembleur et programmation
structurée:
1) Processus d’assemblage
2) Directives de compilation
3) Modes d’adressage
4) Jeu d’instructions
5) Boucles
6) Piles
7) Sous-routines: appel et passage de paramètres
8) Sous-routines utilitaires du D-BUG12
9) Programmation structurée
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-3
B.1(1) Processus d’assemblage
code source en
langage assembleur
code assemblé en
langage machine
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
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
PROGRAMME
ASSEMBLEUR
(fichier.asm)
ASSEMBLEUR
MODIFICATIONS AU
PROGRAMME ASSEMBLEUR
PROGRAMME EN
LANGUAGE MACHINE
(fichier.s19)
EXÉCUTION SUR
LE
Université du Québec
École de technologie supérieure
68HC12
LISTING DU PROGRAMME
(fichier.lst)
GPA770: Microélectronique appliquée
Éric Granger
B.1-5
Fichier .S19 de Motorola
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
B.1-6
Fichier Lab1a.S19 simulation
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
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
B.1-7
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
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
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
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
Structure globale d’un programme:
; SECTION DÉFINTIONS
NUM1:
EQU
$24
NUM2:
EQU
$05
; SECTION DE DONNÉES
ORG
$0800
RESULT:
RMB
$02
ORG
$4000
; SOUS-ROUTINES
; SECTION DU PROGRAMME PRINCIPAL
DEBUT:
LDAA
#NUM1
LDAB
#NUM2
MUL
STD
RESULT
END
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-10
Sommaire de la Section B.1
B.1 Langage assembleur et programmation
structurée:
1) Processus d’assemblage
2) Directives de compilation
3) Modes d’adressage
4) Jeu d’instructions
5) Boucles
6) Piles
7) Sous-routines: appel et passage de paramètres
8) Sous-routines utilitaires du D-BUG12
9) Programmation structurée
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-11
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
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
Directives de base:
ORG: fixe une adresse de départ pour le compilateur
INCLUDE: inclure un fichier texte
NOLIST/LIST: écrit le résultat de la compilation dans *.lst
EQU: associe un symbole avec une valeur numérique
END: commande la fin de la compilation (et non la fin du
programme)
étiquette
op-code
opérant(s)
ORG
LDAA
......
END
$4000
#$10
Université du Québec
École de technologie supérieure
commentaire
GPA770: Microélectronique appliquée
Éric Granger
B.1-13
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
TEMP1:
TEMP2:
TEMP3:
RMB
FDB
FCC
Université du Québec
École de technologie supérieure
opérant(s)
$10
$1100, $1233
`JOE`
commentaire
; réserve $10 octets
; réserve et initialise 4 octets
; stocke JOE en ASCII
GPA770: Microélectronique appliquée
Éric Granger
B.1-14
Sommaire de la Section B.1
B.1 Langage assembleur et programmation
structurée:
1) Processus d’assemblage
2) Directives de compilation
3) Modes d’adressage
4) Jeu d’instructions
5) Boucles
6) Piles
7) Sous-routines: appel et passage de paramètres
8) Sous-routines utilitaires du D-BUG12
9) Programmation structurée
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-15
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)
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
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
INCA
ABA
INX
Université du Québec
École de technologie supérieure
opérant(s)
commentaires
;A+1 →A
;A +B →A
; IX + 1 → IX
GPA770: Microélectronique appliquée
Éric Granger
B.1-17
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 l’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
LDAA
ADDA
LDD
Université du Québec
École de technologie supérieure
opérant(s)
#$5F
#$12
#$1234
commentaires
; $5F → A
; A+$12 → A
; $1234 → D
GPA770: Microélectronique appliquée
Éric Granger
B.1-18
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
LDAA
ADDA
Université du Québec
École de technologie supérieure
opérant(s)
$5F
$12
commentaires
; ($005F) → A
; ???
GPA770: Microélectronique appliquée
Éric Granger
B.1-19
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
LDAA
ADDA
ADDD
Université du Québec
École de technologie supérieure
opérant(s)
$5F43
$1234
$1030
commentaires
; charge ($5F43)→ A
; charge ($1234)+A→A
; ???
GPA770: Microélectronique appliquée
Éric Granger
B.1-20
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 bits
nombre 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
LDAA
ADDA
Université du Québec
École de technologie supérieure
opérant(s)
$53, X
$12, X
commentaires
; charge ($53+IX) → A
; ???
GPA770: Microélectronique appliquée
Éric Granger
B.1-21
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)
valeurs
le signe vient avant (après) l’index: indique la pré (post)
incr/décrémentation
Exemples:
étiquette
op-code
opérant(s)
commentaires
STAA
LDX
LDX
2, -SP
2, SP+
2, SP
; SP-2→SP et A→(SP)
; (SP)→X et SP+2→SP
; ???
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)
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]
; ???
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. Mode indexé (suite)
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
B.1-24
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
BEQ
STAA
.....
INX
Université du Québec
École de technologie supérieure
opérant(s)
$10
$0800
......
commentaire
; branchement si Z=1
GPA770: Microélectronique appliquée
Éric Granger
B.1-25
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
NEXT
$0800
......
; brancher si Z=1
NEXT
BEQ
STAA
.....
INX
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-26
Sommaire de la Section B.1
B.1 Langage assembleur et programmation
structurée:
1) Processus d’assemblage
2) Directives de compilation
3) Modes d’adressage
4) Jeu d’instructions
5) Boucles
6) Piles
7) Sous-routines: appel et passage de paramètres
8) Sous-routines utilitaires du D-BUG12
9) Programmation structurée
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-27
B.1(4) Jeu d’instructions
Catégories d’instructions:
a. transfert et manipulation de données
b.
c.
d.
e.
f.
g.
arithmétique
logique et manipulation de bits
test de données
branchement
appel aux fonctions (à voir plus loin dans B.1)
logique floue (à voir dans la section B.2)
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
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
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 (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)
LDAA
#$12
; charger $12 → A
LDAB
$4000
; charger ($4000) → B
LDS
#$1000
; ????
Université du Québec
École de technologie supérieure
commentaires
GPA770: Microélectronique appliquée
Éric Granger
B.1-30
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)
STAB
$1237
STD
$0800
STAA
$FF
Université du Québec
École de technologie supérieure
commentaires
; stocker B → ($1237)
; stocker D → ($0800:$0801)
; ????
GPA770: Microélectronique appliquée
Éric Granger
B.1-31
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
MOVB
MOVW
TFR
TBA
Université du Québec
École de technologie supérieure
opérant(s)
commentaires
(source → destination)
$1234, $CF0D ; 8 bits mém → mém
$1234, $CF0D ; 16 bits mém → mém
A, B
; transfert A → B
; ????
GPA770: Microélectronique appliquée
Éric Granger
B.1-32
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 0
dé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)
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: (suite)
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)
Exemples:
étiquette
op-code
opérant(s)
ROL
RORA
LSLD
ASL
ASRB
$1234
Université du Québec
École de technologie supérieure
$2345
commentaires
; rotation gauche
; rotation droite
; décalage logique gauche
; décalage arithm. gauche
; ???
GPA770: Microélectronique appliquée
Éric Granger
B.1-35
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 bits
EMUL: multiplier deux nombres à 16 bits
IDIV: division de nombres entiers
FDIV: division de nombres fractionnaires
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 (suite)
ADD/SUB–Addition et soustraction: plusieurs différentes
instructions
addition à 8 bits: ABA, ABX/ABY, ADCA/ADCB,
ADDA/ADDB
addition à 16 bits: ADDD
Exemples:
étiquette
op-code
ABA
ADDB
SBA
SUBB
Université du Québec
École de technologie supérieure
opérant(s)
$1234
$1234
commentaires
;A+ B →A
; B + ($1234) → B
;A-B →A
; ???
GPA770: Microélectronique appliquée
Éric Granger
B.1-37
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)
LDAA
LDAB
MUL
#$10
#$20
Université du Québec
École de technologie supérieure
commentaires
; charger $10 → A
; charger $20 → B
; A * B → D (écrase A et B)
GPA770: Microélectronique appliquée
Éric Granger
B.1-38
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)
commentaires
LDD
LDX
IDIV
#$0020
#$0010
; charger D
; charger IX
; D / IX → IX.D
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
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 bits
ORCC: 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 bits
BCLR: fixer à 0 les bits indiqués dans un masque à 8 bits
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 (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)
ANDA
$1234
; A and ($1234) → A
BITA
$1234
; A and ($1234) (change le CCR)
Université du Québec
École de technologie supérieure
commentaires
GPA770: Microélectronique appliquée
Éric Granger
B.1-41
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
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)
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)
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)
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
NEXT
opérant(s)
commentaires
BSET
$D000, %01100000
BRCLR
$D000, %01100000, NEXT ;branch. étiquette
Université du Québec
École de technologie supérieure
;($D000)*masque→($D000)
GPA770: Microélectronique appliquée
Éric Granger
B.1-44
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
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 (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
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
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
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 (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 (nonsigné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)
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-48
B.1(4) Jeu d’instructions
e. Branchement (suite)
Branchement non-conditionnel: 3 instructions
BRA:
brancher vers une adresse indiquée par un décalage
plus rapide, consomme peu de mémoire
LBRA:
brancher vers une adresse quelconque de mémoire
mais plus lent, consomme plus de mémoire
JMP:
comme LBRA, mais permet un mode EXT,
IDX,etc. (plutôt que le mode REL)
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 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),
signés:
LO (lower than) ,
GT (greater than),
LT (less than),
LS (lower or same)
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.
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)
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)
étiquette
VER:
op-code opérant(s)
commentaires
LDAA
#$00
; initialise un compteur de boucles
CMPA
#$0A
; vérifie que (A) = $OA?
BEQ
STOP
; si oui, sortir de la boucle
INCA
STOP:
; incrémenter le compteur
BRA
VER
; prochaine itération de boucle
STAA
$0800
; stocker le compteur
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
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...
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-53
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...
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-54
B.1Exercice de compilation
Université du Québec
École de technologie supérieure
GPA770: Microélectronique appliquée
Éric Granger
B.1-55
Téléchargement