2017-03-15 2 views
0

ich die größte Int in eine Registerdatei setzen muß, setzt die (2147483647) (0x7FFFFFFF)Wie größte 32-Bit-Ganzzahl in eine Registerdatei

.data 

input : .word 0x7FFFFFFF #+ infinity 

.text 
    la $a0, input 

    move $t0, $a0 

der Eingang Etikett jedoch diesen Wert halten kann, ich kippe Übertragung auf $ a0 und a 0 $ wird 268500992.

lui $a0, 0x7FFF 
ori $a0, 0xFFFF 

arbeiten kann, aber ich brauche Argument von .data Segment zu übernehmen. Können Sie mir eine Lösung anbieten?

Antwort

2

move $t0, $a0 kopiert den Wert $a0 in $t0. Also, was Sie bekommen, ist die Adresse input, nicht der Wert an dieser Adresse.

Was Sie wollen, ist ein Wort (32 Bits) aus dem Speicher laden, d. H. lw $t0, ($a0).

+0

Wie ich verpasst könnte, dass ich glaube, ich bin zu verlieren meinen Verstand danke“.data Eingang: .WORD 0x7FFFFFFF # + unendlich .text la $ s0, Eingang lw $ a0, 0 ($ s0) "hat gearbeitet – Emre