首页 理论教育 硬盘维护数据恢复:GoCommand运行命令G

硬盘维护数据恢复:GoCommand运行命令G

时间:2023-10-23 理论教育 版权反馈
【摘要】:G命令的格式为:其中等号(=)后面的地址是运行程序的起始地址,常给出地址偏移量,而段地址约定为CS中的内容。运行命令有两种格式选择。DEBUG 程序中允许最多可设置10个断点,这些断点地址的次序是任意的。若输入的断点地址,只包括地址偏移量,则G命令认为其段地址在段寄存器CS中。

硬盘维护数据恢复:GoCommand运行命令G

为了对程序进行逐段调试,希望在运行中能设置断点,以便检查程序运行的正确性。G命令就能执行正在调试的指定地址的程序,当运行到指定地址的指令(断点)时,停止执行,并显示寄存器标志位和要执行的下一条指令(相当于一条R命令)。

G命令的格式为:

其中等号(=)后面的地址是运行程序的起始地址,常给出地址偏移量,而段地址约定为CS中的内容。在输入时,等号是不可缺少的,以便与后面的断点地址相区别。

运行命令有两种格式选择。

选择1:执行正为调试的不设断点的程序,其格式为:

前者使用CS: IP作为始址;后者以指定的〈始址〉作始址。这种选择适用于以不同参数去多次运行程序,以便对程序执行测试。

选择2:执行正在调试的设有断点的程序,其格式为:

这种方法使运行程序停在指定的地址,以便能检查系统或程序的一些情况。DEBUG 程序中允许最多可设置10个断点,这些断点地址的次序是任意的。设置多个断点好处在于,当被调程序有多个模块,多个执行路径时,不管它沿哪一个路径执行都有可能在断点处停下来。断点一经设定,DEBUG用一条中断类型3(INT3)指令,代替程序断点处的指令操作码。当程序执行到一个断点地址时,立即暂停并显示CPU内部所有寄存器的内容和全部标志位状态(相当于一条R命令),接着将所有断点处的指令恢复,全部断点被取消,返回DEBUG。如果设置的断点在G命令的执行过程中均未遇到,则程序执行完毕,不会恢复断点处的原来指令。例如:(www.xing528.com)

由于没有指定运行程序的始址参数,则从当前指令开始执行程序,其地址为CS:IP的当前值。在这里共指定三个断点,假设到达了第二个断点,那么在执行地址为CS:1EF 的指令之前,停止执行,恢复当初的指令代码,并且取消这三个断点,进行显示(像执行R命令一样),结束运行命令。

注意:

(1)一旦程序已经执行完毕,DEBUG显示信息“Program terminated normally”(程序正常结束),若还要执行此程序,必须重新装入这个程序。

(2)命令中的地址参数所指的单元,必须含有有效的8088指令代码。如果指定一个地址含有无效的指令,那么将产生预想不到的结果。

(3)堆栈指针必须是有效的,对G命令来说,堆栈必须至少包含有6个可用的字节,否则,也将产生预想不到的结果。

(4)若输入的断点地址,只包括地址偏移量,则G命令认为其段地址在段寄存器CS中。

【例1.8】 建立读硬盘主引导扇区程序并执行之。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