Chap2 Asm
Chap2 Asm
Chap2 Asm
Front-end
(syntax & Back-end
C preprocessor semantic (code generator)
analysis)
load A
sub B
store C
• Constantes textuelles
– Motorola foo EQU value
• Macros avec paramètres
– Dans les assembleurs plus évolués
Zone de données :
– Données initialisées : DATA
– Données non initialisées : BSS
unsigned lineNb = 0;
static long L = 100000; size needed for BSS segment
data segment
int main ( ) { initialized global and
static variables
int i, k, *pi;
Mnémonique
Acronyme: ASL (Arithmetic Shift Left)
Abréviation: ADD (Addition)
Opérandes
Registres: nom
Constantes: valeurs immédiates
Désignation d’adresses en mémoire
Grande variété de notations suivant les assembleurs,
Danger: ordre des opérandes
Src, Dest pour Motorola
Dest, Src pour Intel, SPIM
Charles André – Université de Nice – Sophia Antipolis
Pseudo-instructions
• Ce sont des instructions supportées par
l’assembleur, mais pas directement
implantées par une instruction en
langage machine.
• Exemple en SPIM:
blt a,b,Less ; go to Less if a < b
Est transformé en
slt $at,a,b ; REG[at] ← (a < b)
bne $at,$zero,Less ; go to Less if at≠0
directive
DBIT variables de type bit
DB variables de type byte (8)
DW variables de type word (16)
DD variables double word (32)
DP variables de type pword (48)
DQ variables quad word (64)
DT variables de ten byte (80)
Charles André – Université de Nice – Sophia Antipolis
Zones et directives de
réservation de mémoire (2)
68HC11 :
Non initialisée : Reserve Memory Byte
étiquette RMB entier