2017-02-14 15 views
2

Dans MIPS, une instruction de saut de 32 bits comprend 6 bits pour l'opcode et 26 bits pour l'adresse cible (destination) que nous voulons mettre le programme contre.Dans MIPS, pourquoi une instruction de saut peut-elle définir le compteur de programme sur une adresse cible de 28 bits?

Cependant, il est possible de définir le compteur de programme sur une adresse cible de 28 bits. Comment cela est-il possible si nous ne pouvons adapter que 26 bits dans l'instruction de saut?

Répondre

4

Les instructions sur MIPS étant toujours alignées sur 4 octets, les 2 bits les plus faibles de toute adresse cible valide ne peuvent être que zéro. Ainsi, les 26 bits spécifiés dans les instructions de saut sont toujours implicitement décalés de 2 positions, définissant ainsi les 28 bits les plus faibles du PC.

+1

"_et pourquoi les instructions sont-elles alignées sur 4 octets?" Parce qu'ils sont de largeur fixe. –