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.

MIPS - assemblée BEQ commande

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 0x0040003C, je pense.
ajout d'un lien vers l'image, voir modifier, merci beaucoup.

OriginalL'auteur Assaf | 2014-08-07