微机原理DEBUG使用
DEBUG是一个DOS命令,可用以程序调试,支持直接执行汇编小程序段。1、使用 DEBUG载入要除错的程序时用法如下:(红色的字是你必须输入的,记住每次输入完要按 回车键)
H:\HomePage\SOURCE>..\masm50\debug [Enter]
2、使用Debug检验指令运行,用法如下:
C:\WINDOWS>Debug [Enter];Assemble 指令
这个指令是可以让 DEBUG 执行简单的汇编语言指令程序段,其中所有数字都得用十六进制表示,且所有单元也都得用地址表示。 用法如下: a [地址] 这样就可以在指定的地址直接输入 X86 指令。例:a 0100
指令输入完毕后用回车退回到debug状态;Trace 指令
这是调试跟踪指令,每输入一次 t後,DEBUG 就执行一条指令,然后停下来显示所有寄存器的內容。如:输入一个 t 时:AX=0000 BX=0000 CX=0025 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=10F7 ES=10F7 SS=10F7 CS=10F7 IP=0100 NV UP EI PL NZ NA PO NC 10F7:0100 EB17 JMP 0119 -t [Enter] AX=0000 BX=0000 CX=0025 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=10F7 ES=10F7 SS=10F7 CS=10F7 IP=0119 NV UP EI PL NZ NA PO NC 10F7:0119 BA0301 MOV DX,0103
要执行某一地址的指令,用 -t=地址如: -t=0100;Registor 指令
此指令有两个作用,一是显示所有寄存器及标记寄存器內容,二是修改寄存器內容。
如只输入「r」来显示寄存器的內容: -r [Enter] AX=0000 BX=0000 CX=0025 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=10F7 ES=10F7 SS=10F7 CS=10F7 IP=0100 NV UP EI PL NZ NA PO NC 10F7:0100 EB19 JMP 0119
如要修改寄存器內容,只要在 r 后面输入寄存器名称 -r ax;Dump 指令
查看内存內容 D ( dump ) 指令,如: -d [Enter] 10F7:0100 EB 17 90 48 69 2C 20 49-20 6C 65 61 72 6E 20 61 k..Hi, I learn a 10F7:0110 73 73 65 6D 62 6C 79 2E-24 BA 03 01 B4 09 CD 21 ssembly.$:..4.M! 10F7:0120 B8 00 4C CD 21 46 EA 89-56 EC 80 7C 1E 01 74 12 8.LM!Fj.Vl.|..t. 10F7:0130 83 7E F0 02 74 0C 83 7E-F0 07 74 06 83 7E F0 0A .~p.t..~p.t..~p. 10F7:0140 75 04 80 4C 10 20 F6 44-10 20 75 03 E9 6D 01 80 u..L. vD. u.im.. 10F7:0150 7E F8 07 74 03 E9 64 01-83 7E F0 03 75 03 E9 5B ~x.t.id..~p.u.i[ 10F7:0160 01 F6 44 1D 0B 75 76 8B-04 0B F5 07 02 00 24 10 .vD..uv...u...$. 10F7:0170 3F 00 A0 FF 3B E1 06 62-78 00 F1 10 E5 07 00 00 ?. .;a.bx.q.e... ;Dump 指令
D 指令完整的用法是 d [起始地址] [L长度]。例如:要查看 100h 到 110h 的内存???容,就可以输入 d 100 L 10 D 指令也可以直接指定要显示由哪一地址到哪一地址,用法如下: d [起始地址] [结束地址]
另:假如D指令没有指定长度,也没有结束地址,仅仅输入一个 d 而已,DEBUG 会自动显示 80H 个内存单元。 ;Edit 指令这是修改内存单元的命令,先进入 debug 模式,再进行以下操作: C:\WINDOWS\COMMAND>debug [Enter] -d 100 L20 [Enter] 146F:0100 65 20 68 69 67 68 20 6D-41 6D 6F 72 79