86
APPENDIX C. ASM : LE MANUEL DE RÉFÉRENCE
Le format est libre, un blanc devant séparer le code-opération de l’opérande.
L’assembleur ne tient pas compte de la casse (majuscule ou minuscule) des let-
tres.
L’étiquette est un identificateur alphanumérique, c’est-à-dire une suite de
lettres et de chiffres débutant par une lettre.
Le code-opération peut éventuellement être suivi de .L pour préciser que
le format de l’instruction est long. Dans la plupart des cas, cette précision est
inutile.
Les constantes, sur 16 bits, peuvent s’exprimer sous forme décimale (235),
hexadécimale (0xa30c), binaire (0b1111000000110101) ou caractère (’xy’).
Les opérandes acceptés correspondent à la syntaxe suivante :
registre R0 àR15 ex: R12
registre, registre ex: R2,R4
registre, constante ex: R5,3
registre, identificateur ex: R8,total
registre, identificateur(registre) ex: R6,table(R2)
registre,(registre) ex: R4,(R7)
identificateur ex: suite
identificateur(registre) ex: table(R2)
constante ex: 0x2fc3
constante, constante ex: ’c’,0
Dans la quasi-totalité des cas, il est nécessaire d’utiliser le préfixe "#" devant
une constante pour indiquer une opération immédiate :
LD.L R2,0x3f4 Le registre R2 reçoit le contenu du mot mémoire d’adresse
0x3f4.
LD.L R2,#0x3f4 Le registre R2 reçoit la valeur hexadécimale 0x3f4.
Le suffixe .L indique que l’opération est une instruction longue (sur 4 octets) :
LD R2,#12 Le registre R2 reçoit la valeur 12 car l’instruction créée est
0x012C.
LD.L R2,#0x3f4 Le registre R2 reçoit la valeur 0x3f4 car l’instruction créée
est 0x812003f4.
LD R2,#0x3f4 L’assembleur ne peut générer une constante courte : il assem-
ble l’instruction au format long comme ci-dessus.
LD.L R2,#12 Le registre R2 reçoit la valeur décimale 12, mais l’instruction
est explicitement créée au format long : 0x8120000C.