2010-10-13 5 views
3

Pouvez-vous dire en les regardant lesquelles de ces adresses est aligné sur le mot?Comment déterminer si l'adresse est alignée sur le mot

0x000AE430
0X00014432
0X000B0737
0X0E0D8844

+3

Est-ce que ce sont les devoirs? Quelle est la taille des mots de votre machine? Oui je peux. – JoshD

+0

divisible par la taille des mots de la machine? –

+1

Pour une taille de mot de N, l'adresse doit être un multiple de N. * Hint *: pour les valeurs les plus courantes de N, il suffit de regarder le dernier chiffre de l'adresse. –

Répondre

12

La réponse courte est oui. Mais vous devez définir le nombre d'octets par mot. Certaines architectures appellent deux octets un mot, et quatre octets un double mot. Dans tous les cas, vous calculez simplement mentalement addr%word_size ou addr&(word_size - 1), et voyez si c'est zéro. Lorsque l'adresse est hexadécimale, elle est triviale: il suffit de regarder le chiffre le plus à droite et de voir si elle est divisible par la taille du mot.

Pour une taille de mot de 4 octets, les deuxième et troisième adresses de vos exemples ne sont pas alignées. Deuxième a 2 et le troisième a un 7, dont aucun n'est divisible par 4. Pour une taille de mot de 2 octets, seule la troisième adresse est non alignée.

Questions connexes