6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
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