Hallo Leute, folgende Funktion lässt sich nicht kompilieren : int AddUp ( int n, int near *pTab) { __asm { ; open inline-assembly block mov r2,pTab ; R2:=start of table mov r3,n cmp r3,#0 jmp cc_sle,stop ; shl r3,#1 ; n * 2 add r3,r2 ; R3 := (n*2)+pTab, end of table + 2 mov r4,#0x00 ; clear result lM: add r4,[r2+] ; add up next value cmp r2,r3 ; end of table ? jmp cc_nz,lM ; loop if not eot ret ; need result in R4 stop: nop ; single line assembly nop ; another nop } return (0); } Der Fehler scheint zu sein, dass die Variablen "pTab" und "n" im Assembler-Code nicht als Variablen erkannt werden und dann beim Ausführen des Assmeblers als "undefined symbols" eingehen. (Übrigens das ist ein Beispiel-Code von www.Keil.com (dieser Minuten leider server down)). Ist es vielleicht eine Compiler-Option, die ich übersehen habe ?! Danke für Eure Hilfe ! MfG, Khani
Ja ja, schmeiß die Brocken nur so hin. Würde Dir denn sowas Spaß machen ? Ich vermute mal, es geht NICHT um den AT89C4051 und NICHT um den Keil Compiler UVW Version XYZ. Zu weiterem Rätselraten habe ich keine Lust mehr. Peter P.S.: Ist Dir schon mal aufgefallen, daß Fehlermeldungen einen Text haben und auch eine Zeilennnummer ?
Danke Peter, mit genau dem Text des obigen wurde mir schon wo anders geholfen. MfG, Khani. P.S.: Warum antwortest Du, wenn Du nicht willst ?!
weil sein kommentar richtig ist, nur der ton könnte was freundlicher sein :) ein paar mehr details könnten nicht schaden, vor allem die genaue fehlermeldung
"P.S.: Warum antwortest Du, wenn Du nicht willst ?!" Ich wollte Dir ja nur helfen, Deine Fragen so zu stellen, daß sie ein anderer auch verstehen kann ohne ein Hellseher sein zu müssen. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.