Discussion:Architecture MIPS

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Sans remettre en cause la qualité générale de l'article, il me semble que cette phrase manque de neutralité (notamment concernant l'efficacité) et mériterait au moins un note & des sources:

"Les jeux d'instructions de base (en particulier MIPS I) sont si simples et efficaces qu'un bon nombre de cours d'architecture des ordinateurs, autant dans les universités que les écoles techniques, portent sur l'étude de l'architecture MIPS."




Je pense qu'on pourrait rajouter une section sur les registres

Registres[modifier le code]

Description des registres généraux[modifier le code]

Il y a 32 registres généraux[1].

Le registre 0 ($zero) est toujours égal à zero.

Le registre 1 ($at) est réservé par l'assembleur.

Les registres 2 et 3 ($v0 et $v1) permettent de stocker des résultats des fonctions[2].

Les registres 4 à 7 ($a0 à $a3) permettent de stocker les 4 premiers arguments du sous-programme [2].

Les registres 8 à 15 ($t0 à t7) sont des registres temporaires.

Les registres 16 à 23 ($s0 à s7) sont des registres sauvegardés et utilisés plus tard. [2]

Les registres 24 et 25 ($t8 et $t9) sont des registres temporaires.

Les registres 26 et 27 ($k0 et $k1) sont des registres réservés au système.

Le registre 28 ($gp) correspond au global pointer.

Le registre 29 ($sp) correspond au stack pointer.

Le registre 30 ($fp) correspond au frame pointer.

Le registre 31 ($ra) correspond à l'adresse de retour.


Description de quelques registres particuliers[modifier le code]

Parmi les registres spéciaux, on peut parler des registres li (où on trouve les résultats des divisions et des multiplications) et ho (où on trouve le reste lors des divisions)[3].

Dans le cas où le résultat d'une multiplication serait sur 64 bits, les 32 bits supérieurs seraient stockés dans hi et les 32 bits inférieurs seraient stockés dans lo [3]. On peut récupérer les valeurs de hi et lo avec respectivement, les instructions mfhi et mflo[3].

Par exemple pour les divisions, on peut donner l'exemple suivant:

addi $t3, $0, 37
addi $t4, $0, 2
div $t3, $t4
mflo $t0 #équivaut à 37 / 2 équivaut à 18 (le quotient)
mfhi $t1 #équivaut à 37 % 2 équivaut à 1 (le reste)

Et pour les multiplications, on peut donner l'exemple suivant:

addi $t3, $0, 37
addi $t4, $0, 2
mult $t3, $t4
mflo $t1 #on y trouve le produit mais il faut que le produit soit sur 32 bits

Iwikinew (discuter)