+ -
当前位置:首页 → 问答吧 → 为什么debug到程序结尾时的int 21h要用p命令执行?

为什么debug到程序结尾时的int 21h要用p命令执行?

时间:2011-09-04

来源:互联网

为什么不能用t或者g命令?

p命令还可以用来跳出循环? p命令到底都有哪些作用?

作者: erekkk   发布时间: 2011-09-04

t命令是单步执行命令,g可以执行到哪一行。p命令可以跳出循环,在遇到loop指令时可以使用p命令进行表示。我就知道这么多了。楼主可以在网上搜debug的使用教程。里面有对debug的命令的详细描述。

作者: haojiahuo50401   发布时间: 2011-09-05

也可以使用g命令的。加入int 21h后面还有一条指令 mov ah,9,开始地址是0x0020,你可以使用-g 0200直接执行完int 21h到mov ah,9停住的。

作者: haojiahuo50401   发布时间: 2011-09-05

t 命令会进入 call 的子程、int 的中断例程里面去,而不是执行完了 call 或 int 指令到其下一指令停下来;另外还有 rep 和 loop 指令。
所以,如果不是想深究 int21h 是如何实现你指定的功能的话,无疑是不需要进入 int21h 里面去的。所以就不能用 t 命令了。最简单的就是用 p 命令,一下子就执行完了 int21h 然后在其后的指令上暂停。
g 命令也是可以用的,但需要加上其后那个指令的地址,就如 #2楼 朋友所说的那样;不能简单地一个 g 命令,否则会一直运行到程序结束(或是遇到异常、中断,甚至是死机)。
所以,还是 p 命令方便。

作者: zara   发布时间: 2011-09-05

如果你使用T的话,你就会跟进int里面去了
用P就直接条过

作者: WJN92   发布时间: 2011-09-05

t跟到int中进去
p直接走到int结束

大家都回答了,我也答以下,看看有没有分~

作者: korekara88730   发布时间: 2011-09-05