Supposons que nous avons deux entiers et les variables caractères:quel sera le mode d'adressage dans le code d'assemblage généré par le compilateur ici?
int adad=12345;
char character;
Supposons que nous discutons d'une plate-forme dans laquelle, la longueur d'une variable entière est supérieure ou égale à trois octets, je veux accéder à la troisième octet de cet entier et de le mettre dans la variable de caractère, avec cela dit je l'écrire comme ceci:
character=*((char *)(&adad)+2);
Considérant que la ligne de code et le fait que je ne suis pas un expert du compilateur ou de l'ensemble, je sais un peu sur les modes d'adressage dans l'assemblage et je me demande l'adresse du troisième octet (ou je suppose qu'il vaut mieux dire décalage du troisième octet) ici serait dans les instructions générées par cette ligne de code eux-mêmes, ou ce serait être dans une variable distincte dont adresse (ou décalage) est dans ces instructions?
Cela dépend entièrement du compilateur. Vous devez regarder le code émis par votre compilateur (s). –
Heck, ça dépend aussi de la puce. – dmckee