Hardware Reference
In-Depth Information
durch Angabe
JMP 1B
”
springe ruckwarts zum letzten
1H
“(Back)bzw.
JMP
1F
”
springe vorwarts zum nachsten
1H
“(Forward).
Die Befehle
PUSHJ
und
POP
dienen dem Aufruf von Unterprogrammen. Der
Programmzahler-relativ adressierende Befehl
PUSHJ $X,ziel
bewirkt einen
Sprung nach
ziel
. Er nummeriert dabei die Register um: Alle Register von
$0
bis
$X
werden versteckt und sind nach dem Sprung nicht mehr zugreifbar.
Die versteckten Register werden bei Bedarf automatisch auf einen Stack im
Hauptspeicher ausgelagert. Andere Register werden umnummeriert:
$X
wird
im Unterprogramm zu
$0
,
$(X+1)
wird
$1
usw. Diese Register dienen der
Ubergabe von Parametern an das Unterprogramm. Die im Unterprogramm
verwendeten Register heißen
lokale Register
. Demgegenuber lassen sich Re-
gister beginnend mit
$255
als globale Register kennzeichnen, die dann von
diesem Mechanismus nicht betroffen sind. Der Befehl dazu lautet:
label GREG wert
Maximal durfen 224 Register global werden. Die im Unterprogramm nicht
verwendeten lokalen Register heißen
marginal
. Die Umnummerierung von
PUSHJ
macht
POP n,0
wieder ruckgangig (Ausnahme: in
$X
) steht anschlie-
ßend ein undefinierter Wert. Zusatzlich werden noch die Inhalte der lokalen
Register geloscht, mit Ausnahme der ersten
n
:
$0
bis
$(n-1)
. Diese dienen
der Ruckgabe von Ergebnissen.
Der Assembler
mmixal
lasst die Definition von symbolischen Namen mit der
Pseudo-Anweisung
IS
,alsoetwa
NIS10
oder
iIS$3
zu.
A.3
A.3 Beispielprogramme
Im diesem Anhang stellen wir die beiden Beispielprogramme zusammen, die
in den Kapiteln des Buches naher untersucht werden. Die Programme wei-
sen jeweils charakteristische Merkmale auf, auf Grund derer sie fur spezielle
Untersuchungen in einzelnen Kapiteln besonders interessant sind.
Der Autor erhebt keinesfalls den Anspruch, dass diese Programme besonders
gut programmiert und auspotimiert sind. Aber als Beispiele haben sie sich
in Vorlesungen gut bewahrt. Alle Programme mussen mit den Optionen
-x
und
-b 250
assembliert werden.
Diese Eigenschaften werden hier zunachst zusammengefasst.
mandelbrot
quicksort
Instruktionen
65.305.549
10.216.071
Bedingte Sprungbefehle
11,5%
23,9%
Speicherzugriffe
0,1%
27,4%
Gleitkommabefehle
64,0%
0%
Sonstige Befehle
24,4%
48,7%