Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur PDF

Document Details

Uploaded by Deleted User

Université Mohammed Premier - ENSA Oujda

2024

J.ZAIDOUNI

Tags

microcontroller Atmega328P assembly language programming

Summary

Ce document présente un chapitre sur le microcontrôleur Atmega328P et son assembleur. Il couvre des sujets importants comme les familles de microcontrôleurs AVR, les caractéristiques du Atmega328P, l'organisation de la mémoire et les différents modes d'adressage.

Full Transcript

Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Programmation système Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur...

Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Programmation système Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur J.ZAIDOUNI Université Mohammed Premier ENSA Oujda, 2024/2025 1/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Sommaire 1 Familles des micro-contrôleurs AVR Différentes familles 2 Présentation du Atmega328P Présentation du Atmega328P Organisation de la mémoire 3 Modes d’adressage de l’assembleur Atmega328P Adressage direct registre et E/S Adressage de la mémoire de données Adressage de la mémoire de programmes 2/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Sommaire 4 Instructions de Atmega328P Instructions arithmétiques Instructions Logiques, INC et DEC Instructions de Multiplication Instructions de saut inconditionnel Instructions de Comparaisons et une SKIP Instructions SKIP d’une instruction Instructions de saut conditionnel Instructions sur les bits Instructions de Transfert de Données : MOV, LD, ST Instructions de Transfert de Données : LPM, SPM, IN et OUT 5 Directives de l’assembleur Atmega328P 3/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Sommaire 4/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Familles des micro-contrôleurs AVR Différentes familles Différentes familles La famille des micro-contrôleurs AVR se compose de 5 groupes principaux : 1.TinyAVRs mémoire programme de 0.5 à 32 kB boı̂tier de 6 à 32 broches nombre de périphériques limité 2.MegaAVRs mémoire programme de 4 à 256 kB boı̂tier de 28 à 100 broches jeu d’instructions plus étendu (multiplication, instructions pour accès à la mémoire étendue) périphériques plus nombreux 5/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Familles des micro-contrôleurs AVR Différentes familles Différentes familles 3. XMEGA mémoire programme de 16 à 384 kB boı̂tier de 44 à 100 broches performances étendues, telles que DMA, gestion d’événements entre périphériques, cryptographie intégrée. 4. AVR spéciaux pour des applications spécifiques 5. FPSLIC [archive] (Field Programmable System Level Integrated Circuit) ce circuit est un FPGA avec un cœur AVR, le cœur peut fonctionner jusqu’à 50 MHz en exécutant son programme en mémoire RAM à la différence des autres familles qui exécutent le programme en mémoire FLASH. 6/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Familles des micro-contrôleurs AVR Différentes familles Différentes familles La famille AVR comprend des MegaAVR avec des périphériques tels que : contrôleur USB contrôleur CAN contrôleur LCD contrôleur PWM avancé contrôleur batterie contrôleur pour réseau sans fil ZigBee 7/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Présentation du Atmega328P Caractéristiques générales Technologie CMOS haute vitesse : rapidité + faible consommation Architecture RISC et Harvard Alimentation entre 1,8 et 5,5V 3 mémoires indépendantes Mémoire flash intégrée de 32 ko (10000 cycles écriture) Mémoire EEPROM de 1 ko pour le stockage de données semi-permanentes (100000 cycles écriture) Mémoire SRAM rapide de 2 ko 8/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Présentation du Atmega328P Caractéristiques générales Nombre de broches : 28 (sur le modèle utilisé en TP) 32 registres de travail d’accès rapide pour l’ALU Ports parallèles : 3, avec 23 broches E/S Fréquence d’horloge : 16 Mhz (maxi tolérée = 20 Mhz) donc : 16 cycles d’horloge par micro-seconde Périphériques internes 6 convertisseur Analogique/Numérique 10 bits, comparateur analogique 1 timer 16 bits (T1), 2 timers 8 bits(T0,T2) 6 canaux PWM, 1 chien de garde (watchdog) SPI, USART, TWI (=I2C) 26 interruptions 5 modes d’économie d’énergie 9/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Présentation du Atmega328P Le circuit Atmega328P (28 pins) Microcontrôleur Atmega328P (PCINT14/RESET) PC6 1 28 PC5 (ADC5/SCL/PCINT13) (PCINT16/RXD) PD0 2 27 PC4 (ADC4/SDA/PCINT12) (PCINT17/TXD) PD1 3 26 PC3 (ADC3/PCINT11) (PCINT18/INT0) PD2 4 25 PC2 (ADC2/PCINT10) (PCINT19/OC2B/INT1) PD3 5 24 PC1 (ADC1/PCINT9) (PCINT20/XCK/T0) PD4 6 23 PC0 (ADC0/PCINT8) VCC 7 22 GND GND 8 21 AREF (PCINT6/XTAL1/TOSC1) PB6 9 20 AVCC (PCINT7/XTAL2/TOSC2) PB7 10 19 PB5 (SCK/PCINT5) (PCINT21/OC0B/T1) PD5 11 18 PB4 (MISO/PCINT4) (PCINT22/OC0A/AIN0) PD6 12 17 PB3 (MOSI/OC2A/PCINT3) (PCINT23/AIN1) PD7 13 16 PB2 (SS/OC1B/PCINT2) (PCINT0/CLKO/ICP1) PB0 14 15 PB1 (OC1A/PCINT1) Port B de 8 bits, Port D de 8 bits, Port C de 7 bits 10/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Présentation du Atmega328P Architecture du microcontrôleur Atmega328P de type Harvard L’architecture de type Harvard est une conception des processeurs qui sépare physiquement la mémoire de données et la mémoire programme. L’accès à chacune des deux mémoires s’effectue via deux bus distincts (chacun est composé de trois bus : bus d’adresses, bus de données et bus de contrôle). Avec deux bus distincts, l’architecture dite de Harvard permet de transférer simultanément les données et les instructions à exécuter. Ainsi, l’unité de traitement aura accès simultanément à l’instruction et aux données associées. 11/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Présentation du Atmega328P Architecture du microcontrôleur Atmega328P de type Harvard Cette architecture peut se montrer plus rapide à technologie identique que l’architecture de von Neumann ; le gain en performance s’obtient cependant au prix d’une complexité accrue de structure. L’architecture de type Von Neumann s’oppose à celle de Harvard car elle utilise un seul bus pour le programme et les données. 12/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Présentation du Atmega328P Architecture du microcontrôleur Atmega328P Bus de Données Bus de Données du 1er Bus du 2ème Bus 16 8 13/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Présentation du Atmega328P Architecture microcontrôleur Atmega328P (CPU) Bus de Données Bus d'adresses Bus de Données du 1er Bus du 1er Bus du 2ème Bus 16 8 16 14/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Présentation du Atmega328P Architecture Harvard du AVR 1er Bus 2ème Bus 15/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Organisation de la mémoire Organisation de la mémoire Le cœurs AVR dispose de 32 registres spéciaux travaillant directement avec l’Unité Arithmétique de Logique ALU. Les registres spéciaux sont dit aussi registre d’accès rapide et 6 des 32 registres peuvent être employés comme trois registre d’adresse 16 bits pour l’adressage indirects d’espace de données (X, Y & Z). L’ATmega328P dispose des trois mémoires suivantes : 1 la mémoire programme FLASH (contient le programme) de taille 32 Koctets = 16K × 16 bits, (n = 14 bits) 2 la mémoire de donnée SRAM (contient des données temporaires) de taille 2048 × 8 bits, (2 Ko) 3 la mémoire morte de type EEPROM (contient des données constantes) de taille 1024 × 8 bits, (1 Ko) 16/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Organisation de la mémoire Organisation de la mémoire La mémoire FLASH du programme : elle contient un espace adressable de 32 Ko de programme. Le nombre d’écriture sur cette mémoire est limité à 10.000, largement suffisant pour la majorité des applications. La taille de chaque case mémoire est 16 bits. 32 Koctets = 16K ∗ 16 bits (n = 14 bits) La mémoire SRAM de données : elle contient 2048 octets. En plus on a les 32 registres de travail, les 64 registres des interfaces d’entrées/sorites et 160 registres des interfaces externes d’entrées/sorites. La taille de chaque case mémoire est 8 bits. La mémoire morte EEPROM : Elle contient des données importantes qui seront stockées pendant l’absence de courant électrique. On peut écrire jusqu’à 100.000 fois dans l’EEPROM. La taille de l’EEPROM est de 1 ko. La taille de chaque case mémoire est 8 bits. 17/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Organisation de la mémoire Organisation de la mémoire (2048 X 8 bits) (2 Ko) (32 Ko) (case de 8 bits) (case de 16 bits) (taille de 8 bits) (Data Space) (Programm Space) 18/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Organisation de la mémoire Registres E/S (I/O) addr 6 − IO = 0 à 63 (00H à 3FH) Adresse I/O (0 à 31) (00H à Adresse I/O (32 à 63) (20H à 1FH) addr 5 − IO = 0 à 31 3FH) EECR = 0x1f PORTD = 0x0b SREG = 0x3f GPIOR2 = 0x2b GPIOR0 = 0x1e DDRD = 0x0a SPL = 0x3d GPIOR1 = 0x2a EIMSK = 0x1d PIND = 0x09 SPH = 0x3e OCR0B = 0x28 EIFR = 0x1c PORTC = 0x08 SPMCSR = 0x37 OCR0A = 0x27 PCIFR = 0x1b DDRC = 0x07 MCUCR = 0x35 TCNT0 = 0x26 TIFR2 = 0x17 PINC = 0x06 MCUSR = 0x34 TCCR0B = 0x25 TIFR1 = 0x16 PORTB = 0x05 SMCR = 0x33 TCCR0A = 0x24 TIFR0 = 0x15 DDRB = 0x04 ACSR = 0x30 GTCCR = 0x23 PINB = 0x03 SPDR = 0x2e EEARH = 0x22 SPSR = 0x2d EEARL = 0x21 SPCR = 0x2c EEDR = 0x20 19/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Organisation de la mémoire Registre SREG (Status REGister) Le registre SREG ou registre d’état : Il est modifié selon l’état du résultat de l’instruction exécutée. Son contenu est utilisé pour faire des branchements conditionnels. Il peut être lu et écrit à tout moment sans aucune restriction. Il indique et autorise aussi le fonctionnement des interruptions. Il contient 8 drapeaux : Adresse IO = 3FH (Adresse DS = 5FH) I : Global Interrupt Enable sert à activer (1) ou interdire (0) toutes les sources d’interruptions. Si ce bit n’est pas activé alors que vous avez programmé des interruptions, elles ne seront pas prises en compte. 20/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Présentation du Atmega328P Organisation de la mémoire Registre SREG (Status REGister) T : Copy Storage (ou bit de Test) joue un rôle de tampon lors de manipulation de bits avec les instructions BLD et BST. H : Half Cary est la demie-retenue (du rang 3 au rang 4) suite à une instruction arithmétique sur 4 bits. S : Sign bit, ce bit de signé (entiers signés) est le résultant d’un OU exclusif entre le bit N et V. V : Overflow, ce bit indique un dépassement de capacité lors des opérations arithmétiques avec les nombres signés. N : Negative, ce bit signale que le résultat (entier signé) de la dernière opération arithmétique est négatif. Z : Zéro, ce bit le résultat de la dernière manipulation arithmétique est égal à zéro (Z=1 si Oui). C : Cary, ce bit est la retenue (du rang 7 au rang 8) suite à une opération arithmétique sur 8 bits. 21/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage direct registre et E/S Adressage direct registre et E/S 1. Adressage direct (Register Direct, Single Register Rd) : L’opérande est stocké dans le registre de destination (Rd). Les 5 bits du code machine représentent l’adresse du registre utilisé (de 0 à 31). Exemple : INC Rd ; 2. Adressage direct (Two Registers, Rd and Rr) : Les opérandes sont stockés dans le registre sources (Rr) et le registre destination (Rd). Le résultat est stocké dans le registre de destination (Rd). Exemple : ADD Rd, Rr ; 3. Adressage direct des E/S (I/O Direct) : L’opérande est le contenu du registre I/O d’adresse addr 6 − IO (ou addr 5 − IO pour quelques instructions). Rr/Rd spécifie le registre de destination ou source. 22/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage direct registre et E/S Adressage direct registre et E/S 3. (suite) : L’adresse addr 6 − IO (addr 5 − IO) est codée sur 6 bits (5 bits,) soit de 0 à 63 (0 à 31). Exemple : OUT addr6-IO,Rr ; La mémoire d’E/S étendue (les 160 registres Ext I/O) à partir de l’adresse 64 (40H) ne peut être atteint que par l’adressage des données (de 60H à FFH), et non par l’adressage E/S direct. 23/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage direct registre et E/S Adressage direct registre et E/S 15 54 0 15 10 9 54 0 (11 bits) (5 bits) (6 bits) (5 bits) (5 bits) (Code machine de 2 octets) (Code machine de 2 octets) (1FH) (1FH) (5 bits) 31 (11 bits) 2120 16 15 11 10 6 5 0 (k) (addr16) (addr6-IO) (6 bits) 15 (16 bits) 0 (5 bits) (5 bits) (Code machine de 2 octets) (Code machine de 4 octets) (08FFH) (3FH) RAMEND 24/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de données Adressage de la mémoire de données 4. Adressage direct des données (Data Direct) : L’instruction est composée de deux mots de 16 bits, le deuxième mot (mot faible) contenant l’adresse de l’opérande comprise entre 0x0000 et RAMEND=08FFH. C’est donc tout l’espace de données qui peut être adressé de cette façon. Rd/Rr précise le registre destination ou source. Exemple : LDS Rd,addr16 ; Remarque générales pour toutes les instructions : Les positions des bits des adresses changent selon l’instruction (voir la documentation : AVR-InstructionSet-Manual-DS40002198.pdf). 25/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de données Adressage de la mémoire de données 5. Adressage indirect de la mémoire de données (Data Indirect) : L’adresse de l’opérande est le contenu du registre pointeur X, Y ou Z (16 bits). Exemple : LD Rd,X ; 6. Adressage indirect de la mémoire de données avec pré-décrémentation (Data Indirect with Pre-decrement) : Le contenu du registre (X, Y ou Z Register) est décrémenté avant l’opération pour obtenir l’adresse de l’opérande. Exemple : LD Rd,-Z ; 7. Adressage indirect de la mémoire de données avec post-décrémentation (Data Indirect with Post-increment) : L’adresse de l’opérande est le contenu du registre X, Y ou Z.Le contenu du registre X, Y ou Z est incrémenté après l’opération. Exemple : LD Rd,Y+ ; 26/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de données Adressage de la mémoire de données 8. Adressage indirect de la mémoire de données avec déplacement (Data Indirect with Displacement) : L’adresse de l’opérande est obtenue en ajoutant au contenu du registre Y-Register ou Z-Register (mais pas X-Register) un déplacement codé sur 6 bits (disp6). L’instruction contient un OP code sur 5 bits, un registre source ou destination sur 5 bits et le déplacement noté q (disp6) sur 6 bits. Exemple : LDD Rd,Y+q ; 9. Adressage constant du mémoire programme (Program Memory Constant Addressing for LPM and SPM) : Les 15 bits les plus significatifs (MSB) du registre Z permettent de sélectionner l’adresse du mot de mémoire. Pour l’instruction LPM, le bit le moins significatif (LSB) permet de sélectionner un des deux octets du mot. 27/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de données Adressage de la mémoire de données (16 bits) (16 bits) (Code machine de 2 octets) (Code machine de 2 octets) (08FFH) RAMEND (08FFH) RAMEND Data Indirect with Displacement Data Indirect with Post-increment X, Y OR Z - POINTER Y OR Z - POINTER (16 bits) (16 bits) (Code machine de 2 octets) OP Rr/Rd k=disp6 (08FFH) (5 bits) (5 bits) (6 bits) (08FFH) RAMEND RAMEND (Code machine de 2 octets) 28/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de programmes Adressage de la mémoire de programmes 9. (suite) : Si ce bit vaut 0, on sélectionne l’octet bas du mot, et s’il vaut 1, on sélectionne l’octet haut. Pour l’instruction SPM, le bit 0 doit être égal à zéro. Exemple : LPM Rd,Z ; 10. Adressage post-incrémenté du mémoire programme (Program Memory with Post-increment, for LPM Z+) : Comme 9. avec, une fois l’opération effectuée, le registre Z est incrémenté. Exemple : LPM Rd,Z+ ; 11. Adressage direct de la mémoire de programme (Direct Program Addressing, JMP and CALL) : L’exécution du programme se poursuit à l’adresse k (addr16) contenue dans l’instruction. Exemple : JMP addr16 ; 29/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de programmes Adressage de la mémoire de programmes 12. Adressage indirect de la mémoire de programme (Indirect Program Addressing, IJMP and ICALL) : Le PC est chargé avec le contenu du Z-Register (sur 16 bits) et l’exécution du programme se poursuit à l’adresse contenue dans Z-Register. Exemple : IJMP ; 13. Adressage relatif de la mémoire de programme (Relative Program Addressing, RJMP and RCALL) : Le PC est incrémenté puis additionné à une valeur k (addr12) codée sur 12 bits (appelée adresse relative et comprise entre -2048 et 2047) et le programme se poursuit à l’adresse PC + 1 + addr12. Exemple : RJMP addr12 ; 30/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de programmes Adressage de la mémoire de programmes (16 Kmots =32 Ko) octet haut octet bas (Code machine de 2 octets) LSB = 1 LSB = 0 Adresse du mot 15 LSB (3FFFH) Adresse du mot = (aaaa aaaa aaa)2 Adresse de l'octet bas = (aaaa aaaa aaa0)2 Adresse de l'octet haut = (aaaa aaaa aaa1)2 31/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de programmes Adressage de la mémoire de programmes 32/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de programmes Adressage de la mémoire de programmes (16 Kmots =32 Ko) octet haut octet bas (Code machine de 2 octets) LSB = 1 LSB = 0 Adresse du mot 15 LSB (3FFFH) 33/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de programmes Adressage de la mémoire de programmes (10 bits) (22 bits) (16 Kmots =32 Ko) (Code machine de 4 octets) (16 bits) 16 (seulement 16 bits utilisées de 22 bits) (MSB = 0 de PC, car 15 bits sufusants ) (3FFFH) 34/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de programmes Adressage de la mémoire de programmes (16 Kmots =32 Ko) 16 (Code machine de 2 octets) (MSB = 0 de PC, car 15 bits sufusants ) (3FFFH) 35/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Modes d’adressage de l’assembleur Atmega328P Adressage de la mémoire de programmes Adressage de la mémoire de programmes (16 Kmots =32 Ko) (MSB = 0 de PC, car 15 bits sufusants ) 16 (Code machine de 2 octets) k=addr12 (4 bits) (12 bits) (3FFFH) 36/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Instructions de Atmega328P Symboles utilisés dans les instructions Registre SREG : 7 6 5 4 3 2 1 0 I T H S V N Z C SREG = ITHS VNZC Adresse − IO(SREG ) = 3FH, Adresse − DS(SREG ) = 5FH On a toujours le bit de signé S = V ⊕ N H et C se sont des emprunts pour les soustractions Atmege328P a une architecture AVRe+ d, r = 0 à 31 data8 = 0 à 255 (8 bits), ou data8 = −128 à 127, data8 = (bbbb bbbb)2 data6 = 0 à 63 (6 bits), ou data8 = −32 à 31, data6 = (bb bbbb)2 37/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Instructions de Atmega328P Symboles utilisés dans les instructions addr 22 = 0 à 4M − 1 (22 bits) seulement les16 bits moins significatifs sont utilisés pour l’Atmega328P addr 16 = 0 à 64K − 1 (16 bits). 128 KB program memory maximum. addr 5 − IO = 0 à 31 addr 6 − IO = 0 à 64 Adresse relative : addr 12 = −2K à 2K − 1 = −2048 à 2047 (12 bits), addr 12 = (aaaa aaaa aaaa)2 Adresse relative : addr 7 = −64 à 63 (7 bits) disp6 = 0 à 63 (6 bits) b = 0 à 7 et s = 0 à 7 38/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Instructions de Atmega328P Symboles utilisés dans les instructions STACK c’est la pile en commençant par une adresse et on descend dans les adresses lors de l’empilement des données, et on monte dans les adresses lors de dépliement des données. 1 mot = 2 octets = 16 bits SKIP= (ignorer, sauter, passer) l’instruction suivante. L’instruction suivante n’est pas exécutée. Cycles=1/2/3 (Si la condition est fausse c’est 1, Si la condition est vraie c’est 2 (ou 3) selon l’instruction suivante est de taille 1 (ou 2 mots). DS : Data Space (Espace de Données) PS : Program Space (Espace de Programmes) IOS : I/O Space (Espace des Entrées/Sorties) 39/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Instructions de Atmega328P Instructions arithmétiques Addition 40/95 Chapitre 2 : Présentation du microcontrôleur Atmega328P et son Assembleur Instructions de Atmega328P Instructions arithmétiques Addition Description complémentaire (suite) : Num Flags Octets Cycles Remarques 1 et 2 H,S,V,N,Z,C 2 1 d, r = 0 à 31 3 S,V,N,Z,C 2 2 d = 24, 26, 28, 30 Exemples : 1 ADD R1,R2 ; instruction numéro 1 résultat : R1 ← R1 + R2, R1 ← 88H + 99H, R1 ← 21H et H=1, S=1, V=1, N=0, Z=0, C=1, SREG

Use Quizgecko on...
Browser
Browser