2017-06-22 2 views
0

De l'Sparc architecture manual, la page 110 pour l'enseignement Add:ensemble sparc - ajoutez l'instruction avec i = 0 ou i = 1

« Si i = 0, ADD et addCc calculer « R [RS1] + R [ rs2] ".Si i = 1, ils calculent " R [rs1] + sign_ext (simm13) "Dans les deux cas, la somme est écrite dans R [rd]."

Lors de la lecture de l'ensemble, comment puis-je savoir si i = 0 ou i = 1? Il ne semble pas qu'il y ait de changement dans le code mnémonique/opcode tel qu'il apparaît dans le code désassemblé.

Répondre

1

Le "i" indique une valeur "immédiate" dans l'instruction. Un immédiat est une constante. Donc, vous verrez quelque chose comme ceci:

add %g1, 59, %g1 

Cela signifie « ajouter la 59 constante g1 et le résultat dans g1 ».

Lorsque i = 0, cela signifie que le paramètre n'est pas immédiat. Donc c'est un registre! Vous verrez cela dans le montage ou le démontage:

add %g1, %o3, %g1 

Et cela signifie ajouter des registres g1 et o3 et le résultat dans o3.