2011-12-26 12 views
1

Est-ce que l'instruction subu dans MIPS peut me donner un résultat négatif, ou le résultat sera-t-il toujours positif puisque nous faisons la version non signée du sous-marin? Aussi, si je veux faire un décalage arithmétique à droite, et mettre 1 à la 0e position du nombre, devrais-je utiliser l'instruction sra, ou y at-il une autre instruction pour cela?MIPS instruction questions

Répondre

3

Comme toutes les instructions machine, subu vous donnera un résultat binaire - 32 bits qui sont stockés dans le registre de destination. Ces bits ne sont que des bits, ils ne sont ni positifs ni négatifs en eux-mêmes, cela dépend de la façon dont vous les interprétez. Si vous les interprétez comme un entier signé, l'entier peut être positif ou négatif. Vous pouvez à la place traiter les bits comme un nombre de pointeur flottant - d'où les bits proviennent n'est pas pertinent - même si cela peut être non-sens.

Notez que la SEULE différence entre sub et subu est que sub se piège sur débordement, traitant les opérandes comme des entiers signés. subu produira exactement le même résultat, mais ne sera pas piégé.

sra décalages bits vers le bas (vers la droite), laissant le plus haut bit (ce qui est le bit de signe, si on traite les bits dans le registre comme un nombre entier signé) seul, et le copier dans les positions supérieure qui seront libérés