MIPS - assemblée BEQ commande
J'ai copié une image d'une tâche, j'ai sur le MIPS - Aseembly.
Je comprends (je pense) ce qui se passe dans le code jusqu'à ce que la ligne:
beq $11, $0, 3
Je comprends que le code fait maintenant un PC RELATIFS à la direction générale pour l'adresse:
PC+4+3*4
Mais je ne comprends pas comment il vient de se passer ce code ici - qu'est-ce que la ligne suivante à excecuted?
Je ferai ma question plus clairement:
Row 1: adds 15 to zero, puts it in $a0 register.
Row 2: ANDs $a0 register with 3, puts the result in $a0.
Row 3: ORs $a0 register with 22, puts the result in $a0.
Row 4: shifts $a0 to the left by 5 bits. Result - in $a0.
Row 5: if $a0 equals $a0, go to PC+4+6*24 address. The address is Row 7 which is:
slt $11, $10, $9
Qui met la valeur 0 dans $t3 registre, parce que $10=$9.
Maintenant, je reçois à la LIGNE 8:
beq $11, $0, 3.
Ce ne la ligne 8?
Toute aide est la appriciated.
Lien Direct vers mon image - cliquez si vous ne pouvez pas lire correctement.
Depuis sur MIPS chaque branche dispose d'un délai fente d'après elle, la prochaine instruction à être exécutée après la branche sera toujours à l'instruction suivant la branche. Cependant, je ne pense pas que ce soit la réponse que vous recherchez. Je pense que vous devez être plus clair sur ce que vous essayez de comprendre.
La ligne 8 est beq, c'est donc une autre comparaison et le potentiel de la branche. Je pense que je pourrais être à côté de l'essentiel de votre question, cependant.
C'est dur à lire, mais la capture d'écran semble avoir une instruction de saut placé dans le retard de la direction de l'instruction que vous appelez la "ligne 5". Cela provoque un comportement indéterminé sur MIPS. Aussi, la cible de la direction générale sur la "ligne 5" ne semble pas être sur la ligne "7", au lieu quelque part au-delà. Adresse
ajout d'un lien vers l'image, voir modifier, merci beaucoup.
La ligne 8 est beq, c'est donc une autre comparaison et le potentiel de la branche. Je pense que je pourrais être à côté de l'essentiel de votre question, cependant.
C'est dur à lire, mais la capture d'écran semble avoir une instruction de saut placé dans le retard de la direction de l'instruction que vous appelez la "ligne 5". Cela provoque un comportement indéterminé sur MIPS. Aussi, la cible de la direction générale sur la "ligne 5" ne semble pas être sur la ligne "7", au lieu quelque part au-delà. Adresse
0x0040003C
, je pense.ajout d'un lien vers l'image, voir modifier, merci beaucoup.
OriginalL'auteur Assaf | 2014-08-07
Vous devez vous connecter pour publier un commentaire.
beq $11, $0, 3
moyens de saut à la troisième instruction à l'avance debeq
si$11 == $0
. Par exemple:le nombre
3
sera le premier signe étendu et ajouter ensuite le compteur de programme$pc
:ou tout simplement:
la
4
est parce que chaque instruction MIPS est de 4 octets taille.beq $rs, $rt, n
saute à la nième instruction APRÈS l'instruction SUIVANTE. Donc, si$11
est égal à$0
, il serait, direction générale à l'enseignement 4.OriginalL'auteur