Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   MiniAsm32 (https://www.delphipraxis.net/82728-miniasm32.html)

r2c2 18. Dez 2006 21:49


MiniAsm32
 
Liste der Anhänge anzeigen (Anzahl: 4)
Hallo DPler :hi:
für meinen Info-Kurs hab ich ne kleine Einadressmaschinensimmulation(Was für n Wort 29 Chars :shock:) programmiert.

Kurz was zur Vorgeschichte:
Unser Lehrer wollte mit uns n bisschen Assembler machen, hat sich aber nicht getraut den Inline-Assembler zu nehmen[1]. Also haben wir uns mit nem stark vereinfachten Assembler zufrieden geben müssen. Zum Assemblieren hat er dann n Uralt-TurboPascal-Prog, was er vor ewig und 3 Tagen mal geschrieben hat, vorgesetzt. Da ich nicht gewillt war, mich allzu lang mit diesem Prog rumzuärgern, hab ich was mit Delphi programmiert.

Was ist MiniAsm32?
Kurz gesagt eine Einadressmaschinensimmulation. Es wird ein Modellrechner mit Registern, Flags, Stack, "Monitor", etc. simmuliert. Auf dieser Maschine können nun kleine 'Assemblerprogramme' ausgeführt werden. Dabei sind Syntax, Aufbau und Möglichkeiten der Assemblersprache stark vereinfacht und die Anzahl der Befehle(Mnemonics) auf ein Minimum rediziert. Das macht das Erlernen sehr leicht. Ziel ist es die Denkweise von Assembler zu vermitteln. MiniAsm32 ist also - wer hätts gedacht - nicht für den produktiven Einsatz, sondern hautsächlich zu Lehrzwecken gedacht...

Features
- Stack
- Register(Akku, InstructionPointer, Flags)
- Arithmetische Operationen
- Labels
- apassbare Mnemonics[2]
- Ein-/Ausgabe auf integrierter Konsole
- Kleine "IDE"
- Syntaxprüfung
- Highlighting für Kommentare und Zahlen
- Zeilennummern
- ...

Vereinfachungen
- kein Heap
- keine FPU
- eingeschränkter Befehlssatz
- nur 2 Flags(Zero und Sign)
- nur 2 Register(Akku und InstructionPointer)
- alle Register sind 32 Bit groß und können nur komplett engesprochen werden

Kurz noch was zum Code:
- Erstellt mit TurboDelphi für Win32
- SynEdit wird dynamisch erstellt
- eigene TConsoleMemo-Komponente[3] wird dynamisch erstellt
- steht unter MPL

ToDo
- Beakpoints
- Optionen
- ggf. verbessertes Highlighting
- Erweiterung der Konsole
- ...

Und noch n Link:
http://r2c2.weingut-rehn.de/prog5_MiniASM32.htm

[1] Hinterher muss man wohl sagen unbegründeterweise. Haben ne HÜ geschrieben mit nem Durchschnitt von 13,4 Punkten :shock: Vielleicht hatte es aber auch noch andere Gründe, dass er keinen richtigen Assembler nehmen wollte...

[2] Hab die von meinem Lehrer übernommen, weil ich ihm nicht zumuten wollte, dass er uns jetzt neue beibringen muss. Da die aber doch recht... gewöhnungsbedürftig sind(Deutsch und Englisch gemischt, etc.), hab ich die einfach anpassbar gemacht. Zum Ändern einfach die Syntax.ini bearbeiten und MiniAsm32 neustarten. Wer gleich ne gebräuchlichere Syntax haben möchte ersetzt die syntax.ini durch die im Anhang.

[3] Diese hab ich vor noch etwas auszubauen und ggf. mal separat hier einzustellen, auch, wenns eigentlich nix besonderes ist...

rfc

Christian

r2c2 18. Dez 2006 21:56

Re: MiniAsm32
 
Liste der Anhänge anzeigen (Anzahl: 1)
...und noch n paar kleine Beispielprogramme...

Sorry für den Doppelpost, aber mehr, als 4 Attachments darf ich nicht machen...

rfc

Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz