web-dev-qa-db-fra.com

Dans MIPS, qu'est-ce que HI et LO

Je lis sur la division dans MIPS et j'ai trouvé que div

Divise $ s par $ t et stocke le quotient dans $ LO et le reste dans $ HI

http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html

Et Wikipedia dit

HI et LO sont utilisés pour accéder aux résultats du multiplicateur/diviseur, accessibles par les commandes mfhi (déplacer de haut) et mflo.

http://en.wikipedia.org/wiki/MIPS_architecture

Les registres HI et LO sont-ils? De quels registres de nombre s'agit-il?

21
hodgesmr

Ce sont des registres spéciaux utilisés pour stocker le résultat de la multiplication et de la division. Ils ne sont pas directement adressables. Leur contenu est accessible avec des instructions spéciales mfhi et mflo

Ils sont présents dans l'unité de multiplication et sont chacun de 32 bits. Plus d'informations ici .

27
codaddict

HI et LO ne sont pas des registres numérotés, IIRC. Ils ne sont utilisés que pour stocker les résultats d'opérations qui ne rentreraient pas dans un seul registre (par exemple, la multiplication de deux entiers de 32 bits pourrait entraîner un entier de 64 bits, de sorte que le débordement passe en HI).

edit: selon cette description de classe , ce sont en effet des registres spéciaux, donc ils ne sont pas numérotés, et ne sont accessibles qu'en utilisant des commandes spéciales.

10
Sean

Ce que LO fait, c'est que pour la multiplication, il stocke les bits les moins significatifs, et HI stocke le reste des bits, mais principalement, nous nous concentrons uniquement sur la partie LO pour la multiplication. En division, nous nous concentrons sur les deux. LO en division est l'endroit où le quotient doit être stocké et HI est le reste.

2
Nick M