Différence entre les ajouter et addu

Je suis confus au sujet de la différence entre ajouter et addu.

Le MIPS instruction de référence dit:

  • ajouter (à débordement)
  • ajouter non signé (pas de débordement)

Ma compréhension est d'utiliser ajouter à la signature du opérandes et addu avec unsigned opérandes.

Mais considérons cet exemple (avec seulement 6bit):

débordement 
| 
V 
1 | 1 1 1 <- effectuer 
| 1 1 1 1 0 1 + 
| 1 1 1 1 1 0 = 
----------------- 
| 1 1 1 0 1 1 

Et c'est mon raisonnement:

  • si je considère que le premier et le deuxième opérande signé numéros (complément à deux), puis le résultat est correct (-3 + -2 = -5) et je ne veux pas d'une exception de dépassement de capacité. Je voudrais donc utiliser addu pour éviter cette exception, mais, bien que le résultat est le même, le nom suggère d'utiliser des addu est pour les nombres non signés!
  • si je considère que le premier et le deuxième opérande unsigned numéros, alors je veux une exception soulevée (parce 61 + 62 n'est pas égal à 59). Je voudrais donc utiliser ajouter à lever l'exception, et non pas addu, comme son nom l'indique de le faire.

Maintenant mes questions sont:

  • en supposant que les opérandes sont signés (négatif dans l'exemple ci-dessus) doit-je utiliser addu (comme mon raisonnement suggère) ou, devrais-je utiliser la fonction ajouter (comme son nom l'indique)?
  • en supposant que les opérandes ne sont pas signés (positive) des nombres, dois-je utiliser la fonction ajouter (comme mon raisonnement suggère) ou addu (comme son nom l'indique)?
très mal nommée instructions. il ny a pas une telle chose comme un unsigned ajouter ou signé ajouter. il a à voir avec le piégeage ou pas doivent avoir été addut ou quelque chose comme ça...(qui peut encore l'être depuis l'assembleur n'est pas quelque chose de gravé dans la pierre, comme le code machine)

OriginalL'auteur collimarco | 2013-05-19