Comment puis-je accéder à l'état des bits individuels d'un mot en MIPS?
Je suis en train d'écrire un programme et j'ai besoin de déterminer si les bits 3 et 6 sont fixés. Je sais que je peux faire tourner un mot ou gauche/droite déplacer.
Mais comment puis-je accéder aux différents bits de l'état? Puis-je utiliser un opérateur au niveau du bit like et/xor?
OriginalL'auteur Mithrax | 2009-04-15
Vous devez vous connecter pour publier un commentaire.
Vous feriez un bit à bit et avec 0x08 et 0x40 (si le bit 0 est le bit de poids le plus faible). Vous utilisez l'andi instructions pour ce faire.
Si $t0 est la valeur que vous voulez tester:
$t1 sera non nulle si le bit 3 est défini, $t2 sera non nulle si le bit 6 est réglé.
OriginalL'auteur Michael
Oui, les opérateurs sur les bits sont ce que vous utilisez. Vous pouvez ET avec un masque de bits qui a seulement les bits 3 et 6 ensemble. Puis faire une comparaison à zéro.
quelque chose comme (je n'ai pas fait de l'assembleur dans un temps long):
Vous avez raison. J'ai été bâclée. Il faut comparer à 0x48 et puis jz au lieu de jnz.
Si vous fixé je voterais pour vous.
Est-il approprié pour moi de modifier ma réponse pour résoudre le problème après les gens ont commenté?
OriginalL'auteur MadCoder
Une technique pour tester un peu unique en MIPS de l'assemblée est de changer le binaire souhaitée dans le bit en position, et bltz/bgez pour tester l'état du bit. Cela permet d'économiser une instruction dans les cas où l'andi instruction ne peut pas être utilisé pour sélectionner les bits.
OriginalL'auteur Lance Richardson