MIPS Assembler, einen Byte laden: Adress out of bounds?
Hallo, folgendes Problem; ich speicher ein Wort und möchte den ersten Byte auslesen:
.data ##
.text
.globl main
main:
li $s0, 0x1234abcd
lb $s1,0x00($s0)
Aus s0 soll er geladen werden, in diesem Fall d, aber ich bekomme diesen Fehler:
Runtime exception at 0x00400008: address out of range 0x1234abd1
Überall im Internet ist der gleiche Code, wieso funktioniert er bei mir nicht?
1 Antwort
![](https://images.gutefrage.net/media/user/GeneralAnal01/1702848615909_nmmslarge__0_0_3586_3586_d3659600ab21361539659abaae2952b5.jpg?v=1702848616000)
probiere mal das:
.data
word_to_read: .word 0x1234abcd
.text
.globl main
main:
la $s0, word_to_read
lb $s1, 0($s0)
# Jetzt ist der Wert in $s1 der erste Byte des Wortes in word_to_read
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
das hat tatsächlich funktioniert, war ein software problem, danke
![](https://images.gutefrage.net/media/user/GeneralAnal01/1702848615909_nmmslarge__0_0_3586_3586_d3659600ab21361539659abaae2952b5.jpg?v=1702848616000)
warum nicht. Probier mal folgendes:
.data
.text
.globl main
main:
li $s0, 0x1234abcd
lb $s1, 0($s0)
# Jetzt ist der Wert in $s1 das erste Byte an der Adresse 0x1234abcd
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
la ladet die adresse nicht das wort meinte ich
mit diesem programm bekomme ich genau den selben fehler :(
![](https://images.gutefrage.net/media/user/GeneralAnal01/1702848615909_nmmslarge__0_0_3586_3586_d3659600ab21361539659abaae2952b5.jpg?v=1702848616000)
Alle guten Dinge sind 3: .data
.text
.globl main
main:
li $s0, 0x1234abcd
lb $s1, 0($s0)
# Jetzt ist der Wert in $s1 das erste Byte an der Adresse 0x1234abcd
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
kommt der gleiche fehler, ach egal, ich frage morgen meinen professor
danke für deine hilfe
![](https://images.gutefrage.net/media/user/ruhrgur/1621327657300_nmmslarge__0_0_858_858_8190bccd2abee6c63a0e0a6e1e450f3d.jpg?v=1621327658000)
Assembler ist leider nicht mein Fachgebiet, deswegen schreibe ich auch keine eigene Antwort sondern werfe das hier nur einmal als Kommentar mit ein:
.data
.text
.globl main
main:
li $s0, 0x1234abcd
andi $s0, $s0, 0xFFFFFFF8
lb $s1, 0x00($s0)
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
habe ich schon, das passiert das gleiche
habe es extra so gefragt, damit es übersichtlicher ist
wieso hast du la benutzt?