• debug教程


      1 名称 解释 格式 
      2 a (Assemble) 逐行汇编 a [address] 
      3 c (Compare) 比较两内存块 c range address 
      4 d (Dump) 内存16进制显示 d [address]或 d [range] 
      5 e (Enter) 修改内存字节 e address [list] 
      6 f (fin) 预置一段内存 f range list 
      7 g (Go) 执行程序 g [=address][address...] 
      8 h (Hexavithmetic) 制算术运算 h value value 
      9 i (Input) 从指定端口地址输入 i pataddress 
     10 l (Load) 读盘 l [address [driver seetor> 
     11 m (Move) 内存块传送 m range address 
     12 n (Name) 置文件名 n filespec [filespec...] 
     13 o (Output) 从指定端口地址输出 o portadress byte 
     14 q (Quit) 结束 q 
     15 r (Register) 显示和修改寄存器 r [register name] 
     16 s (Search) 查找字节串 s range list 
     17 t (Trace) 跟踪执行 t [=address] [value] 
     18 u (Unassemble) 反汇编 u [address ]或range 
     19 w (Write) 存盘 w [address[driver sector secnum> 
     20 ? 联机帮助 ? 
     21 
     22 debug小汇编a命令 
     23 
     24 debug小汇编a命令是一个很有用的功能,许多的小程序都要他来做。 
     25 
     26 编一些小程序比汇编要来得方便,快洁。 
     27 在Debug中,中断是非常有用的,首先,让我们先了解一下中断。 
     28 所谓中断,其实,就是,当你做某事时,有人过来找你有其他事,你先放下手中的事(计算机中,称为保护现场) 
     29 ,再去与叫你的那个人办事去,等完了,你又回,接着做刚才的事。这是个很通俗的讲法。 
     30 计算机在运行时,也会出现这种情况,我们叫之中断。 
     31 下面是他的一些常用中断向量的入口值详解:(记住哦,很用的...呵呵) 
     32 
     33 
     34 
     35 
     36 IBM PC 中断 int10 
     37 ooH 屏幕方式设置 
     38 
     39 入口:AH=0,AL=显示方式代码(0--6 40 040*25 黑白 
     41 140*25 彩色 
     42 280*25 黑白 
     43 380*25 彩色文本 
     44 4320*200 彩色 
     45 5320*200 黑白 
     46 6640*200 黑白图形模式 
     47 780*25 单色字符(单色显示器) 
     48 
     49 0BH 色彩设置 
     50 入口:AH=0B,BL=0 设背景色,BH=0--15 BL=1 设调色码,BH=0--1 
     51 0CH 写图形点 
     52 入口:AH=0C,CX:DX=列号:行号,AL=颜色 
     53 ODH 读图形点 
     54 入口:AH=0D,CX:DX=列号:行号 
     55 返回:AL=颜色 
     56 0EH 在当前页、当前光标处写字符 
     57 入口:AH=0E,AL=字符的ASCII码,BL=前景色 
     58 OFH 显示器状态 
     59 入口:AH=0F 
     60 返回:AL=当前显示器方式,AH=屏幕列数,BH=当前页号 
     61 
     62 01H 光标设置 
     63 入口:AH=1,CH=光标起始行号(00--0C),CL=光标结束行号(00--0C) 
     64 注:CH > CL 
     65 02H 光标定位 
     66 入口:AH=2,BH=页号,DH:DL=起始行:列 
     67 03H 读光标位置 
     68 入口:AH=3,BH=页号。 
     69 返回:DH:DL=起始行:列 
     70 06H 窗口上卷 
     71 入品:AH=6,AL=窗口上卷行数,CH:CL-DH:DL 窗口坐标 
     72 注:AL=0 卷动整个窗口 
     73 07H 窗口下卷 
     74 入口:AH=7,AL=窗口下卷行数,CH:CL-DH:DL 窗口坐标 
     75 08H 读当前光标处字符和属性 
     76 入口:AH=8,BH=页号。 
     77 返回:AH:AL=字符的颜色:字符的ASCII码 
     78 注:颜色代码见下对照表 
     79 09H:在当前光标处写字符和属性 
     80 注:光标不下移 
     81 入口:AH=9,BH=页号,BL:AL=字符的颜色:字符的ASCII码,CX=重复次数 
     82 1 2 3 4 5 6 7 8 
     83 BL R G B I R G B 
     84 闪烁 字符底色 加亮 字符颜色 
     85 
     86 中断向量号表 
     87 
     88 中断号 解释 中断号 解释 
     89 0 除数为0错 19 引导装入程序 
     90 1 音步中断 1A 日时调用 
     91 2 不可屏蔽中断NMI 1B 键盘阻断时得到控制权 
     92 3 断电中断(CCH) 1C 时钟中断时得到控制权 
     93 4 溢出中断 1D 指向CRT初始参数表 
     94 5 屏幕打印中断 1E 指向盒带参数表 
     95 6-7 保留 1F 1KB图形模式 
     96 8 计时器中断(18.2秒) 20 结束DOS程序 
     97 9 键盘中断 21 DOS功能调用 
     98 A-D 保留 22 结束地址(建义用EXEC) 
     99 E 软盘机中断 23 DOS Crtl-Break退出地址 
    100 F 保留 24 DOS致命错向量 
    101 10 屏幕I/O调用 25 DOS绝对磁盘读 
    102 11 设备检查调用 26 DOS绝对磁盘写 
    103 12 存储器检查调用 27 结束程序并驻留(建义用31h) 
    104 13 软盘机I/O调用 28-3F DOS保留 
    105 14 RS-233I/O调用 40-7F 未用 
    106 15 盒带机I/O调用 80-85 BASIC保留 
    107 16 键盘I/O调用 86-F0 BASIC解释程序用 
    108 17 打印机I/O调用 F1-FF 未用 
    109 18 ROM-BASIC入口 
    110 
    111 
    112 指令名详解 
    113 call 指令(过程调用)(控制指令-长转移) 
    114 
    115 详解: 
    116 
    117 段内直接调用 
    118 
    119 段内间接调用(寄存器) 
    120 
    121 段内间接调用(存储器) 
    122 
    123 段间直接调用 
    124 
    125 段间间接调用 
    126 
    127 指令名 
    128 jmp 指令(无条件转移指令)(控制指令-长转移) 
    129 
    130 详解: 
    131 段内直接跳转 
    132 
    133 短段内直接跳转 
    134 
    135 段内间接跳转(寄存器) 
    136 
    137 段内间接跳转(存储器) 
    138 
    139 段间直接跳转 
    140 
    141 段间间接跳转 
    142 
    143 指令名 
    144 ret 指令(过程返回)(控制指令-长转移) 
    145 
    146 详解: 
    147 
    148 段内返回 
    149 
    150 段内返回立即数加于sp 
    151 
    152 段间返回 
    153 
    154 段间返回立即数加于sp 
    155 
    156 na/jnbe 指令(控制指令-短转移) 不小于或不等于时转移 
    157 
    158 jae/jnb 指令 (控制指令-短转移) 大于或等于时转移 
    159 
    160 jb/jnae 指令 (控制指令-短转移) 小于转移 
    161 
    162 jbe/jna 指令 (控制指令-短转移) 小于或等 于转移 
    163 
    164 jg/jnle 指令(控制指令-短转移) 大于转移 
    165 
    166 jge/jnl 指令 (控制指令-短转移) 大于或等于转移 
    167 
    168 jl/jnge 指令 (控制指令-短转移) 小于转移 
    169 
    170 jle/jng 指令 (控制指令-短转移) 小于或等 于转移 
    171 
    172 je/jz 指令 (控制指令-短转移) 等于转移 
    173 
    174 jne/jnz 指令 (控制指令-短转移) 不等于转移 
    175 
    176 jc 指令 (控制指令-短转移) 有进位时转移 
    177 
    178 jnc 指令 (控制指令-短转移) 列进位时转移 
    179 jno 指令 (控制指令-短转移) 不溢出时转移 
    180 jnp/jpo 指令 (控制指令-短转移) 奇偶性为奇数时转移 
    181 
    182 jns 指令 (控制指令-短转移) 符号位为"0"转移 
    183 
    184 jo 指令 (控制指令-短转移) 溢出转移 
    185 
    186 jp/jpe 指令 (控制指令-短转移) 奇偶性为偶数时转移 
    187 
    188 js 指令 (控制指令-短转移) 符号位为"1"时转移 
    189 
    190 loop 指令 (循环控制指令-短转移) cx 不为0时循环 
    191 
    192 loope/loopz 指令 (循环控制指令-短转移) cx 不为0且标志 z=1 时循环 
    193 
    194 loopne/loopnz 指令 (循环控制指令-短转移) cx 不为0且标志 z=0 时循环 
    195 
    196 jcxz 指令 (循环控制指令-短转移) cx 为0时转移 
    197 
    198int 指令 (中断指令) 中断指令(后详解) 
    199 
    200 into 指令 (中断指令) 溢出中断 
    201 
    202 iret 指令 (中断指令) 中断返回 
    203 
    204 
    205 指令名 
    206 shl 指令(逻辑左移) 
    207 sal 指令(算术左移) 
    208 shr 指令(逻辑右移) 
    209 sar 指令(算术右移) 寄存器,1 
    210 rol 指令(循环左移) 寄存器,cl 
    211 ror 指令(循环右移) 存储器,1 
    212 rcl 指令(通过进位的循环左移)存储器,cl 
    213 rcr 指令(通过进位的循环右移)(逻辑运算) 
    214 
    215 
    216 not 指令(取反运算)寄存器求反 
    217 
    218 (逻辑运算)存储器求反 
    219 
    220 and 指令(与运算) (逻辑运算) 
    221 
    222 寄存器 and 寄存器 寄存器 
    223 寄存器 and 存储器 寄存器 
    224 
    225 存储器 and 寄存器 存储器 
    226 
    227 立即数 and 存储器 存储器 
    228 
    229 立即数 and 累加器 累加器 
    230 
    231 or 指令(或运算)(逻辑运算) 
    232 
    233 寄存器 or 寄存器 寄存器 
    234 寄存器 or 存储器 寄存器 
    235 
    236 存储器 or 寄存器 存储器 
    237 
    238 立即数 or 存储器 存储器 
    239 
    240 立即数 or 累加器 累加器 
    241 
    242 test 指令(测试) (逻辑运算) 
    243 
    244 寄存器 test 寄存器 
    245 寄存器 test 存储器 
    246 寄存器 test 立即数 
    247 存储器 test 立即数 
    248 累加器 test 立即数 
    249 
    250 movs 指令(串传送)(字符串操作指令) 
    251 单个传送 
    252 重复传送 
    253 
    254 cmps 指令(串比较) (字符串操作指令) 
    255 单个比较 
    256 重复比较 
    257 
    258 scas 指令(串扫描)(字符串操作指令) 
    259 单个搜索 
    260 重复搜索 
    261 
    262 lods 指令(装入串) 
    263 (字符串操作指令) 
    264 单个装载 
    265 重复装载 
    266 
    267 stos 指令(保存串) (字符串操作指令) 
    268 单个存储 
    269 重复存储 
    270 
    271 mov 指令(传送字或字节)(数据传送命令) 
    272 寄存器与寄存器间传送 
    273 存储器与寄存器间传送 
    274 立即数传送给存储器 
    275 立即数传送给寄存器 
    276 存储器传送给累加器 
    277 累加器传送存储器 
    278 寄存器传送给段寄存器 
    279 存储器传送给段寄存器 
    280 段寄存器传送给寄存器 
    281 段寄存器传送给存储存器 
    282 
    283 pop 指令(把字弹出堆栈) (数据传送命令) 
    284 
    285 push 指令(把字压入堆栈) 
    286 存储器 
    287 寄存器 
    288 段寄器 
    289 xchg 指令(交换字或字节) (数据传送命令) 
    290 寄存器与寄存器交换 
    291 存储器与寄存器交换 
    292 寄存器与累加器交换 
    293 
    294 in 指令(端口输入) (数据传送命令) 
    295 直接输入 
    296 间接输入 
    297 
    298 out 指令(端口输出) (数据传送指令) 
    299 直接输出 
    300 间接输出 
    301 
    302 add 指令(加法)(算术指令) 
    303 adc 指令(带进位加法) 
    304 寄存器+寄存器 寄存器 
    305 寄存器+存储器 寄存器 
    306 存储器+寄存器 存储器 
    307 立即数+存储器 存储器 
    308 立即数+累加器 累加器 
    309 
    310 inc 指令(加1)(算术指令) 
    311 存储器增量 
    312 寄存器增量 
    313 
    314 sub 指令(减法) (算术指令) 
    315 sbb 指令(带借位减法) 
    316 寄存器-寄存器 寄存器 
    317 寄存器-存储器 寄存器 
    318 存储器-寄存器 存储器 
    319 立即数-存储器 存储器 
    320 立即数-累加器 累加器 
    321 
    322 dec 指令(减1)(算术指令) 
    323 存储器减量 
    324 寄存器减量 
    325 
    326 nec 指令(求反,以0减之) 
    327 寄存器求补 
    328 存储器求补 
    329 
    330 cmp 指令(比较)(算术指令) 
    331 寄存器与寄存器比较 
    332 寄存器与存储器比较 
    333 寄存器与立即数比较 
    334 存储器与立即数比较 
    335 累加器与立即数比较 
    336 
    337 mul 指令(无符号乘法) (算术指令) 
    338 imul 指令(整数乘法) 
    339 与8位寄存器相乘 
    340 与16位寄存器相乘 
    341 与8位存储单元相乘 
    342 与16位存储单元相乘 
    343 
    344 div 指令(无符号除法)(算术指令) 
    345 idiv 指令(整数除法) 
    346 被8位寄存器除 
    347 被16位寄存器除 
    348 被8位存储单元除 
    349 被16位存储单元除 
    350 
    351 
    352 Debug实战 
    353 1.查看主板的生产日期,版本 
    354 D ffff:05 
    355 D fe00:0e 
    356 
    357 2.模拟Rest键功能 
    358 A 
    359 :100 jmp ffff:0000 
    360 :105 
    361 g 
    362 
    363 3.快速格式化软盘 
    364 L 100 0 0 * '插入一张己格式化软盘 
    365 W 100 0 0 * '放入一张欲格式化软盘 
    366 注:* 分别为:720K e |1.2M id |1.44M 21 
    367 
    368 4.硬盘格式化两种方法 
    369 (1)G=c800:05 
    370 (2) A 100 
    371 mov ax,0703 
    372 mov cx,0001 
    373 mov dx,0080 
    374 int 13 
    375 int 3 
    376 g 100 
    377 5.加速键盘 
    378 A 
    379 mov ax,0305 
    380 mov bx,0000 
    381 int 16 
    382 int 20 
    383 rcx 
    384 10 
    385 n fast.com 
    386 w 
    387 q 
    388 
    389 6.关闭显示器(恢复时,按任意键) 
    390 
    391 A 
    392 mov ax,1201 
    393 mov bl,36 
    394 int 10 
    395 mov ah,0 
    396 int 16 
    397 mov ax,1200 
    398 int 10 
    399 rcx 
    400 10 
    401 n crt-of.com 
    402 w 
    403 q 
    404 7.硬盘DOS引导记录的修复 
    405 在软驱中放入一张己格式化软盘 
    406 debug 
    407 -l 100 2 0 1 
    408 -w 100 0 50 1 
    409 把软盘放入故障机软驱中 
    410 debug 
    411 -l 100 0 50 1 
    412 -w 100 2 0 1 
    413 -q 
    414 8.清coms中setup口令 
    415 debug 
    416 -a 
    417 mov bx,0038 
    418 mov cx,0000 
    419 mov ax,bx 
    420 out 70,al 
    421 inc cx 
    422 cmp cx,0006 
    423 jnz 0106 
    424 int 20 
    425 -rcx 
    426 :20 
    427 -nclearpassword.com 
    428 -w 
    429 -q 
    430 注:以上适合super与dtk机,对于ast机,因为他的口令放在coms的4ch-51h地址处,只要将:mov bx,0038 改为: mov 
    431 bx,004c即可 
    432 9.取消coms的密码(将coms数据清为初始化) 
    433 -o 70,10 
    434 -o 71,10 
    435 -g 
    436 -q 
    437 10.将硬盘主引导记录保存到文件中 
    438 
    439 debug 
    440 -a 
    441 mov ax,0201 
    442 mov bx,0200 
    443 mov cx,0001 
    444 mov dx,0080 
    445 mov int 13 
    446 int 3 
    447 -rcx 
    448 :200 
    449 -nboot.dat 
    450 -w 
    451 -q 
    452 11.调用中断实现重启计算机(可以成文件) 
    453 debug 
    454 -a 
    455 int 19 
    456 int 20 
    457 -rcx 
    458 :2 
    459 -nreset.com 
    460 -w 
    461 -q 
    462 
    463 
    464 
    465 
    466 DEBUG主要命令 
    467 
    468 DEBUG是为汇编语言设计的一种高度工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。 
    469 一、DEBUG程序的调用 
    470 在DOS的提示符下,可键入命令: 
    471 C:DEBUG [D:][PATH][FILENAME[.EXT>[PARM1][PARM2] 
    472 其中,文件名是被调试文件的名字。如用户键入文件,则DEBUG将指定的文件装入存储器中,用户可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。 
    473 在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序。 
    474 二、DEBUG的主要命令 
    475 1、显示存储单元的命令D(DUMP),格式为: 
    476 _D[address]或_D[range] 
    477 例如,按指定范围显示存储单元内容的方法为: 
    478 -d100 120 
    479 18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G... 
    480 18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ..;..h..M PQVW. 
    481 7 
    482 18E4:0120 8B 
    483 其中0100至0120是DEBUG显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容。如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。 
    484 2、修改存储单元内容的命令有两种。 
    485 ·输入命令E(ENTER),有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为: 
    486 -E address [list] 
    487 例如,-E DS:100 F3'XYZ'8D 
    488 其中F3,'X''Y''Z'和各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容 
    489 第二种格式则是采用逐个单元相继修改的方法。命令格式为: 
    490 -E address 
    491 例如,-E DS:100 
    492 则可能显示为: 
    493 18E4:0100 89.- 
    494 如果需要把该单元的内容修改为78,则用户可以直接键入78,再按"空格"键可接着显示下一个单元的内容,如下: 
    495 18E4:0100 89.78 1B.- 
    496 这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。 
    497 ·填写命令F(FILL),其格式为: 
    498 -F range list 
    499 例如:-F 4BA:0100 5 F3'XYZ'8D 
    500 使04BA:0100~0104单元包含指定的五个字节的内容。如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。 
    501 3)检查和修改寄存器内容的命令R(register),它有三种格式如下: 
    502 ·显示CPU内所有寄存器内容和标志位状态,其格式为: 
    503 -R 
    504 例如,-r 
    505 AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 
    506 DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC 
    507 18E4:0100 C70604023801 MOV WORD PTR [0204],0138 DS:0204=0000 
    508 ·显示和修改某个寄存器内容,其格式为: 
    509 -R register name 
    510 例如,键入 
    511 -R AX 
    512 系统将响应如下: 
    513 AX F1F4 
    514 515 即AX寄存器的当前内容为F1F4,如不修改则按ENTER键,否则,可键入欲修改的内容,如: 
    516 
    517 -R bx 
    518 BX 0369 
    519 :059F 
    520 则把BX寄存器的内容修改为059F。 
    521 ·显示和修改标志位状态,命令格式为: 
    522 -RF系统将响应,如: 
    523 OV DN EI NG ZR AC PE CY- 
    524 此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如: 
    525 OV DN EI NG ZR AC PE CY-PONZDINV 
    526 即可,可见键入的顺序可以是任意的。 
    527 4)运行命令G,其格式为: 
    528 -G[=address1][address2[address3…> 
    529 其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。 
    530 5)跟踪命令T(Trace),有两种格式: 
    531 ·逐条指令跟踪 
    532 -T [=address] 
    533 从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的CS:IP开始执行。 
    534 ·多条指令跟踪 
    535 -T [=address][value] 
    536 从指定地址起执行n条指令后停下来,n由value指定。 
    537 6)汇编命令A(Assemble),其格式为: 
    538 -A[address] 
    539 该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如100D。 
    540 7)反汇编命令U(Unassemble)有两种格式。 
    541 ·从指定地址开始,反汇编32个字节,其格式为: 
    542 -U[address] 
    543 例如: 
    544 -u100 
    545 18E4:0100 C70604023801 MOV WORD PTR[0204],0138 
    546 18E4:0106 C70606020002 MOV WORD PTR[0206],0200 
    547 18E4:010C C70606020202 MOV WORD PTR[0208],0202 
    548 18E4:0112 BBO4O2 MOV BX,0204 
    549 18E4:0115 E80200 CALL 011A 
    550 18E4:0118 CD20 INT 20 
    551 18E4:011A 50 PUSH AX 
    552 18E4:011B 51 PUSH CX 
    553 18E4:011C 56 PUSH SI 
    554 18E4:011D 57 PUSH DI 
    555 18E4:011E 8B37 MOV SI,[BX] 
    556 如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。 
    557 ·对指定范围内的存储单元进行反汇编,格式为: 
    558 -U[range] 
    559 例如: 
    560 -u100 10c 
    561 18E4:0100 C70604023801 MOV WORD PTR[0204],0138 
    562 18E4:0106 C70606020002 MOV WORD PTR[0206],0200 
    563 18E4:010C C70606020202 MOV WORD PTR[0208],0202 
    564 565 -u100 112 
    566 18E4:0100 C70604023801 MOV WORD PTR[0204],0138 
    567 18E4:0106 C70606020002 MOV WORD PTR[0206],0200 
    568 18E4:010C C70606020202 MOV WORD PTR[0208],0202 
    569 
    570 可见这两种格式是等效的。 
    571 8)命名命令N(Name),其格式为: 
    572 -N filespecs [filespecs] 
    573 命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入存盘。filespecs的格式可以是: 
    574 [d:][path] filename[.ext] 
    575 例如, 
    576 -N myprog 
    577 -L 
    578 - 
    579 可把文件myprog装入存储器。 
    580 9)装入命令(Load),有两种功能。 
    581 ·把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。其格式为: 
    582 -L[address[drive sector sector] 
    583 ·装入指定文件,其格式为: 
    584 -L[address] 
    585 此命令装入已在CS:5CH中格式化了文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。 
    586 10)写命令W(Write),有两种功能。 
    587 ·把数据写入磁盘的指定扇区。其格式为: 
    588 -W address drive sector sector 
    589 ·把数据写入指定的文件中。其格式为: 
    590 -W[address] 
    591 此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。如未指定地址则数据从CS:0100开始。要写入文件的字节数应先放入BX和CX中。 
    592 11)退出DEBUG命令Q(Quit),其格式为: 
    593 -Q 
    594 它退出DEBUG,返回DOS。本命令并无存盘功能,如需存盘应先使用W命令。 
    595 
    596 问题:初学者问一个低级问题,执行debug-a后,如果有一行输入错误,如何更改这一行? 
    597 
    598 回答: 
    599 加入进行如下输入: 
    600 D:PWIN95Desktop>debug 
    601 -a 
    602 2129:0100movax,200 
    603 2129:0103movbx,200 
    604 2129:0106movcx,200 
    605 2129:0109 
    606 此时,发现movbx,200一句错误,应为movbx,20,可以敲回车返回"-"状态,然后输入: 
    607 -a103 
    608 2129:0103movbx,20 
    609 如果多或者少若干行,不必重新输入,可以用M命令移动后面的程序来去掉或者增加程序空间. 
    610 
    611 
    612 A.程序调用命令 
    613 
    614 C>DEBUG [D:] [PATH] [FILENAME[.EXT]] [PARM1] [PARM2] 
    615 
    616 其中,文件名是被调试文件的名字。如未键入文件名。可用DEBUG命令N和L把需要文件装入存储器后再调试。D指定驱动器,PATH为路径,FILENAME为文件名,PARM为命令参数 
    617 
    618 B.显示存储单元命令 
    619 
    620 -D [ADDRESS]或 ;ADDRESS 地址 
    621 
    622 -D [RANGE] ;RANGE 范围 
    623 
    624 C.修改存储单元内容命令 
    625 
    626 -E ADDRESS [LIST] 
    627 
    628 D.检查和修改寄存器内容命令 
    629 
    630 -R [REGISTER NAME] ;Register name 寄存器名字 
    631 
    632 E.汇编命令 
    633 
    634 -A [ADDRESS] 
    635 
    636 F.跟踪命令 
    637 
    638 -T [=ADDRESS] [VALUE] ;Value 变量值 
    639 
    640 G.运行命令 
    641 
    642 -G [=ADDRESS ] [ADDRESS2 [ADDRESS3] 
    643 
    644 H.反汇编命令 
    645 
    646 -U [ADDRESS] 
    647 
    648 -U [RANGE] 
    649 
    650 I.命名命令 
    651 
    652 -N FILESPECS [FILESPECS] 
    653 
    654 FILESPECS的格式可为[D:][PATH]FILENAME [.EXT] 
    655 
    656 J.装入命令 
    657 
    658 -L [ADDRESS[DRIVE SECTOR SECTOR]] ;DRIVE SECTOR 磁盘 扇区 
    659 
    660 K.写命令 
    661 
    662 W ADDRESS DRIVE SECTOR 
    663 
    664 L.退出命令 
    665 
    666 -Q 
  • 相关阅读:
    C语言——enum
    C语言——杂实例
    pc上用C语言模拟51多任务的案例程序
    C语言结构体实例-创建兔子
    C语句模拟多任务实例
    求解1^2+2^2+3^2+4^2+...+n^2的方法(求解1平方加2平方加3平方...加n平方的和)
    啊啊啊哦哦
    2013多校联合3 G The Unsolvable Problem(hdu 4627)
    c#操作excel方式三:使用Microsoft.Office.Interop.Excel.dll读取Excel文件
    揭开Socket编程的面纱
  • 原文地址:https://www.cnblogs.com/kim0zh/p/3583706.html
Copyright © 2020-2023  润新知