Σύντομος οδηγός εντολών Assembly 8086 

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


AAA - Ascii Adjust for Addition

Σύνταξη: AAA

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF CF (OF,PF,SF,ZF απροσδιόριστο)


Λειτουργία

Μετατρέπει κατάλληλα το περιεχόμενο του AL για σωστή πρόσθεση ASCII αριθμών. Επειδή οι αριθμοί 0-9 αντιστοιχούν στους 30h-39h κώδικες ASCII, μια απευθείας πρόσθεση θα οδηγούσε σε λανθασμένο αποτέλεσμα.


AAD - Ascii Adjust for Division

Σύνταξη: AAD

Bit Καταχωρητή Κατάστασης που επηρεάζονται: SF ZF PF (AF,CF,OF απροσδιόριστο)


Λειτουργία

Ρύθμιση του περιεχομένου του AL για διαίρεση. Η λειτουργία της εντολής είναι η ακόλουθη:


AL := 10*AH+AL

AH := 0


Η εντολή αυτή πρέπει να προηγηθεί της DIV.


AAM - Ascii Adjust for Multiplication

Σύνταξη: AAM

Bit Καταχωρητή Κατάστασης που επηρεάζονται: PF SF ZF (AF,CF,OF απροσδιόριστο)


Λειτουργία

Ρύθμιση για ASCII πολλαπλασιασμό. Η λειτουργία της εντολής είναι η ακόλουθη:


AH := AL / 10

AL := AL mod 10


AAS - Ascii Adjust for Subtraction

Σύνταξη: AAS

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF CF (OF,PF,SF,ZF απροσδιόριστο)


Λειτουργία

ASCII ρύθμιση για αφαίρεση.


ADC – Add With Carry

Σύνταξη: ADC dest,src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF CF OF SF PF ZF


Λειτουργία

Προσθέτει τα δύο ορίσματα dest,src,ενώ το αποτέλεσμα αποθηκεύεται στο dest λαμβάνοντας υπόψη και το κρατούμενο (αν CF=1)


ADD – Arithmetic Addition

Σύνταξη: ADD dest,src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF CF OF PF SF ZF


Λειτουργία

Προσθέτει το src στο dest και αντικαθιστά το αρχικό περιεχόμενο του dest με το αποτέλεσμα


Σύνταξη: AND dest,src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: CF OF PF SF ZF (AF απροσδιόριστο)


Λειτουργία

Εκτελεί λογικό AND των δύο ορισμάτων αντικαθιστώντας το dest με το αποτέλεσμα


CALL - Procedure Call

Σύνταξη: CALL destination

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Κάνει Push τον IP (και τον CS σε FAR CALL) στο σωρό και φορτώνει στον IP τη διεύθυνση του destination. Έτσι, η εκτέλεση του προγράμματος συνεχίζεται από το σημείο CS:IP.



CBW - Convert Byte to Word

Σύνταξη: CBW

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Μετατρέπει το byte του AL σε word (2 byte) στον AX, επεκτείνοντας στον AH το πρόσημο του AL


CLC - Clear Carry

Σύνταξη: CLC

Bit Καταχωρητή Κατάστασης που επηρεάζονται: CF


Λειτουργία

Καθαρισμός (μηδενισμός) του CF (Carry Flag)


CLD - Clear Direction Flag

Σύνταξη: CLD

Bit Καταχωρητή Κατάστασης που επηρεάζονται: DF


Λειτουργία

Καθαρίζει (μηδενίζει) το DF (Direction Flag) προκαλώντας τις εντολές διαχείρισης string να αυξάνουν τους καταχωρητές SI και DI.


CLI - Clear Interrupt Flag (disable)

Σύνταξη: CLI

Bit Καταχωρητή Κατάστασης που επηρεάζονται: IF


Λειτουργία

Απενεργοποιεί μόνο τις Hardware διακοπές


CMC - Complement Carry Flag

Σύνταξη: CMC

Bit Καταχωρητή Κατάστασης που επηρεάζονται: CF


Λειτουργία

Αντιστρέφει το περιεχόμενο του Carry Flag


CMP - Compare

Σύνταξη: CMP dest,src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF CF OF PF SF ZF


Λειτουργία

Αφαιρεί το src από το dest και ενημερώνει τα αντίστοιχα Flag. Στη συνέχεια ανιχνεύεται η κατάσταση των flag για να γνωστοποιηθεί το αποτέλεσμα της σύγκρισης.


CWD - Convert Word to Doubleword

Σύνταξη: CWD

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Επεκτείνει το πρόσημο της λέξης του AX μέσω του DX δημιουργώντας ένα doubleword στο ζευγάρι DX:AX.


DAA - Decimal Adjust for Addition

Σύνταξη: DAA

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF CF PF SF ZF (OF απροσδιόριστο)


Λειτουργία

Διόρθωση του αποτελέσματος του AL το οποίο έχει προέλθει από πρόσθεση BCD.


DAS - Decimal Adjust for Subtraction

Σύνταξη: DAS

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF CF PF SF ZF (OF απροσδιόριστο)


Λειτουργία

Διόρθωση του αποτελέσματος του AL το οποίο έχει προέλθει από αφαίρεση BCD.


DEC - Decrement

Σύνταξη: DEC dest

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF OF PF SF ZF


Λειτουργία

Μη προσημασμένη αφαίρεση μιας μονάδας από το dest

DIV – Divide

Σύνταξη: DIV src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: (AF,CF,OF,PF,SF,ZF απροσδιόριστο)


Λειτουργία

Μη προσημασμένη διαίρεση του κύριου καταχωρητή με το src. Αν ο διαιρέτης src είναι byte, τότε το AX διαιρείται με το src , ενώ το πηλίκο αποθηκεύεται στον AL και το υπόλοιπο στον AH. Αν το όρισμα src είναι word, τότε το ζευγάρι DX:AX διαιρείται με το src, ενώ το πηλίκο αποθηκεύεται στον AX και το υπόλοιπο στον DX.


INC - Increment

Σύνταξη: INC dest

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF OF PF SF ZF


Λειτουργία

Μη προσημασμένη πρόσθεση μιας μονάδας στο dest.


INT - Interrupt

Σύνταξη: INT num

Bit Καταχωρητή Κατάστασης που επηρεάζονται: TF IF


Λειτουργία

Ενεργοποιεί ένα software interrupt, τοποθετώντας στο σωρό τις σημαίες, μηδενίζοντας τα TF και IF, τοποθετώντας στο σωρό τα CS:IP και φορτώνοντας στο CS:IP την τιμή που βρίσκει το interrupt vector table.


Jxx - Jump


JNL

Εντολές άλματος υπό συνθήκη

Μνημονικό

Σημασία

Συνθήκη άλματος

JE

Jump if Equal (=)

Αν είναι ίσο

ZF=1

JZ

Jump if Zero (=)

Αν το αποτέλεσμα είναι μηδέν (ισότητα μέσω ελέγχου του ZF)

ZF=1

JNE

Jump if Not Equal (≠)

Αν δεν είναι ίσο

ZF=0

JNZ

Jump if Not Zero (≠)

Αν το αποτέλεσμα δεν είναι μηδέν (ανισότητα μέσω ελέγχου του ZF)

ZF=0

JG

Jump if Greater (signed) (>)

Αν είναι μεγαλύτερο

ZF=0 και SF=OF

JGE

Jump if Greater or Equal (signed) (>=)

Αν είναι μεγαλύτερο ή ίσο

SF=OF

JNG

Jump if Not Greater (signed) (<=)

Αν δεν είναι μεγαλύτερο

ZF=1 ή SF != OF

JNGE

Jump if Not Greater or Equal (signed) (<)

Αν δεν είναι μεγαλύτερο ή ίσο

SF != OF

JL

Jump if Less (signed) (<)

Αν είναι μικρότερο

SF != OF

JLE

Jump if Less or Equal (signed) (<=)

Αν είναι μικρότερο ή ίσο

ZF=1 ή SF != OF

Jump if Not Less (signed) (>=)

Αν δεν είναι μικρότερο

SF=OF

JNLE

Jump if Not Less or Equal (signed) (>)

Αν δεν είναι μικρότερο ή ίσο

ZF=0 και SF=OF

JC

Jump if Carry

Αν έχει προκύψει κρατούμενο

CF=1


JMP - Unconditional Jump

Σύνταξη: JMP target

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Άλμα χωρίς συνθήκη στο σημείο (διεύθυνση) target


LAHF - Load Register AH From Flags

Σύνταξη: LAHF

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Αντιγράφει τα bits 0-7 των flags στον AH. (AF, CF, PF, SF και ZF)


LOOP - Decrement CX and Loop if CX Not Zero

Σύνταξη: LOOP label

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Μειώνει τον CX κατά 1 και μεταφέρει το έλεγχο στην label αν ο CX δεν είναι μηδέν.



MOV - Move Byte or Word

