24.11.2012 Aufrufe

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Diplomarbeit</strong>: Modulares System Programmierung der Knotenpunkte<br />

Das Beispiel aus dem vorigen Abschnitt wird also von der Maschine so gelesen:<br />

03 00 - Versionsnummer (3)<br />

01 00 - Anzahl Prozeduren (1)<br />

1B 22 00 00 00 08 00 - Prozedur 0 mit 34 Byte Codelänge <strong>und</strong> 8 Byte Datenlänge<br />

01 00 00 - puValVrMain 0 (a)<br />

06 01 00 - puConst 1 (0)<br />

13 - cmpGT<br />

1E - dup<br />

19 0F 00 - jnot<br />

04 04 00 - puAdrVrMain 4 (x)<br />

06 02 00 - puConst 2 (3)<br />

06 00 00 - puConst 0 (0)<br />

0E - OpMult<br />

01 00 00 - puValVrMain 0 (a)<br />

0C - OpAdd<br />

07 - storeVal<br />

17 - retProc<br />

03 00 - Konstante 0 (3)<br />

00 00 - Konstante 1 (0)<br />

02 00 - Konstante 2 (2)<br />

Abbildung 6.8 - Interpretierte Codedatei<br />

Für jeden Befehl, den die Maschine ausführen soll, existiert eine Funktion, die ihn realisiert <strong>und</strong> auf<br />

dem Kellerspeicher <strong>und</strong> mit dem Speicher arbeitet. Identisch arbeitende Funktionen (z.B. die<br />

Vergleichsoperatoren) wurden dabei weitestgehend zusammengefasst.<br />

while (!Ende)<br />

{<br />

switch (*pC++)<br />

{<br />

case puValVrLocl:FcpuValVrLocl(); break;<br />

case puValVrMain:FcpuValVrMain(); break;<br />

...<br />

}<br />

}<br />

/*--- Push Value Variable local ---*/<br />

int FcpuValVrLocl(void)<br />

{<br />

short Displ,Val;<br />

Displ=getShortParameter(pC);pC+=2;<br />

Val=rd2(pInfProc[iCProc].pVar+Displ);<br />

push2(Val);<br />

return OK;<br />

}<br />

...<br />

Abbildung 6.9 - Beispiele <strong>für</strong> Funktionen der Virtuellen Maschine<br />

26.07.2004 Seite 47 von 85

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!