1 / 29

DEBUG

DEBUG. Functions and Features. * Program name = DEBUG.COM * Target: IBM PC * Extremely useful, when used correctly. Almost a must for Assembler Language programmers * can provide an insight into the operation of the machine at the bit level.

Télécharger la présentation

DEBUG

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DEBUG

  2. Functions and Features • * Program name = DEBUG.COM • * Target: IBM PC • * Extremely useful, when used correctly. • Almost a must for Assembler Language programmers • * can provide an insight into the operation of the machine at the bit level. • can display and change any of the registers in the IBMPC • can start and stop program execution at any time, • can change the program • can look at diskettes, sector by sector. • works at the machine code level • can disassemble machine code, • can assemble instructions directly into machine code.

  3. ? -? 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

  4. R (Register) -R AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0AE6 ES=0AE6 SS=0AE6 CS=0AE6 IP=0100 NV UP EI PL NZ NA PO NC 0AE6:0100 74D0 JZ 00D2 -R AX AX 0000 :1234 -R BX BX 0000 :567U ^ Error -R F NV UP EI PL NZ NA PO NC -PE -R AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0AE6 ES=0AE6 SS=0AE6 CS=0AE6 IP=0100 NV UP EI PL NZ NA PE NC 0AE6:0100 74D0 JZ 00D2 -Q

  5. Flag

  6. D (Dump) -D -D 100 -D DS:100 -D 0AE6:100 0AE6:0100 74 D0 F6 06 22 99 80 74-39 F6 06 22 99 20 75 0A t..."..t9..". u. 0AE6:0110 80 3E DF 99 00 75 BB 49-74 B8 BA 18 34 00 D5 0A .>...u.It...4... 0AE6:0120 D2 87 D1 B8 01 42 CD 21-A3 EC 99 89 16 EE 99 80 .....B.!........ 0AE6:0130 3E D2 96 00 74 9C B4 40-CD 21 72 5F C6 06 F0 99 >...t..@.!r_.... 0AE6:0140 1A C3 E8 FF 0F FE 06 DF-96 80 3E DE 96 00 74 48 ..........>...tH 0AE6:0150 8B 1E 20 99 83 FB 00 7E-33 8B 0E EE 99 8B 16 EC .. ....~3....... 0AE6:0160 99 8B C1 0B C2 74 21 B8-00 42 CD 21 33 C9 B4 40 .....t!..B.!3..@ 0AE6:0170 CD 21 80 3E F0 99 00 74-08 41 BA F0 99 B4 40 CD .!.>...t.A....@. ASCII “.”: Unprintable ASCII character 128 bytes

  7. D, D, … -D 0AE6:0100 74 D0 F6 06 22 99 80 74-39 F6 06 22 99 20 75 0A t..."..t9..". u. 0AE6:0110 80 3E DF 99 00 75 BB 49-74 B8 BA 18 34 00 D5 0A .>...u.It...4... 0AE6:0120 D2 87 D1 B8 01 42 CD 21-A3 EC 99 89 16 EE 99 80 .....B.!........ 0AE6:0130 3E D2 96 00 74 9C B4 40-CD 21 72 5F C6 06 F0 99 >...t..@.!r_.... 0AE6:0140 1A C3 E8 FF 0F FE 06 DF-96 80 3E DE 96 00 74 48 ..........>...tH 0AE6:0150 8B 1E 20 99 83 FB 00 7E-33 8B 0E EE 99 8B 16 EC .. ....~3....... 0AE6:0160 99 8B C1 0B C2 74 21 B8-00 42 CD 21 33 C9 B4 40 .....t!..B.!3..@ 0AE6:0170 CD 21 80 3E F0 99 00 74-08 41 BA F0 99 B4 40 CD .!.>...t.A....@. -D 0AE6:0180 21 B4 3E CD 21 E9 6A FA-B4 3E CD 21 BA C9 98 B4 !.>.!.j..>.!.... 0AE6:0190 41 CD 21 C6 06 DE 96 00-E9 57 FA E9 AE FE 24 0C A.!......W....$. 0AE6:01A0 7A 10 50 24 08 A2 E1 99-58 24 04 A2 E5 99 08 06 z.P$....X$...... 0AE6:01B0 DF 99 A0 E5 99 0A C0 C3-80 3E C4 98 FF 75 0C BF .........>...u.. 0AE6:01C0 EE 94 BD C4 98 E8 11 01-E8 6B E4 32 C0 86 06 23 .........k.2...# 0AE6:01D0 99 0A C0 75 03 E9 8C 00-8B 36 C6 98 BF 83 97 B8 ...u.....6...... 0AE6:01E0 00 29 CD 21 80 3C 00 74-06 BA 9B 8A E9 53 FF A1 .).!.<.t.....S.. 0AE6:01F0 C9 98 80 FC 3A 74 02 B0-40 8A 0E E5 99 0C 20 2C ....:t..@..... , -D 0AE6:0200 60 A2 83 97 A0 C8 98 8A-26 2B 99 25 02 02 0A C0 `.......&+.%.... 0AE6:0210 74 13 3A C4 75 0F 80 3E-E6 99 00 74 08 FE 06 24 t.:.u..>...t...$ 0AE6:0220 99 32 C0 EB 06 34 02 22-C4 D0 E8 0A 06 E6 99 A2 .2...4."........ 0AE6:0230 D4 96 D0 E0 D0 E0 A2 DF-99 80 3E E1 99 00 75 24 ..........>...u$ 0AE6:0240 A2 E5 99 0A C9 75 1D 0A-C0 74 19 8B 0E E2 96 E3 .....u...t...... 0AE6:0250 13 B0 1A 06 33 FF 8E 06-C1 96 F2 AE 07 75 05 4F ....3........u.O 0AE6:0260 89 3E E2 96 BB C7 97 80-3E D4 96 00 74 03 BB 0D .>......>...t... 0AE6:0270 98 BE 84 97 8B 3E C6 98-B9 08 00 E8 12 00 80 3C .....>.........<

  8. D addr1 addr2 -D 215 225 0AE6:0210 0F 80 3E-E6 99 00 74 08 FE 06 24 ..>...t...$ 0AE6:0220 99 32 C0 EB 06 34 .2...4

  9. E (Enter) -D 100 0AE6:0100 74 D0 F6 06 22 99 80 74-39 F6 06 22 99 20 75 0A t..."..t9..". u. 0AE6:0110 80 3E DF 99 00 75 BB 49-74 B8 BA 18 34 00 D5 0A .>...u.It...4... 0AE6:0120 D2 87 D1 B8 01 42 CD 21-A3 EC 99 89 16 EE 99 80 .....B.!........ 0AE6:0130 3E D2 96 00 74 9C B4 40-CD 21 72 5F C6 06 F0 99 >...t..@.!r_.... 0AE6:0140 1A C3 E8 FF 0F FE 06 DF-96 80 3E DE 96 00 74 48 ..........>...tH 0AE6:0150 8B 1E 20 99 83 FB 00 7E-33 8B 0E EE 99 8B 16 EC .. ....~3....... 0AE6:0160 99 8B C1 0B C2 74 21 B8-00 42 CD 21 33 C9 B4 40 .....t!..B.!3..@ 0AE6:0170 CD 21 80 3E F0 99 00 74-08 41 BA F0 99 B4 40 CD .!.>...t.A....@. -E 100 12 34 56 78 -D 100 0AE6:0100 12 34 56 78 22 99 80 74-39 F6 06 22 99 20 75 0A t..."..t9..". u. 0AE6:0110 80 3E DF 99 00 75 BB 49-74 B8 BA 18 34 00 D5 0A .>...u.It...4... 0AE6:0120 D2 87 D1 B8 01 42 CD 21-A3 EC 99 89 16 EE 99 80 .....B.!........ 0AE6:0130 3E D2 96 00 74 9C B4 40-CD 21 72 5F C6 06 F0 99 >...t..@.!r_.... 0AE6:0140 1A C3 E8 FF 0F FE 06 DF-96 80 3E DE 96 00 74 48 ..........>...tH 0AE6:0150 8B 1E 20 99 83 FB 00 7E-33 8B 0E EE 99 8B 16 EC .. ....~3....... 0AE6:0160 99 8B C1 0B C2 74 21 B8-00 42 CD 21 33 C9 B4 40 .....t!..B.!3..@ 0AE6:0170 CD 21 80 3E F0 99 00 74-08 41 BA F0 99 B4 40 CD .!.>...t.A....@.

  10. “-” & space “-” : backward Space: forward E DS:100

  11. F (Fill) Format: -F startAddr endAddr list Example: -F 100 110 12 34 56

  12. M (Move) Format: -M startAddr endAddr destAddr Example: -M 100 110 120

  13. C (Compare) Format: -C startAddr endAddr destAddr Example: -C 100 110 120

  14. S (Search) Format: -S startAddr endAddr list Example: -S 100 110 12 34

  15. I (Input) Format: -I addr “addr” is the I/O port address ranging from 0000H to FFFFH. Totally there are 64K byte-wide ports. Example: -I 1234

  16. O (Output) Format: -O addr byte Example: -O 1234 0

  17. H (Hex add/sub) Format: -H num1 num2 “num1” and “num2” are no longer than 2 bytes. Example: -H 1234 1111 2345 0123 -H 0 1234 1234 EDCC Negative of 1234H

  18. U (Unassemble) Format: -U [startAddr [endAddr]] Example: -E 100 88 C3 -U 100

  19. Diskette Format One double-sided double-density diskette = 10001(?) sectors * 512 byte/sector

  20. W (Write); L (Load) Format: -W [startAddr [drive startSectornoOfSectors]] -L [startAddr [drive startSectornoOfSectors]] Example: -W DS:100 a: ?

  21. N (Name) Format: -N fileName Application: -N fileName (指定檔案名稱) (BX CX)  number of bytes -W [startAddr] (指定要存到檔案的資料之起始位置, 並將資料寫入檔案) Application: N fileName L [startAddr] (將檔案內的資料讀到記憶體。) Write down the DEBUG commands to write 10H bytes of data from ds:222H into disk directory d:\aa\bb with filename dddd.txt Example: -N a:test1.txt Example: -N c:\users\jzTsai\dbg\test2.txt

  22. A (Assemble) Format: -A startAddr

  23. T (Trace) Format: -T [=startAddr][numberOfInstructions] Example: -T =CS:100 5

  24. G (Go) Format: -G [=startAddr[breakpointAddrList] Example: -G =CS:100 128 -G =CS:100 -G

  25. Example -a 100 0AE6:0100 add dx,1234 0AE6:0104 -d 100 103 0AE6:0100 81 C2 34 12 ..4. -u 100 103 0AE6:0100 81C23412 ADD DX,1234

  26. Example: programming with debug -A CS:100 0AE6:0100 MOV AX,12 0AE6:0103 MOV BX,34 0AE6:0106 ADD AX,BX 0AE6:0108 -d 100 107 0AE6:0100 B8 12 00 BB 34 00 01 D8 ....4... -u 100 107 0AE6:0100 B81200 MOV AX,0012 0AE6:0103 BB3400 MOV BX,0034 0AE6:0106 01D8 ADD AX,BX -N A:TEST2.MCD -R CX CX 0000 :8 -R BX BX 0000 :0 -W CS:100 Writing 00008 bytes

  27. Further reading: Tutorials on the Internet You can find some tutorials of the DEBUG program on the Internet, such as from the following websites: http://netcity2.web.hinet.net/UserData/suchya/ http://www.xploiter.com/programming/asm/debug.shtml http://www.datainstitute.com/debug1.htm http://www.plumb.org/tekmage/Inspire/debug-manual.html http://mirror.href.com/thestarman/asm/debug/debug.htm http://www.geocities.com/thestarman3/asm/debug/debug2.htm

  28. To debug a program >debug calcul.exe

More Related