GPA770: Microélectronique appliquée

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Premier programme en C :
Architecture de machines Le microprocesseur
?...1…-13…( )…+…-… …-(-2)…-(5-7)…-2+6…? Boîte à outils :
Licence pro MPCQ : Cours
Additions soustractions
Distance inter-locuteur
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Les numéros
Les identités remarquables
Plan du cours : 2ème Partie
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Ecriture simplifiée d'une somme de relatifs
Les structures de données
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Système d’exploitation : Assembleur
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
Chapitre 8 : L’architecture de base des ordinateurs
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Système d’exploitation : Assembleur
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Les puissances de 10 - Sommaire
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Sémantique axiomatique
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Titre : Implémentation des éléments finis sous Matlab
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
Logiciel gratuit à télécharger à cette adresse :
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Calculs et écritures fractionnaires
RACINES CARREES Définition Développer avec la distributivité Produit 1
GPA770: Microélectronique appliquée
Représentation des systèmes dynamiques dans l’espace d’état
GPA770: Microélectronique appliquée
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Mise en forme en Mathématiques
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Formation des commissaires sportifs
Nom:____________ Prénom: ___________
Notions de pointeurs en C
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Chapitre 3 :Algèbre de Boole
Cours Architecture des Systèmes Informatiques
3-Présentation d’un µP simple
Architectures des ordinateurs
GPA770: Microélectronique appliquée
1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
Patricia Renault UPMC 2005/2006
Les instructions de contrôle
Chapitre 3 L’accès aux données.
Transcription de la présentation:

GPA770: Microélectronique appliquée CONTENU DU COURS GPA770: Microélectronique appliquée Éric Granger

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 B.3 Programmation à haut niveau: survol du langage C comparaisons des langages assembleur et C passages de paramètres compilation, bibliothèques et compilation mixte GPA770: Microélectronique appliquée Éric Granger

Sommaire de la Section B.1 B.1 Langage assembleur et programmation structurée: Processus d’assemblage Directives de compilation Modes d’adressage Jeu d’instructions Boucles Piles Sous-routines: appel et passage de paramètres Sous-routines utilitaires du D-BUG12 Programmation structurée GPA770: Microélectronique appliquée Éric Granger

B.1(1) Processus d’assemblage Le processus génère: un fichier en langage machine (*.s19): selon le format de Motorola 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 GPA770: Microélectronique appliquée Éric Granger

B.1(1) Processus d’assemblage GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée Fichier .S19 de Motorola GPA770: Microélectronique appliquée

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 GPA770: Microélectronique appliquée

B.1(1) Processus d’assemblage Éléments d’un programme en assembleur: Directives de compilation instructions spéciales qui contrôlent l’opération de l’assembleur, et permettent d’organiser un programme Instructions en langage assembleur séquences d’instructions que peut reconnaître et exécuter le CPU Commentaires explique la fonction d’une ou de plusieurs instructions GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

Sommaire de la Section B.1 B.1 Langage assembleur et programmation structurée: Processus d’assemblage Directives de compilation Modes d’adressage Jeu d’instructions Boucles Piles Sous-routines: appel et passage de paramètres Sous-routines utilitaires du D-BUG12 Programmation structurée GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

B.1(2) Directives de compilation Directives de base: ORG: fixe une adresse de départ pour le compilateur INCLUDE: inclure un fichier texte 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) commentaire ORG $4000 LDAA #$10 ...... END GPA770: Microélectronique appliquée Éric Granger

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) commentaire TEMP1: RMB $10 ; réserve $10 octets TEMP2: FDB $1100, $1233 ; réserve et initialise 4 octets TEMP3: FCC `JOE` ; stocke JOE en ASCII GPA770: Microélectronique appliquée Éric Granger

Sommaire de la Section B.1 B.1 Langage assembleur et programmation structurée: Processus d’assemblage Directives de compilation Modes d’adressage Jeu d’instructions Boucles Piles Sous-routines: appel et passage de paramètres Sous-routines utilitaires du D-BUG12 Programmation structurée GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée 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: mode inhérent (INH) mode immédiat (IMM) mode direct (DIR) mode étendu (EXT) mode indexé (IDX) mode relative (REL) GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée 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 GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée 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 → A ADDA #$12 ; A+$12 → A LDD #$1234 ; $1234 → D GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée 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 ; ??? GPA770: Microélectronique appliquée Éric Granger

d. Mode direct étendu (EXT) 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 ; ??? GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée 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 opérant(s) commentaires LDAA $53, X ; charge ($53+IX) → A ADDA $12, X ; ??? GPA770: Microélectronique appliquée Éric Granger

e. Modes indexés (suite) 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 2, -SP ; SP-2→SP et A→(SP) LDX 2, SP+ ; (SP)→X et SP+2→SP LDX 2, SP ; ??? GPA770: Microélectronique appliquée Éric Granger

e. Modes indexés (suite) 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] ; ??? GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée B.1(3) Modes d’adressage e. Mode indexé (suite) GPA770: Microélectronique appliquée

GPA770: Microélectronique appliquée 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 GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée 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 GPA770: Microélectronique appliquée Éric Granger

Sommaire de la Section B.1 B.1 Langage assembleur et programmation structurée: Processus d’assemblage Directives de compilation Modes d’adressage Jeu d’instructions Boucles Piles Sous-routines: appel et passage de paramètres Sous-routines utilitaires du D-BUG12 Programmation structurée GPA770: Microélectronique appliquée Éric Granger

B.1(4) Jeu d’instructions Catégories d’instructions: transfert et manipulation de données 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) GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

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 ; ???? GPA770: Microélectronique appliquée Éric Granger

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 ; ???? GPA770: Microélectronique appliquée Éric Granger

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ém MOVW $1234, $CF0D ; 16 bits mém → mém TFR A, B ; transfert A → B TBA ; ???? GPA770: Microélectronique appliquée Éric Granger

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. 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 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) ROL/R– instructions de rotation, pour: la rotation des positions de bits dans un octet (conserve l’ordre) GPA770: Microélectronique appliquée Éric Granger

B.1(4) Jeu d’instructions a. Transfert et manipulation de données (suite) Instructions de décalage et de rotation: (suite) GPA770: Microélectronique appliquée Éric Granger

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 ; ??? GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

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 opérant(s) commentaires ABA ; A + B → A ADDB $1234 ; B + ($1234) → B SBA ; A - B → A SUBB $1234 ; ??? GPA770: Microélectronique appliquée Éric Granger

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) GPA770: Microélectronique appliquée Éric Granger

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 #$0020 ; charger D LDX #$0010 ; charger IX IDIV ; D / IX → IX.D GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

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) GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

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) GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

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: 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 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 GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

B.1(4) Jeu d’instructions e. Branchement (suite) Types d’instructions de branchement: non-conditionnel: s’exécute toujours 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) GPA770: Microélectronique appliquée Éric Granger

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) GPA770: Microélectronique appliquée Éric Granger

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. GPA770: Microélectronique appliquée Éric Granger

B.1(4) Jeu d’instructions e. Branchement (suite) GPA770: Microélectronique appliquée Éric Granger

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 GPA770: Microélectronique appliquée Éric Granger

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... GPA770: Microélectronique appliquée Éric Granger

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... GPA770: Microélectronique appliquée Éric Granger

B.1Exercice de compilation GPA770: Microélectronique appliquée Éric Granger