Scriptsprache kompilieren
Übersicht

Merier |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke Thunder das ist auch ne gute Idee die werde ich wohl nehmen.^^
thx P.S: Wie könnte man denn den Code in eine Exe kopieren ohne das die Exe nicht mehr funktioniert? mfg Merier |
||
MaxxBetreff: Compiler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Auf der Seite sind einige Tutorials wie man einen Compiler schreiben könnte.
Hier der dirkete Link: http://iconsoft.de/index.php?show=tutorial_asm Du müssest deine Befehle in Nativencode (Maschinencode) umwandeln. Hier ein Beispiel: MOV AH,01h Wert 1 in das Register A-High schieben Code: [AUSKLAPPEN] file = Writefile("programm.com") ; ausführbare DOS-Datei erstellen WriteByte file, $B4 ; Der MOV AH Befehl WriteByte file, $01 ; Der Parameter (01h) Closefile (file) Du fragst dich sicherlich: "Warum bitte erstellt der Typ eine Datei für DOS?" Die Antwort lautet, dass eine .exe noch einen komplizierten Header usw. braucht und eine DOS-Datei so einfacher zu erstellen ist. Nun wird das Programm aber mit einer Fehlermeldung abstürzen.... Was fehlt sind folgende zwei Maschinenbefehle; Code: [AUSKLAPPEN] WriteByte file, $B4 ; Schreibe in das Register AH WriteByte file, $00 ; den Wert 0 WriteByte file, $CD ; Rufe das Interrupt WriteBYte file, $21 ; 21 auf Nun wird dein Prozessor das Interrupt 21h ausführen, welches wiederum das DOS-Programm beenden wird, da die Parameter für das Interrupt im Register AH liegen. 0 sagt den Interrupt: "DOS programm beenden". Falls du nicht weißt, was ein Interrupt ist: http://iconsoft.de/index.php?show=tutorial_int Zum Schluss noch einmal den gesamten Code Code: [AUSKLAPPEN] file = Writefile("programm.com") ; ausführbare DOS-Datei erstellen WriteByte file, $B4 ; Der MOV AH Befehl WriteByte file, $01 ; Der Parameter (01h) WriteByte file, $B4 ; Schreibe in das Register AH WriteByte file, $00 ; den Wert 0 WriteByte file, $CD ; Rufe das Interrupt WriteBYte file, $21 ; 21 auf CloseFile(file) MfG Maxx |
||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach doch einen Linker der ein vorhandenes Interpreter exe modul mit dem Script versachmilzt.
BB Cruncher wäre da ne große Hilfe. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, also wenn schon kompilieren dann auch nach assembler und nich nach c++. Anschliessend nen Assembler (z.B Flat Assembler) drüberlaufen lassen.
@Maxx: das is doch assembler, oder nich? Kein Maschinencode. Grob zusammengefasst: - lies das Compiler Bau buch von Niklaus Wirth - durchforste wikipedia( ![]() - Assembler lernen wär nich schlecht^^ lg ComNik |
||
WIP: Vorx.Engine |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group