Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Fingerboarder
Anmeldungsdatum: 09.12.2006 Beiträge: 37
|
Verfasst am: 09.07.2008, 09:48 Titel: [ASM] Wann wird .incbin ausgeführt? [SOLVED] |
|
|
Hi!
Nach langer Pause mal wieder ne Frage.
Ich hab das .incbin-Beispiel von Volta und es funktioniert bestens.
(http://wadepohl.homepage.t-online.de/fbas/Askurs/incbin.html)
Nun frage ich mich jedoch wie das File eingebunden wird? Na auf jeden nicht zur Laufzeit. Also kann man dieses InlineAssembler nicht in eine Funktion mit dem Dateinamen als Parameter packen. Aber ASM kann doch auch zur Laufzeit ausgeführt werden?! Oder ist .incbin eine Art ASM-Präprozessor Anweisung?
Mfg Fingerboarder
Zuletzt bearbeitet von Fingerboarder am 09.07.2008, 11:57, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 09.07.2008, 10:40 Titel: |
|
|
Hi,
ich habe jetzt nicht verstanden was du genau fragen willst?
Incbin (include binary) macht eigentlich nichts anderes als die DATA - Anweisung in Basic.
Daten werden Byte für Byte beim kompilieren aus dem angegebenen File übertragen.
D.h. das einzubindende File muss beim kompilieren vorhanden sein und wird in dein Kompilat eingebaut. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
Fingerboarder
Anmeldungsdatum: 09.12.2006 Beiträge: 37
|
Verfasst am: 09.07.2008, 11:06 Titel: |
|
|
Ja das hab ich verstanden. Nur ich frag mich ob .incbin nach dem compilieren auch nochmal ausgeführt wird. Also wenn ich für den Dateinamen eine Variable nehme und mit einer Funktion mehrere Dateien einbinden möchte. Geht das? Nach meinem jetzigen Verständnis nicht.
Mfg Fingerboarder |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 09.07.2008, 11:35 Titel: |
|
|
Nein.
Da der Befehl mit einem Punkt anfängt, wird er so ähnlich aufgefasst wie ein Präprozessor.
Nehmen wir mal folgenden Code:
Code: |
Asm
.incbin "text.txt"
End Asm
|
text.txt wird direkt an exakt dieser Stelle und nirgendwo anders Byte für Byte, Bit für Bit aus der Datei in die Binary kopiert.
Für das Programm war das dann (glaube ich) auf dem Heap oder dem Stack verfügbar, sorry weiss nicht mehr wie das genau war, kann auch sein das das OS das irgendwie hinbiegt.
Fakt ist jedoch, dass es zumindest so in der Binary steht. |
|
Nach oben |
|
|
Fingerboarder
Anmeldungsdatum: 09.12.2006 Beiträge: 37
|
Verfasst am: 09.07.2008, 11:57 Titel: |
|
|
Gut, danke, dann ist das geklärt! |
|
Nach oben |
|
|
|