Assembleur, adressage immédiat, extrait de programme, programmeur, compilateur, bloc générique, adressage indirect, offset, code source, programme élémentaire
"L'extrait de programme ci-dessous permet de réaliser des opérations de chargement immédiat de constantes dans le registre R0. Dans le bloc « normal » on utilise des instructions de chargement immédiat MOV. Le bloc « générique » réalise exactement les mêmes opérations mais à l'aide d'instructions de chargement LDR.
La colonne de gauche contient le code tel qu'il a été écrit par le programmeur. La colonne de droite contient le code généré par le compilateur (c'est ce que vous observerez lors du débogage sous Keil)".
[...] Q14 Le S de MOVS R0 signifie qu'on modifie les flags N,Z,C,V du PSR (Program Status Register). Q15 A l'issue de MOVS R0, le flag Z va se lever car le dernier résultat est nul Q16 R0 = 0x00000000 R1 = 0xFFFFFFFF R2 = 0x00000001 Q17 L'instruction MOVNE n'a pas été exécutée car le flag Z n'est pas égal à zéro à l'issue de MOVS R0, #0. En revanche MOVEQ s'est exécutée car le flag Z est égal à zéro. R1 et R2 contiennent donc des valeurs différentes (R1 n'a pas été mis à jour). [...]
[...] Q3 L'assembleur a choisi l'instruction LDR en adressage indirect avec déplacement pour remplacer l'instruction générique. A l'issue de l'exécution de l'instruction : R0 = Mémoire[pc+48] = Mémoire[(0x080001F0 + + 48] = Mémoire[0x08000240] Q4 Taille de chaque élément de desoctets : 1 octet Q5 Taille de chaque élément de des32bits : 4 octets Q6 Suite d'octets : 10 FF 22 7D 61 2F 77 FF Q7 Suite d'octets : AA 55 AA 55 78 62 35 10 26 25 24 23 Q8 des32bits contient 3 éléments de 4 octets 12 octets. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture