Version 2.0 Aktualisiert: 30.03.04



NOP
Null Operation. Ausser IP wird nichts verändert. [90]

NOT
Invertiert alle Bits im Operanden: 0 --> 1 ; 1 --> 0
Beispiel:
mov ah,10010100b  ;ah=10010100b
not ah            ;ah=01101011b

OR
Logische ODER-Verknüpfung: Der Zieloperand wird bitweise mit dem Quelloperand verknüpft.
OR Ziel,Quelle. Das Ergebnis wird im Zieloperand abgelegt.
Beispiel:
mov ah,10010100b  ;ah=10010100b
mov al,10110101b  ;al=10110101b
or  ah,al         ;ah=10110101b

OUT
Ausgabe eines Bytes oder Words an eine Portadresse: OUT Portadresse,AX bzw. AL.
Wenn die Portadresse grösser als 255 ist muss der Wert in DX stehen sonst kann der als 
Direktwert angegeben werden.
Beispiel:
mov  al,´%´
out  60h,al      ;Schreibt das Zeichen % in den Tastaturpuffer (Adresse 60h)

!POP
Der Befehl POP holt den letztgespeicherten WORD Wert vom Stack und erhäht danach den
Stackpointer um den Wert 2.
Beispiel:
push ax   ;ax sichern
pop  ax   ;ax holen

POPF
Holt analog zum Befehl POP das Statusregister, d.h. die Flags vom Stack.
Beispiel:
pushf   ;Flags sichern
popf    ;Flags holen

!PUSH
PUSH verringert den Stackpointer um 2 und Speichert ein WORD auf dem Stack.
Beispiel:
push  es  ;es sichern
pop   ds  ;Gesicherten Wert nach ds

PUSHF
Speichert analog zum Befehl PUSH das Statusregister, d.h. die Flags auf dem Stack.
Beispiel:
pushf   ;Flags sichern
popf    ;Flags holen

REP
REP wiederholt (REPeat) den nachfolgenden Stringbefehl bis CX gleich null ist. REP decrementiert 
selbständig. Es existieren folgende Varianten des Befehls: REPE/REPZ wiederhole bis
CX = 0 und ZF = 1 ; REPNE/REPNZ wiederhole bis CX = 0 und ZF = 0
Beispiel:
Siehe die einzelnen Stringbefehle

!RET
RET (RETurn) kehrt aus einem Unterprogramm zurück, welches durch einen CALL - Befehl
aufgerufen wurde.
Beispiel:
.
.
call Write        ;Das Unterprogramm Write aufrufen
.
.
Write  PROC  Near ;Deklaration des Unterprogramms
mov  ah,09h       ;Beispielcode
int  21h
ret               ;Zurück
Write  ENP        ;Ende der Prozedur
[C3;CB;C2;CA]

STC
STC setzt das Carry Flag auf 1 (SeT Carry flag).
Beispiel:
clc   ;CF = 0
stc   ;CF = 1

STD
Setzt das Direction Flag, dadurch verlaufen alle Stringoperationen von rechts nach links zur
kleineren Adresse hin.

STI
Mit STI (SeT Interrupt flag) werden die Interrups die mit CLI gesperrt wurden wieder zugelassen.
Siehe auch CLI.

STOS
STOSB überträgt den Inhalt von AL in einen durch ES:DI adressierten Speicherbereich.
STOSW überträgt den Inhalt von AX. Mit REP können mehrere Daten übertragen werden. 

SUB
SUB Ziel,Quelle subtrahiert den Inhalt des Quelloperanden vom Zieloperanden. Das Ergebnis wird
im Zieloperanden abgelegt.
Beispiel:
mov  ah,100      ; ah=100
sub  ah,25       ; ah=75
mov  ah,99       ; ah=99
mov  al,09       ; al=9
sub  ah,al       ; ah=90

TEST
TEST verknüpft den Zieloperanden bitweise mit dem Quelloperanden durch eine UND Verknüpfung. 
Das Ergebnis wird nicht abgespeichert, sondern verändert nur das Statusregister.
Beispiel:
Man will pr&uumL;fen, ob das Bit 6 von ah gleich eins oder null ist:
test ah,01000000b
je   Label1       ;Springe wenn Bit 6 = 1
jne  Label2       ;Springe wenn Bit 6 = 0

XCHG
Tauscht den Inhalt eines Registers mit einem anderem Register oder einem Speicherplatz.
Beispiel:
mov   ax,70h     ; ax=70h
mov   bx,40h     ; bx=40h 
xchg  ax,bx      ; eXCHanGe: Austauschen der Inhalte ==> ax = 40h  bx = 70h

!XOR
Logische XOR-Verknüpfung: Der Zieloperand wird bitweise mit dem Quelloperand verknüpft.
XOR Ziel,Quelle. Das Ergebnis wird im Zieloperand abgelegt.
Beispiel:
mov ah,10010100b  ;ah=10010100b
mov al,10110101b  ;al=10110101b
xor ah,al         ;ah=00100001b

xor ax,ax         ;ax=0 (Schneller als mov ax,00)
Weiter geht es mit einem Programm.
Zurück Weiter Inhalt