18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Rechnergrundlagen Teil 2 - 22 - Prof. Dipl.-Ing. Komar<br />

DEBUG wird aber nur eine mnemonische Abkürzung ausgegeben und deswegen kann sich das dissassemblierte<br />

Programm bezüglich seiner Mnemonik vom ursprünglichen Quellprogramm unterscheiden.<br />

Jump if Flags für Sprung<br />

JA / JNBE Above / Not Below or Equal (vl.D) C = 0 AND Z = 0<br />

JAE / JNB /JNC Above or Equal / Not Below / Not Carry (vl.D) C = 0<br />

JB / JNAE / JC Below / Not Above or Equal / Carry (vl.D) C = 1<br />

JBE / JNA Below or Equal / Not Above (vl.D) C OR Z = 1<br />

JG / JNLE Greater / Not Less nor Equal (vb.D) ( S XOR O ) OR Z = 0<br />

JGE / JNL Greater or Equal / Not Less (vb.D) S XOR O = 0<br />

JL / JNGE Less / Not Greater nor Equal (vb.D) S XOR O = 1<br />

JLE / JNG Less or Equal / Not Greater (vb.D) ( S XOR O ) OR Z = 1<br />

JE / JZ Equal / Zero Z = 1<br />

JNE / JNZ Not Equal / Not Zero Z = 0<br />

JO Overflow O = 1<br />

JNO Not Overflow O = 0<br />

JS Sign S = 1<br />

JNS No Sign (positiv ) S = 0<br />

JNP / JPO No Parity / Parity Odd P = 0<br />

JP / JPE Parity / Parity Even P = 1<br />

JCXZ CX is Zero Register CX = 0<br />

vl.D = vorzeichenlose Dualzahl vb.D = vorzeichenbehaftete Dualzahl<br />

Wiederholungsschleifen<br />

Schleifen mit festem Schleifenzähler CX. CX wird nach jedem Schleifendurchlauf dekrementiert und abgefragt.<br />

LOOP ziel CX = CX – 1 und springe wenn CX ≠ 0<br />

LOOPE / LOOPZ ziel CX= CX – 1, springe wenn CX ≠ 0 und Z = 1 (Ergebnis = 0 )<br />

LOOPNE / LOOPNZ ziel CX= CX –1, springe wenn CX ≠ 0 und Z = 0 (Ergebnis ≠ 0 )<br />

ziel is t eine relative 8-Bit-Adresse<br />

Unterprogrammaufruf CALL – RET<br />

Unterprogramme sind Programmteile, die von verschiedenen Programmstellen aufgerufen werden können und<br />

die nach Beendigung an die Stelle ihres Aufrufs zurückkehren. Unterprogramme werden mit dem CALL –<br />

Befehl aufgerufen und müssen mit dem Rücksprung-Befehl RET (Return) abgeschlossen werden.<br />

Beim Aufruf <strong>eines</strong> innerhalb des Segments liegendem Unterprogramms (Intrasegment) bleibt das Codesegment-<br />

register CS unverändert und es wird nur der Befehlszähler IP auf den Stapel gerettet und anschließend wird IP<br />

mit der CALL-Adresse ( Offset ) überschrieben und damit wird zum ersten Befehl des Unterprogramms<br />

verzweigt.<br />

Mit dem RET-Befehl wird die Rücksprungadresse ( Offset ) vom Stapel in den Befehlszähler IP<br />

zurückgeschrieben und damit wird hinter dem CALL-Befehl mit der Programmabarbeitung fortgefahren.<br />

CALL adresse direkte 16-Bit-Wortadresse<br />

CALL word-register Unterprogrammadresse befindet sich im 16-Bit-Register<br />

CALL WORD PTR wort Unterprogrammadresse befindet sich im Speicher-wort<br />

CALL WORD PTR [wreg] Adresse der Unterprogrammadresse befindet sich im Wortregister<br />

RET Rücksprung aus Unterprogramm ( Rückspr.-Adresse vom Stapel )<br />

RET zahl Rücksprung und Stapelzeiger SP um zahl erhöhen

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!