ACHTUNG: Die Definitionen von des SRLV Befehls unterscheiden sich zwischen dem SPIM Tutorial und dem PDF, das nur den Befehlssatz enthält.
Einmal heißt es: Rd = R1 div 2^R2
Das andere mal dagegen: Rd = R1 div 2^(R2 mod 32)
Wer versucht die aufgabe nach def1 zu lösen (ohne das mod), wird in einer Endlosschleife hängen bleiben!
Das mod, das wohl irgendjemand für unwichtig hielt, ist hier leider entscheident!
H3.1 SRLV
tja daran lags auch,
bei mir war halt 64mod32 immer 2 und nicht 0
aber es ändert nichts an der tatsache,
dass wenn ich das program am pc ausführe,
es trotzdem ne endlosschleife gibt oO
wenn ich das prog schritt für schritt ausführe.
sind die beiden t register irgendwannmal wieder bei 8 und 4.....
bei mir war halt 64mod32 immer 2 und nicht 0

aber es ändert nichts an der tatsache,
dass wenn ich das program am pc ausführe,
es trotzdem ne endlosschleife gibt oO
wenn ich das prog schritt für schritt ausführe.
sind die beiden t register irgendwannmal wieder bei 8 und 4.....
[align=center]


[/align]


[/align]
- dEeP-fRiEd
- Kernelcompilierer
- Beiträge: 432
- Registriert: 19. Okt 2005 00:58
- Wohnort: Darmstadt
- Kontaktdaten:
Hm also bei mir läuft das in PCSPIM auch nicht korreckt, allerdings keine Endlosschleife sondern er will eine Consolen eingabe und meckert dann
"Attempt to execute non-instruction at 0x00400070"
Ich glaub das Problem ist, dass der Syscall am Ende des Progs Müll ist, denn der erwartet ja einen Paramter in v0 (für exit 10)
Hab das syscall mal mit jr $ra ersetzt. Dann läuft er durch.
Komischerweise steht in v0 am Ende sogarein a (was ja Hex für 10 ist), also hätte es eigentlich durch laufen müssen.... komisch o.O
edit: Ah, achtung, wenn ein Programm beendet wird steht in v0 immer die 10 (für den exit call) und das ist aber nicht das Ergebnis von der a
"Attempt to execute non-instruction at 0x00400070"
Ich glaub das Problem ist, dass der Syscall am Ende des Progs Müll ist, denn der erwartet ja einen Paramter in v0 (für exit 10)
Hab das syscall mal mit jr $ra ersetzt. Dann läuft er durch.
Komischerweise steht in v0 am Ende sogarein a (was ja Hex für 10 ist), also hätte es eigentlich durch laufen müssen.... komisch o.O
edit: Ah, achtung, wenn ein Programm beendet wird steht in v0 immer die 10 (für den exit call) und das ist aber nicht das Ergebnis von der a

NOSCE TE IPSUM
visit: http://www.flicknetwork.net.tc
visit: http://www.flicknetwork.net.tc
- dEeP-fRiEd
- Kernelcompilierer
- Beiträge: 432
- Registriert: 19. Okt 2005 00:58
- Wohnort: Darmstadt
- Kontaktdaten:
ja weil ein shift um 64 mod 32 ist ja ein shift um 0 also bleibt die zahl wie sie ist!
NOSCE TE IPSUM
visit: http://www.flicknetwork.net.tc
visit: http://www.flicknetwork.net.tc