Σύνταξη: MOV dest,src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Αντιγράφει byte ή word από το όρισμα src στο dest


MUL - Unsigned Multiply

Σύνταξη: MUL src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: CF OF (AF,PF,SF,ZF απροσδιόριστο)


Λειτουργία

Μη προσημασμένος πολλαπλασιασμός του κύριου καταχωρητή με το src. Αν το src είναι byte, τότε το AL χρησιμοποιείται ως ο δεύτερος πολλαπλασιαστής και το αποτέλεσμα αποθηκεύεται στον AX. Αν το src είναι word, τότε ο AX πολλαπλασιάζεται με το src και το αποτέλεσμα αποθηκεύεται στο ζευγάρι DX:AX. Αν το src είναι doubleword, τότε ο EAX πολλαπλασιάζεται με το src



NEG - Two's Complement Negation

Σύνταξη: NEG dest

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF CF OF PF SF ZF


Λειτουργία

Αφαιρεί το destination από το 0 και αποθηκεύει το συμπλήρωμα ως προς 2 του dest πίσω στο dest.


NOP - No Operation

Σύνταξη: NOP

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Δεν κάνει καμία λειτουργία. Χρησιμοποιείται για δέσμευση χώρου στη μνήμη που βρίσκεται ο κώδικας καθώς και για χρονοκαθυστέρηση.


NOT - One's Compliment Negation (Logical NOT)

Σύνταξη: NOT dest

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Περιγραφήλειτουργίας

Αντιστρέφει τα ψηφία του dest σχηματίζοντας το συμπλήρωμα ως προς 1



OR - Inclusive Logical OR

Λειτουργία OR dest,src

Λειτουργία CF OF PF SF ZF (AF απροσδιόριστο)


Λειτουργία

Λογική πράξη OR μεταξύ των δύο ορισμάτων και αποθήκευση του αποτελέσματος στο dest


POP - Pop Word off Stack

Σύνταξη: POP dest

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Μεταφέρει το word από την κορυφή του σωρού (SS:SP) στο destination και στη συνέχεια αυξάνει τον SP κατά δύο. Ο CS δεν μπορεί να αποτελεί προορισμό.



PUSH - Push Word onto Stack

Σύνταξη: PUSH src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Μειώνει τον SP και μεταφέρει το word από το source στην κορυφή του σωρού (SS:SP).


SAL/SHL - Shift Arithmetic Left / Shift Logical Left

Σύνταξη: SAL dest,count

SHL dest,count

Bit Καταχωρητή Κατάστασης που επηρεάζονται: CF OF PF SF ZF (AF undefined)


Λειτουργία

Αριστερή ολίσθηση του dest κατά count bits. Δεξιά γίνεται συμπλήρωση με μηδενικά


SHR - Shift Logical Right

Σύνταξη: SHR dest,count

Bit Καταχωρητή Κατάστασης που επηρεάζονται: CF OF PF SF ZF (AF απροσδιόριστο)<`o`o8kmoo0ont-weight: normal;" align="left">Λειτουργία

Δεξιά ολίσθηση του dest κατά count bits. Αριστερά γίνεται συμπλήρωση με μηδενικά



STC - Set Carry

Σύνταξη: STC

Bit Καταχωρητή Κατάστασης που επηρεάζονται: CF


Λειτουργία

Θέτει το CF στην τιμή 1


STD - Set Direction Flag

Σύνταξη: STD

Bit Καταχωρητή Κατάστασης που επηρεάζονται: DF


Λειτουργία

Θέτει το DF στην τιμή 1


STI - Set Interrupt Flag (Enable Interrupts)

Σύνταξη: STI

Bit Καταχωρητή Κατάστασης που επηρεάζονται: IF


Λειτουργία

Επιτρέπει την αναγνώριση-αποδοχή hardware interrupt


SUB - Subtract

Σύνταξη: SUB dest,src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: AF CF OF PF SF ZF


Λειτουργία

Το src αφαιρείται από το dest και το αποτέλεσμα αποθηκεύεται dest


XCHG - Exchange

Σύνταξη: XCHG dest,src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: Κανένα


Λειτουργία

Αμοιβαία ανταλλαγή των περιεχομένων του src και του dest


XOR - Exclusive OR

Σύνταξη: XOR dest,src

Bit Καταχωρητή Κατάστασης που επηρεάζονται: CF OF PF SF ZF (AF απροσδιόριστο)


Λειτουργία

Αποκλειστικό OR μεταξύ των ορισμάτων και αποθήκευση του αποτελέσματος στο dest