2016-04-17 4 views
0

Je sais que l'instruction MIPS de 32 bits et les registres de mémoire sont ... bien 32 bits ... et que le PC calcule l'adresse pour cette instruction dans le registre d'instruction.Est-ce que les mips ont des adresses de 32 bits ET des instructions de 32 bits?

Ma question est la suivante: l'adresse 32 bits est-elle ajoutée à une instruction 32 bits?

Ignorant le fait que ce sont tous des zéros ...

est 0x00000000 (adresse) concaténé avec 0x00000000 (instruction)?

Par exemple, R-Type est

OP(6) RS(5) RT(5) RD(5) SHIFTAMMT(5) FUNCT(6) 
=> 32 bit instruction 
=> 000000_00000_00000_00000_00000_000000 

où l'adresse ci-dessus est 000000_00000_00000_00000_00000_000000

sont les deux numéros 32 bits concaténés de telle sorte que PC recrache 32 bits qui correspondent à la moitié supérieure d'une valeur 64 bits? Je vois souvent des tableaux qui ont

Address  Instruction 
0x00000000 0x00000000 

Toute aide serait appréciée.

Répondre

2

Les tableaux que vous voyez souvent montrent l'adresse de l'instruction et l'instruction elle-même. En mémoire, chaque mot (octet) a une adresse qui ne change jamais. L'adresse (l'emplacement utilisé par le processeur) et l'instruction (ce qui est stocké à l'emplacement) sont indépendantes.

0

En ce qui concerne ce que vous demandez, le jeu d'instructions n'a pas plus de longueur fixe.

Pour certaines instructions, les adresses sont contenues dans des registres et il suffit de quelques bits de l'instruction 32 bits pour définir ce registre. Si un registre n'est pas utilisé comme source d'une adresse, alors un pourcentage des bits dans l'instruction contient typiquement un décalage, puisque toutes les instructions sont de 32 bits, le décalage est très probablement dans les unités d'instructions pas dans les octets, aucun point gaspillant ces deux bits. Je ne me souviens pas si Mips a un autre encodage, si c'est le cas, cela ne peut être qu'une fraction de l'adresse.

Un pourcentage des bits d'une instruction doit être réservé pour définir cette instruction, en fonction de ce codage, le reste des bits définit les paramètres de cette instruction. Il existe de nombreuses sources pour ces codages d'instructions, notamment le site internet de Mips. (Il existe une exception à la règle de longueur fixe de 32 bits, ils ont un jeu d'instructions de 16 bits, mais cela ne change pas la façon dont les adresses sont codées, mips n'est pas une longueur variable comme x86 ou autre. en tant que paramètres)

+0

oui mips a des instructions de 32 bits ET des adresses de 32 bits. Une seule instruction ne peut simplement pas héberger une adresse 32 bits complète. –