Seite 1 von 3
Assembler
Verfasst: 05.04.2006 22:10
von steffi
Hallo zusammen,
ich habe da eine kleine Frage, und zwar arbeite ich schon seit ein paar Woche mit PB und möchte jetzt ein großes Projekt entwickeln. Dieses soll ein Assembler werden, der in PureBasic geschrieben ist. Daher muss ich ersteinmal genau wissen, wie der Assembler den ASM Code in Binären Rechencode umwandelt.
Ich hoffe Ihr denkt nicht, dass ich größenwahnsinnig bin, denn ich stelle mir das relativ einfach vor

.
z.B.: Datei auslesen -> Befehl "ADD" gefunden -> Umwandeln (10100110) -> und dann Binär speichern
Naja ich hoffe, dass ich nicht falsch informiert bin

.
Ein Link zu einer Seite, die sich damit beschäftigt wäre super oder eine Tabelle mit dem den ASM Befehlen
ADD = 10110001
MOV = 11000110
...
Liebe Grüße,
Steffanie
Verfasst: 05.04.2006 22:20
von MVXA
Einen einfachen Assembler zu schreiben ist auch nicht das Problem. Das
Problem fängt an, wenn man einen Assembler schreiben möchte, der z.b.
mit Makro und den ganzen spielerein auffallen möchte. Was vielleicht für
dich interessant sein dürfte, ist Flatassember (
www.flatassembler.net ).
Das Vieh ist OpenSource.
Verfasst: 05.04.2006 22:30
von yuma
Hallo Steffanie,
Assembler wandeln die ASM-Befehle einfach in ihr Zahlenmässiges Äquivalent.
Beispiel i386:
XOR al, 99 -> der Assembler produziert: 34 99
Kannst Du auch prima nachvollziehen, wenn Du (so Du mit DOS oder Windows arbeitest) auf der Kommandozeile einfach mal Debug.exe eingibst und dann 'u' als Befehl eingibst, dann bekommst sowas:
Code: Alles auswählen
-u
150B:0100 0000 ADD [BX+SI],AL
150B:0102 0000 ADD [BX+SI],AL
150B:0104 0000 ADD [BX+SI],AL
150B:0106 0000 ADD [BX+SI],AL
150B:0108 0000 ADD [BX+SI],AL
150B:010A 0000 ADD [BX+SI],AL
150B:010C 0000 ADD [BX+SI],AL
150B:010E 0000 ADD [BX+SI],AL
150B:0110 0000 ADD [BX+SI],AL
150B:0112 0000 ADD [BX+SI],AL
150B:0114 0000 ADD [BX+SI],AL
150B:0116 0000 ADD [BX+SI],AL
150B:0118 0000 ADD [BX+SI],AL
150B:011A 0000 ADD [BX+SI],AL
150B:011C 3400 XOR AL,00
150B:011E FA CLI
150B:011F 1400 ADC AL,00
-
Viel Spaß beim proggen des Assemblers
Yuma
PS: Link zu einer Seite mit Assemblerbefehlen kann man eigentlich nicht geben... Da die Syntax massgeblich vom Prozessortyp abhängt... Schliesslich gibt es nicht nur i386-Prozessoren auf der Welt
Wenn Du für PCs die Befehle suchst, schau Dich doch mal auf den Seiten von Intel oder AMD um... In den CPU-pdf's sollten auch die Assemblerbefehle enthalten sein...
Verfasst: 05.04.2006 22:32
von steffi
Erstmal vielen Dank für die schnelle Antwort
Macros und die anderen Funktionen, möchte ich erstmal nicht verwirklichen.
Mein Assembler soll in erster Linie die einfachen ASM Befehle beherschen (32 und 64 bit).
Verfasst: 05.04.2006 22:33
von steffi
Guter Tip. Das werde ich mal sofort ausprobieren ...
Verfasst: 07.04.2006 00:20
von steffi
Kann mir denn keiner helfen?
Verfasst: 07.04.2006 12:32
von bobobo
Verfasst: 07.04.2006 17:05
von Helle
Hallo steffi,
Dein Vorhaben in allen Ehren, aber ich befürchte, dies wird in Frust enden. Hier behaupten ja einige Spassvögel, nichts ist einfacher als einen Assembler zu schreiben. Vielleicht hast Du Dir bobobo´s Link schon zu Gemüte geführt. Als ich so etwas zum ersten Mal sah (lang ist´s her...

), habe ich gedacht, das begreif ich nie. Und glaub mir, es hat gedauert...
Und das Dokument ist Stand 1997; was glaubst Du, was inzwischen dazu gekommen ist (Du schreibst ja selbst von 64-Bit).
Konkret: Was der binäre Code soll, weiss ich nicht. Bringt nichts. Was soll ein "einfacher" Assembler? Entweder kompletter Befehlssatz oder gar nichts. Wie willst Du testen, ob das von Dir Produzierte funktioniert? Wenn Du nicht testen kannst glaubst Du vielleicht es ist o.K., obwohls der grösste Käse ist.
Ich freue mich über jede(n), der sich in welchem Zusammenhang auch immer mit Assembler beschäftigt und ich möchte mit diesem Posting nur verhindern, dass Du demnächst sagst, Assembler ist Mist.
Übrigens: Ich behaupte mal, es gibt weit mehr Office-Programme als Assembler. Woran das wohl liegt...

?
Gruss
Helle
Verfasst: 07.04.2006 17:14
von MVXA
Einen Assembler zu schreiben ist auch wirklich nicht schwer. Das
schwere ist die Infos zu beschaffen. Ich habe mal im Rahmen eines
Interpreten Projekts (nicht easy) eine Art Assembler geschrieben.
Der war innerhalb von einem Tag fertig.#
> Ich behaupte mal, es gibt weit mehr Office-Programme als Assembler.
Assembler kenne ich 5, Office Programme nur 3

Verfasst: 07.04.2006 18:05
von AndyX
MVXA hat geschrieben:Ich habe mal im Rahmen eines
Interpreten Projekts (nicht easy) eine Art Assembler geschrieben.
Der war innerhalb von einem Tag fertig.
Lass doch mal bitte den source rüberwachsen....