Weitere Files findest du auf www.semestra.ch/files DIE FILES DÜRFEN NUR FÜR DEN EIGENEN GEBRAUCH BENUTZT WERDEN. DAS COPYRIGHT LIEGT BEIM JEWEILIGEN AUTOR. Microprocesseur I02 Classification des microprocesseurs orienté accumulateur • orienté registres généraux Le jeu d’instructions est lié aux accumulateurs, par ex. - • Le jeu d’instructions est déclinable avec un registre (la commande est indépendant du registre), par ex. - • µP : Indel charge la valeur A5 dans l’accu "a" • µP : 68HC11 pile (stack) Microprocesseur 68HC11 Exemple du CCR: (condition code register) LDAA # val S X H I - - - - bit no. 7 = 1 négatif N Z -1 0 1 N=0 Z=1 V=0 N=0 Z=0 V=0 N=1 Z=0 V=0 -128 | 127 Classification des instructions 68HC11 Registre mémoire : Registre registre : Arithmétique : Logic : Shift & rotate : ldaa, ldx aba, adda and, or, eor asl, asr, lsa, lsr, lsl, rol, ror -1- V C - flag non modifié 0 - 0 flag mit à 0 1 flag mit à 1 flag prend la valeur correspondante de la de la commande. Microprocesseur I02 Différance shift & rotate: Shift: avant: après: Jump: Subroutines: Interruption: 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 bra, beq, bnc, … bsr, gsr, … cli Instruction est composé d’un opcode + un ou plusieurs opérande(s) Mode d’adressage: Le mode d’adressage est la manière dans la quelle le microprocesseur « appelle » une case mémoire. La commande utilisée détermine le mode d’adressage. Certaine commandes peuvent être utilisé en différents modes. Le 68HC11 a 8 modes d’adressages: 1) inhérent (implicite) • • uniquement l’opcode (il n’y a pas de opérande(s)) l’élément adressé est inclus dans l’opcode ex. : ABA add accu B à accu A accu A CLRA clear A ( LDAA #0) MUL accu A * accu B accu D 2) immédiat • transfert l’opérande dans le registre mentionné par l’opérande ex : LDAA #$07 charge la constante 07 accu A 3) directe (8 bit)/ étendu (16 bit) • opcode $86 opérande $07 accu $07 opérande spécifie l’adresse d’une case mémoire (l’élément adressé) ex : LDAA $0FFF accu $0FFF -2- $A5 $A5 Microprocesseur I02 4) indexé l’élément adressé (la case mémoire) est pointé pas les registres d’index X et Y. ex : LDAA 0,Y • registre d‘index utilisé offset (+/-) exprimé sur 1 byte [-128…+127] • adresse de l’élément = valeur de registre d’index + offset $A4 $1000 $A5 accu $A5 $A6 LDX #bidon LDAA 0,X est égal à 5) relatif • • bidon est défini à #1000 LDAA bidon modification (une addition/soustraction du PC) valeur additionné / soustraite exprimé par 1 byte [-127…+128] ex : branch conditionnel, loop • le déplacement est calculé par l’assembleur # : adressage immédiat $ : chiffre en format hexadécimal PC : program counter Bloc diagramme du 68HC11 Page 239 Arithmetic Logical Unit - operatinos arithmétiques (add, mul, …) opératinos logiques (And, Or, Not, Shift, …) Instruciton Register - (ALU) (IR) contient l’opcode de l’instruction Exemple : -3- Microprocesseur I02 Load value $2000 into register X : LDX #$2000 Store value from accu A into RAM at address $2000 : STAA $2000 X=$6000 PC=$2000 Address mode: indexed 1) fetch: 2) decode: 3) execute: 4) get instruction get operand calculate address fetch value from RAM to put it into accu A -4- Microprocesseur I02 Topologie d’un programme en assembleur 1 Étiquettes (variables) Interpréter comme adresse data et code variables, opcode, operand, commentaires 2 opcode 3 operand Code Data Chaque programme est divisé en 2 parties : Le code est divisé en 4 colones : Initialisation du PC - c’est la première opération que fait le CPU lors de la mise sous tension ce processeur est propre à chaque CPU (lire le data sheet) le CPU est tributaire (dépendant) du signal L’initialisation du PC se fait par lectures des adresses FFFE & FFFF. -5- 4 commentaires