MIPS de l'Assemblée - lui $t0, 4097?
Quelqu'un peut-il m'expliquer comment fonctionne lui
qui fonctionne, ce qui ne "4097
", ce qui ne l'ajout de 8
à $t0
veux dire?
.data 0x10010000
blank: .asciiz " " # 4097
newline: .asciiz "\n" # 4097 + 2
#input_start
Alength: .word 13
Aarray: .word 130, 202, 30, 4440, 530, 532, 33, 204, 8, 524, 8933, 92, 10
#input_end
.text
lui $t0, 4097
ori $a0, $t0, 8 # address of A[]
lw $a1, 4($t0) # load length
OriginalL'auteur das_tnr | 2011-12-05
Vous devez vous connecter pour publier un commentaire.
4097 = 1001 hex
donc, la première instruction met 0x10010000 dans le registre t0. lui est "charge supérieure immédiate", "supérieur" sens de la partie supérieure de 16 bits, et "immédiate" signifie que vous êtes en lui donnant une valeur littérale (4097). 4097 comme une "haute" valeur devient 0x10010000.
ori est "immédiate", avec 8 étant la valeur immédiate, de sorte que le montant de l'adresse dans a0 est 0x10010008, qui est l'adresse où Aarray vie.
La dernière instruction lw est "charger word" qui charge à partir de l'adresse de mémoire dans t0 (qui à ce stade est encore juste 0x10010000) plus 4 octets (le 4 est un décalage de t0 et de résultats, dans un discours où ALength vie) 4 octets de données en a1.
OriginalL'auteur Jim Buck
lui $t0, 4097 est la charge de supérieur immédiat de l'instruction. La valeur immédiate(4097) est décalé vers la gauche de 16 bits et stockés dans le $t0 registre. Les 16 bits de poids faible sont des zéros.
OriginalL'auteur Johnny Rocket