![]() |
Fehlermeldung beim Kompilieren von "temp.s" - Druckversion
+- FB18.de - Das Informatikforum ( /mybb ) +-- Forum: Bachelorstudieng ( /forumdisplay.php?fid=112 ) +--- Forum: PM Technische Informatik ( /forumdisplay.php?fid=100 ) +--- Thema: Fehlermeldung beim Kompilieren von "temp.s" ( /showthread.php?tid=10253 ) |
Fehlermeldung beim Kompilieren von "temp.s" - Roberto - 06.01.2009 12:14 Hey Leute, Habt ihr folgende Fehlermeldung schon mal gesehen!? rzdspc10$ cc temp.s ld: fatal: relocation error: R_SPARC_13: file temp.o: symbol <unknown>: value 0x20da8 does not fit ld: fatal: relocation error: R_SPARC_13: file temp.o: symbol <unknown>: value 0x20db0 does not fit rzdspc10$ Er spuckt mir also keine "a.out" aus, sondern eine "temp.o".... Weiß damit nicht viel anzufangen!? Bin um jede Hilfe dankbar! :) RE: Fehlermeldung beim Kompilieren von "temp.s" - Roberto - 06.01.2009 13:06 Oder weiß jemand, was diese Meldung bedeutet? warning: 2-word "setuw" pseudo-instruction in delay slot (follows CTI) RE: Fehlermeldung beim Kompilieren von "temp.s" - Fred - 06.01.2009 13:52
Roberto schrieb:
ld: fatal: relocation error: R_SPARC_13: file temp.o: symbol <unknown>: value 0x20da8 does not fit
ld: fatal: relocation error: R_SPARC_13: file temp.o: symbol <unknown>: value 0x20db0 does not fit
Das bedeutet, dass du wahrscheinlich sowas geschrieben hast:
Code:
mov fmt, %l0
Der mov-Befehl kann aber nur 13-Bit-Werte verarbeiten. Versuche es stattdessen mit dem set-Pseudo-Befehl:
Code:
set fmt, %l0
Roberto schrieb:
warning: 2-word "setuw" pseudo-instruction in delay slot (follows CTI)
Das bedeutet, dass Du direkt nach einem Sprungbefehl ein set verwendest, was nicht erlaubt ist:
Code:
ble somelabel
Wenn Du möchtest, dass das set noch vor dem Sprung ausgeführt wird, schreibe:
Code:
set a, %l0
Ansonsten:
Code:
ble somelabel
RE: Fehlermeldung beim Kompilieren von "temp.s" - Roberto - 06.01.2009 14:02 Vielen Dank für die Antwort und die Informationen... Ich bin noch ein Assembler Gringo und daher über jede Hilfe dankbar! :) Fred, du hattest an anderer Stelle erwähnt, dass du eventuell ein kleines Tutorial bastel möchtest!? Wenn du dich dafür entschließt, wäre ich dir sehr dankbar...und ich glaube so einige mit mir! ;) Weisst du zufällig, wie hoch der Assembler Anteil in der Klausur sein wird? ;) RE: Fehlermeldung beim Kompilieren von "temp.s" - Roberto - 06.01.2009 14:06 Wunderbar, jetzt klappt es! :) Allerdings hat sich eine weitere Frage ergeben.... Was bedeutet "Bad System Call"? RE: Fehlermeldung beim Kompilieren von "temp.s" - Fred - 06.01.2009 14:11
Roberto schrieb:
Weisst du zufällig, wie hoch der Assembler Anteil in der Klausur sein wird? ;)
Da fragst Du am besten einen der letzten Jahrgänge, ich habe noch nie eine RS-Klausur gesehen.
Roberto schrieb:
Was bedeutet "Bad System Call"?
Tritt dieser Fehler zur Übersetzungszeit oder zur Laufzeit auf? Ich vermute mal, dass Du vergessen hast, Dein Programm per
Code:
mov 1, %g1
zu beenden, ist aber nur ein Schuss ins Blaue. Ich müsste den Code sehen, um genaueres sagen zu können.
RE: Fehlermeldung beim Kompilieren von "temp.s" - Roberto - 06.01.2009 14:15 ! Information für Binder .global main .global printf ! Deklaration von Daten .section ".data" a1: .half 0 a2: .half 15 a3: .half 65 a4: .half 64 fmt: .asciz "Ergebnis: %d\n" ! ausführbares Programm .section ".text" main: mov -9, %l0 cmp %l0, 9 bge ende nop set a1,%l7 ! Startwert 0 in l7 schleife: smul %l0,%l0,%l1 ! x*x in l1 smul %l1,%l0,%l2 ! x*x*x in l2 set a2,%l3 ! 15 in l3 smul %l1,%l3,%l4 ! 15 *x*x in l4 sub %l2, %l4,%l1 ! x*x*x - 15*x*x in l1 set a3,%l2 ! 65 in l2 smul %l2,%l0,%l3 ! 65*x in l3 add %l1,%l3,%l2 ! x*x*x - 15*x*x + 65*x in l2 set a4,%l1 ! 64 in l1 sub %l2,%l1,%l3 ! x*x*x - 15*x*x + 65*x - 64 in l3 cmp %l3,%l1 bg speichern mov %l3,%l1 speichern: mov %l3,%o1 add %l0,1,%l0 cmp %l0,9 ble schleife nop ende: set fmt,%o0 call printf set 1,%g1 ta 0 Ich glaube der Schuss ins Blau war es nicht... ;) Die Message liefert er mir, nachdem er mir ein Ergebnis -9823451 anzeigt. Allerdings kann dies nicht stimmen, oder? RE: Fehlermeldung beim Kompilieren von "temp.s" - Fred - 06.01.2009 14:24
Roberto schrieb:
ende: set fmt,%o0
call printf set 1,%g1 ta 0 Ich glaube der Schuss ins Blau war es nicht... ;)
Füge mal ein nop hinter das call printf ein und sage mir, ob sich dadurch etwas ändert. Falls ja, war es der Schuss ins Blaue:
Code:
ende: set fmt,%o0
RE: Fehlermeldung beim Kompilieren von "temp.s" - Roberto - 06.01.2009 14:35 Nun ist die Meldung weg! :) Vielen Dank... Da war der Schuss ins Blaue wohl doch eher ein Schuss ins Schwarze! ;) |