Assembler
Über Bearbeiten - Assembler kann man
den eingebauten Assembler aufrufen. Dieser übersetzt nicht nur
die Mnemonics der Befehle in die zugehörigen Zahlencodes, sondern erlaubt auch
die Benutzung von Variablen, Konstanten
und das Setzen von Marken für die
Sprungbefehle.
Ein Assemblerprogramm besteht aus 3 Blöcken: der Variablendeklaration,
der Konstantendeklaration und dem eigentlichen Programm:
var: | |
variablenname1 | |
variablenname2 | |
... | |
ende | |
konst: | |
konstante1 = xxx //xxx ist... | |
// Dies ist ein Kommentar, eingeleitet durch zwei /-Zeichen | |
konstante2 = yyy | |
ende | |
progr: | |
BF1 xxx | |
adr1: | BF2 variablenname1 |
BF3 konstante1 | |
... | |
SPU adr1 //Sprung zur Marke adr1 (ohne Doppelpunkt!) | |
... | |
ende | |
Die Blöcke werden durch die Schlüsselwörter
var:, konst: und progr:
eingeleitet und jeweils mit dem Schlüsselwort ende
abgeschlossen. Die ersten beiden Blöcke können entfallen. Der
Programmblock kann nicht entfallen und muss aus mindestens einem
Befehl bestehen.
Für Variablen wird im RAM eine Speicherzelle reserviert; diese
können auch direkt bei der Deklaration mit einem (Start-)wert
belegt werden:
var: | |
variablenname1 = xxx | |
... | |
ende |
Beispiel: Das folgende
Programm gibt bei jedem Betätigen der Taste STP
eine "Zufallszahl" zwischen 1 und 6 aus. Für die
nächste Zahl muss das Programm wieder mit RUN
gestartet werden. Hier wird die Eigenschaft von MiniPC
ausgenutzt, dass bei einer (äußeren) Unterbrechung durch STP
der Inhalt von Zelle 0 zur Anzeige bringt; der Programmzähler
steht danach auf der nächsten auszuführenden Anweisung des
Programms.
//Würfelprogramm, Start bei 000 oder 001 | |
var: | |
vergleichszahl=7 | |
schritt | |
ende | |
progr: | |
spu anfang //Start auch bei 000 möglich | |
anfang: | AKO 1 |
ABS schritt | |
schleife: | ABS 0 |
ADD schritt | |
VGL vergleichszahl | |
SPB anfang | |
SPU schleife | |
ende |
Die Übersetzung des Assemblerprogramms in Maschinencode
(Objektcode) erfolgt durch Betätigen der Assemblieren-Schaltfläche.
Der Maschinencode wird nicht automatisch in das RAM von MiniPC
übertragen; ist eine Übertragung gewünscht, kann dies durch
die Übertragen-Schaltfläche erreicht
werden.