C:\>debug
-?
assemble A [address]
compare C range address
dump D [range]
enter E address [list]
fill F range list
go G [=address] [addresses]
hex H value1 value2
input I port
load L [address] [drive] [firstsector] [number]
move M range address
name N [pathname] [arglist]
output O port byte
proceed P [=address] [number]
quit Q
register R [register]
search S range list
trace T [=address] [value]
unassemble U [range]
write W [address] [drive] [firstsector] [number]
allocate expanded memory XA [#pages]
deallocate expanded memory XD [handle]
map expanded memory pages XM [Lpage] [Ppage] [handle]
display expanded memory status XS
-
C:\>debug
-t
AX=0000 BX=0000 CX=0000 DX=0011 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AE8 ES=0AE8 SS=0AE8 CS=0AE8 IP=0102 NV UP EI PL NZ NA PO NC
-
EX 4 :: แสดงตัวอักษร แล้วเลิกการทำงาน
C:\>debug
-a 100
0AE8:0100 mov ah,02
0AE8:0102 mov dl,41
0AE8:0104 int 21
0AE8:0106 int 20
-g
A
Program terminated normally
-
EX 5 :: แก้ตำแหน่ง 106 โดยใช้ or
0100 0001 or 0100 0010 = 0100 0011
C:\>debug
-a 100
0AE8:0100 mov ah,02
0AE8:0102 mov dl,41
0AE8:0104 int 21
0AE8:0106 int 20
-g
A
Program terminated normally
-a 106
0AE8:0106 or dl,42
0AE8:0109 int 21
0AE8:010B int 20
0AE8:010D
-g
AC
Program terminated normally
-
C:\>debug
-n x.com
-a
0AE8:0100 mov ah,02
0AE8:0102 mov dl,41
0AE8:0104 int 21
0AE8:0106 add dl,2
0AE8:0109 int 21
0AE8:010B int 20
0AE8:010D
-rcx
CX 0000
:d
-w
Writing 0000D bytes
-q
C:\>x
AC
C:\>
EX 7 :: คำสั่ง ror ย้าย bit ไปทางขวา
before 0111 0111=77=w, after 1011 1011=BB
-u 100 10a
0AE8:0100 B277 MOV DL,77
0AE8:0102 B402 MOV AH,02
0AE8:0104 CD21 INT 21
0AE8:0106 D0CA ROR DL,1
0AE8:0108 CD21 INT 21
0AE8:010A CD20 INT 20
-g
w?
Program terminated normally
-
EX 8 :: คำสั่ง rcl ย้าย bit ไปทางงซ้าย แต่มีตัวทด(Carry Flag) มารับ (ต.ย.นี้ไม่เห็นความแตกต่าง)
before 00110001=31=1, after 01100010=62=b, cf=0
-u 100 10A
0AE8:0100 B231 MOV DL,31
0AE8:0102 B402 MOV AH,02
0AE8:0104 CD21 INT 21
0AE8:0106 D0CA RCL DL,1
0AE8:0108 CD21 INT 21
0AE8:010A CD20 INT 20
-g
1b
Program terminated normally
-
EX 9 :: คำสั่ง rcr ย้าย bit ไปทางขวา แต่มีตัวทด(Carry Flag) มารับ
106 : before 01110001=71=q, after 00111000=38=8, cf=1
10A : before 00111000=38=8, after 10011100=9C=?, cf=0
10C : before 10011100=9C=?, after 01001110=4E=N, cf=0
-u 100
0AE8:0100 B271 MOV DL,71
0AE8:0102 B402 MOV AH,02
0AE8:0104 CD21 INT 21
0AE8:0106 D0DA RCR DL,1
0AE8:0108 CD21 INT 21
0AE8:010A D0DA RCR DL,1
0AE8:010C D0DA RCR DL,1
0AE8:010E CD21 INT 21
0AE8:0110 CD20 INT 20
-g
q8N
Program terminated normally
-
EX 10 :: คำสั่ง rcl และ rcr ใช้ย้าย bit แบบมีตัวทด(Carry Flag)
106 : rcr dl,1 : before 0111_0111=77=w, cf=0, after 0011_1011=3B, cf=1
10A : rcr dl,1 : before 0011_1011=3B=?, cf=1, after 1001_1101=9D, cf=1
10E : rcr dl,1 : before 1001_1101=9D=w, cf=1, after 1100_1110=CE, cf=1
112 : rcl dl,1 : before 1100_1110=CE, cf=1, after 1001_1101=9D=w, cf=1
116 : rcl dl,1 : before 1001_1101=9D=w, cf=1, after 0011_1011=3B=?, cf=1
C:\>debug
-a 100
0AE8:0100 mov dl,77
0AE8:0102 mov ah,02
0AE8:0104 int 21
0AE8:0106 rcr dl,1
0AE8:0108 int 21
0AE8:010A rcr dl,1
0AE8:010C int 21
0AE8:010E rcr dl,1
0AE8:0110 int 21
0AE8:0112 rcl dl,1
0AE8:0114 int 21
0AE8:0116 rcl dl,1
0AE8:0118 int 21
0AE8:011A int 20
0AE8:011C
-g
w;???;
-