- Ανοίξτε παράθυρο εντολών (run - command) ή φορτώστε το λειτουργικό σύστημα MS-DOS
- Δώστε την εντολή debug
C:>debug
- Δώστε την εντολή Α (assemble)
-a
- Γράψτε τις συμβολικές εντολές (mov ax, 0) κλπ.
Οι διευθύνσεις μνήμης εμφανίζονται μόνες τους.
Τα σχόλια που ακολουθούν το ; δε χρειάζεται να γραφούν.
0C20:0100 mov ax,0 ; Βάλε (move) στον καταχωρητή ΑΧ την τιμή 0
0C20:0103 mov bx,0 ; Βάλε (move) στον καταχωρητή ΒΧ την τιμή 0
0C20:0106 add bx, ax ; Πρόσθεσε στον ΒΧ τον ΑΧ
0C20:0108 inc ax ; Αύξησε (increment) τον ΑΧ κατά 1
0C20:0109 cmp ax, a ; Σύγκρινε (compare) τον ΑΧ με το 10
0C20:010C jbe 106 ; 'Αλμα αν το αποτέλεσμα είναι μικρότερο ή ίσο (jump below or equal) στη διεύθυνση 106
0C20:010E int 3 ; Διακοπή της λειτουργίας
0C20:010F ; Πατήστε ENTER εδώ
- Δείτε την κωδικοποίηση των εντολών με την εντολή U (unassemble):
-u100
Διεύθυνση Κωδικοποίηση Συμβολική εντολή
0C20:0100 B80000 MOV AX,0000
0C20:0103 BB0000 MOV BX,0000
0C20:0106 01C3 ADD BX,AX
0C20:0108 40 INC AX
0C20:0109 3D0A00 CMP AX,000A
0C20:010C 76F8 JBE 0106
0C20:010E CC INT 3
- Εκτελέστε το πρόγραμμά σας και εξετάστε το αποτέλεσμα στον καταχωρητή ΒΧ.
Είναι αυτό που περιμένατε;
-g=100
AX=000B BX=0037 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C20 ES=0C20 SS=0C20 CS=0C20 IP=010E NV UP EI PL NZ NA PO NC
0C20:010E CC INT 3
- Εκτελέστε το πρόγραμμά σας βήμα βήμα με την εντολή T (trace):
-t=100
AX=0000 BX=0000 CX=0000 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Καταχωρητές
DS=0C1C ES=0C1C SS=0C1C CS=0C1C IP=0103 NV UP EI PL ZR NA PE NC
^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
| Ενδείκτες διακλάδωσης
Μετρητής προγράμματος
0C1C:0103 BB0000 MOV BX,0000
^^^^ ^^^^^^^^^^^^^^^
Διεύθυνση μνήμης Επόμενη εντολή που θα εκτελεστεί
-t
AX=0000 BX=0000 CX=0000 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C1C ES=0C1C SS=0C1C CS=0C1C IP=0106 NV UP EI PL ZR NA PE NC
0C1C:0106 01D8 ADD AX,BX
-t
AX=0000 BX=0000 CX=0000 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C1C ES=0C1C SS=0C1C CS=0C1C IP=0108 NV UP EI PL ZR NA PE NC
0C1C:0108 40 INC AX
-t
AX=0001 BX=0000 CX=0000 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C1C ES=0C1C SS=0C1C CS=0C1C IP=0109 NV UP EI PL NZ NA PO NC
0C1C:0109 3D0A00 CMP AX,000A
-t
AX=0001 BX=0000 CX=0000 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C1C ES=0C1C SS=0C1C CS=0C1C IP=010C NV UP EI NG NZ AC PO CY
0C1C:010C 76F8 JBE 0106
-t
AX=0001 BX=0000 CX=0000 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C1C ES=0C1C SS=0C1C CS=0C1C IP=0106 NV UP EI NG NZ AC PO CY
0C1C:0106 01D8 ADD AX,BX
...
- Αυξήστε το όριο της άθροισης από 10 σε 100:
-a109
0C20:0109 cmp ax, 64 ; Σύγκρινε τον καταχωρητή ΑΧ με το 100
0C20:010C ; Πατήστε ENTER εδώ
-g=100
- Εκτελέστε το πρόγραμμά σας και εξετάστε το αποτέλεσμα στον καταχωρητή ΒΧ.
Είναι αυτό που περιμένατε;
AX=0065 BX=13BA CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C20 ES=0C20 SS=0C20 CS=0C20 IP=010E NV UP EI PL NZ NA PO NC
0C20:010E CC INT 3
- Βγήτε από το πρόγραμμα debug
-q
C:>