Exactement ce que fait le lb instruction de le faire?

J'ai un examen à venir, et l'un des problèmes était:

Supposer que $t0 contient la valeur 0x12121212 et $t1 contient
l'adresse 0x1000000.

Supposent que la mémoire de données, à partir de l'adresse 0x1000000 est:
88 77 66 55.

Quelle sera la valeur de $t0 après le code suivant est exécuté:

lb $t0, 0($t1)

a) 0x00000088 b) 0x88121212 c) 0xffffff88 d) 0x12121288

La réponse que j'ai donné était a, parce que l'octet que le lb en cours de lecture (selon ma compréhension de ce que l'instruction n') est de 88. 88 sera ensuite stockée dans $t0, par conséquent, la valeur sera 0x00000088. Mais la réponse donnée était c. J'ai l'impression d'un malentendu fondamental sur la façon lb œuvres - quelqu'un peut-il expliquer pourquoi la réponse est c?

  • Ressemble à l'extension du signe pour moi
  • Je le croyais aussi, mais je n'ai pas du tout comprendre pourquoi le signe de l'extension a été fait - pourriez-vous expliquer dans une réponse?
InformationsquelleAutor Daniel | 2013-02-12