AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MiniAsm32

Ein Thema von r2c2 · begonnen am 18. Dez 2006 · letzter Beitrag vom 18. Dez 2006
Antwort Antwort
r2c2
Registriert seit: 9. Mai 2005
Hallo DPler
für meinen Info-Kurs hab ich ne kleine Einadressmaschinensimmulation(Was für n Wort 29 Chars ) 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 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
Miniaturansicht angehängter Grafiken
screenshot_konsole_122.jpg   screenshot_ide_505.jpg  
Angehängte Dateien
Dateityp: ini syntax_187.ini (305 Bytes, 21x aufgerufen)
Dateityp: zip miniasm32_670.zip (569,7 KB, 35x aufgerufen)
Kaum macht man's richtig, schon klappts!
 
r2c2
 
#2
  Alt 18. Dez 2006, 20:56
...und noch n paar kleine Beispielprogramme...

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

rfc

Christian
Angehängte Dateien
Dateityp: zip miniasm32_beispiele_493.zip (2,0 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz