Adresse einer Variable in char-Array schreiben
-
Hi,
ich habe folgendes Problem: ich möchte in ein char array einen assemblerbefehl und eine zieladresse schreiben. Die Zieladresse ist die Adresse einer int Variable.
Wie kann ich das realisieren? Ich stellte mir so etwas vor wie:int signal = ...; char message[] = "movl ..., "+&signal;
Bin normalerweise eher in Java zuhause und daher was c betrifft etwas unbeholfen, sry...
Gruß und Dank im Voraus,
Jan
-
Was genau möchtest du denn tun?
Du kannst nicht Assemblercode an einer Speicheradresse schreiben, sonndern musts den kompilierten Code (also die Bytes) schreiben.*edit*
Habe mir deinen Beitrag nochmal durchgelesen und festgestellt, dass man den auch anders verstehen kannint signal; char message[1024]; snprintf (message, sizeof(message), "movl ..., %08Xh", signal);
-
Was möchtest du eigentlich mit dem char-Array machen? Das Problem ist, die Speicheradresse ist ein int und man müsste sie erst in einen String umwandeln. Wie man das anstellt, kann ich dir leider auch nicht sagen.
EDIT: Zu langsam...
-
Danke für die schnelle Reaktion!
Hier noch mal genauere Problembeschreibung:
Ich möchte per asm() einen at&t Assemblerbefehl ausführen, der aus einem bestimmten Register in eine bestimmte Adresse im Hauptspeicher schreibt. Es soll jedoch keine feste Adresse sein, sondern die Adresse der "signal"-Variable in diesem Beispiel. Also muss ich die Adresse mit in den String, den ich asm übergebe reinbasteln.Gruß, Jan
-
timmy443 schrieb:
Ich möchte per asm() einen at&t Assemblerbefehl ausführen, der aus einem bestimmten Register in eine bestimmte Adresse im Hauptspeicher schreibt.
Dürfte auf den Compiler ankommen, wie du das machst. Bei GCC z.B. einfach mal in die Doku schauen
-
*g* sehr verwirrende Threadreihenfolge jetzt
Also das Grundsätzliche Problem ist wirklich die Umwandlung von Speicheradresse in String und dann halt das konkatenieren. Wobei ich jetzt verstehe, wie letzteres funktionieren sollte. Was GCC angeht ist das Problem, dass ich nicht mit C arbeite sondern mit diesem seltsamen nesC Dialekt wozu man rein gar nichts findet
Falls jemandem einfällt wie ich Speicheradressen in Strings umwandeln kann, wäre ein Hinweis cool!Gruß, Jan
-
-
timmy443 schrieb:
Falls jemandem einfällt wie ich Speicheradressen in Strings umwandeln kann, wäre ein Hinweis cool!
Habe ich mein Beispiel jetzt umsonst geschrieben?
-
lol, das hab ich auch übersehen
-
Kleiner Zusatz: Je nachdem, ob du den Wert oder die Adresse der Variable "signal" nutzen möchtest, übergibst du "signal" oder "&signal".
-
@neku: mist... hatte dich falsch verstanden was das sprintf anging. Zu schnell gelesen, zu wenig nachgedacht
Probier ich dann mal so. Vielen dank!