Δημιουργός-πνευματικά δικαιώματα (C) Π. Παπάζογλου

Εντολές ADD, SUB, XCHG, NOP, INC, DEC, ADC



ΠρόσθεσηΕντολή ADD

Η εντολή ADD dest,src προσθέτει τα δύο ορίσματα και αποθηκεύει το αποτέλεσμα στο πρώτο, ενώ ενεργοποιεί το CF (flag) σε περίπτωση που προκύψει κρατούμενο. Τα ορίσματα μπορεί να είναι byte, word ή double word, ενώ το όρισμα dest μπορεί να είναι καταχωρητής γενικής χρήσης ή θέση μνήμης (διεύθυνση). Τέλος, το όρισμα src μπορεί να είναι καταχωρητής γενικής χρήσης, αριθμητική τιμή ή θέση μνήμης (διεύθυνση).


Παραδείγματα

ADD AX,BX

πρόσθεση καταχωρητών (AX=AX+BX)


ADD AX,[si]

πρόσθεση περιεχομένου διεύθυνσης με καταχωρητή (AX=AX+[si])


ADD [di],al

πρόσθεση καταχωρητή σε θέση μνήμης ([di]=[di]+al)


ADD al,09

απευθείας πρόσθεση αριθμητικής τιμής σε καταχωρητή (al=al+09)


ADD [ετικέτα],09

απευθείας πρόσθεση αριθμητικής τιμής σε συμβολική διεύθυνση ([ετικέτα]=[ετικέτα]+09)


Αύξηση κατά 1 – Εντολή INC

Η εντολή INC dest αυξάνει το περιεχόμενο του ορίσματος κατά 1. Το όρισμα μπορεί να είναι καταχωρητής γενικής χρήσης ή θέση μνήμης (διεύθυνση) και το μέγεθός του να είναι byte, word ή double word. Η πράξη αυτή, δεν επηρεάζει το CF (flag).


Παραδείγματα

INC AX

AX = AX + 1


INC byte [BX]

[BX] = [BX] + 1



ΑφαίρεσηΕντολή SUB

Η εντολή SUB dest,src αφαιρεί το δεύτερο όρισμα από το πρώτο και αποθηκεύει το αποτέλεσμα στο πρώτο, ενώ ενεργοποιεί το CF (flag) σε περίπτωση που απαιτηθεί δανεικό. Τα ορίσματα μπορεί να είναι byte, word ή double word, ενώ το dest μπορεί να είναι καταχωρητής γενικής χρήσης ή θέση μνήμης (διεύθυνση). Τέλος, το όρισμα src μπορεί να είναι καταχωρητής γενικής χρήσης, αριθμητική τιμή ή θέση μνήμης (διεύθυνση).


Παραδείγματα

SUB AX,BX

Αφαίρεση καταχωρητών (AX=AX-BX)


SUB dl,30h

dl=dl-30h (αφαίρεση δεκαεξαδικού αριθμού)



Μείωση κατά 1 – Εντολή DEC

Η εντολή DEC dest μειώνει το περιεχόμενο του ορίσματος κατά 1. Το όρισμα μπορεί να είναι καταχωρητής γενικής χρήσης ή θέση μνήμης (διεύθυνση) και το μέγεθός του να είναι byte, word ή double word. Η πράξη αυτή, δεν επηρεάζει το CF (flag).


Παραδείγματα

DEC AX

AX = AX - 1


DEC byte [BX]

[BX] = [BX] - 1



Πρόσθεση με κρατούμενο – Εντολή ADC

Η εντολή ADC προσθέτει δύο ορίσματα και το κρατούμενο που αποτυπώνεται στο αντίστοιχο bit του καταχωρητή κατάστασης. Έτσι, η εντολή μπορεί να συνδυάζει δύο ορίσματα, ως εξής:

ADC καταχωρητής, διεύθυνση_μνήμης

διεύθυνση_μνήμης, καταχωρητής

ADC καταχωρητής, καταχωρητής

ADC διεύθυνση_μνήμης, ακέραια_τιμή

ADC καταχωρητής, ακέραια_τιμή


Παράδειγμα

mov al,0ffh

add al,1

adc bl,0


Εντολή νεκρού χρόνου - NOP

Η εντολή NOP (No OPeration) σπαταλά απλά κύκλους μηχανής, χωρίς να παράγει κανένα απολύτως αποτέλεσμα. Χρησιμοποιείται για χρονική καθυστέρηση (ανάλογη με τον κύκλο μηχανής του υπολογιστή) ή για απλά για δέσμευση θέσεων μνήμης. Εσείς μπορείτε να την χρησιμοποιήσετε για να δημιουργείτε «κενές» θέσεις στα προγράμματά σας προκειμένου αργότερα να έχετε τη δυνατότητα να προσθέτετε εντολές χωρίς να χρειάζεται να γράφετε ξανά το πρόγραμμα από την αρχή.


Παράδειγμα

mov ax,10

nop

nop

add al,1

nop

mov bh,09


Ανταλλαγή περιεχομένων – Εντολή XCHG

Η εντολή αυτή ανταλλάσσει το περιεχόμενο μεταξύ των δύο ορισμάτων που χρησιμοποιούνται. Τα ορίσματα αυτά μπορεί να είναι καταχωρητές ή θέση μνήμης. Το ένα όρισμα όμως, σίγουρα καταχωρητής


Παράδειγμα

xchg ax,bx

xchg [0000],al