ISA et assembleur
Sur un RISC-V little-endian, un registre contenant 0x12345678 est écrit à l'adresse 0x100 avec « sw ». Si l'on lit ensuite avec « lbu » l'octet à l'adresse 0x101, quelle est sa valeur ?
- A0x34
- B0x56
- C0x78
Afficher la réponse et l'explication
Réponse : B. 0x56
En little-endian, les octets de poids faible de la valeur sont placés en premier aux adresses les plus basses. Pour 0x12345678, 0x100 contient 0x78, 0x101 contient 0x56, 0x102 contient 0x34 et 0x103 contient 0x12. L'octet à 0x101 vaut donc 0x56. En big-endian, l'ordre serait 0x12, 0x34, … à partir de 0x100, et 0x101 contiendrait 0x34. Il faut tenir compte de cette différence lors du traitement de formats réseau ou de fichiers.