首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

报错程序无改门,过来,完成对用户堆栈指针的要求

对用户堆栈指针的要求

用户堆栈指针必须有效且必须有6个字节可用于g命令。该命令使用iret指令跳转到正在被测试的程序。Debug设置用户堆栈指针并将用户标志、代码段寄存器和指令指针压入用户堆栈。(如果用户堆栈无效或太小,操作系统可能会失败。)Debug在指定的断点处设置中断代码(0CCh)。

重新启动程序

不要在Windows2000显示以下消息后尝试重新启动程序;

Program terminated normally

要正确地运行程序,必须通过使用Debugn(名称)和l(加载)命令重新加载该程序。

++++

Debug:H(十六进制)

对指定的两个参数执行十六进制运算。

hvalue1value2

参数

value1

代表从0到FFFFh范围内的任何十六进制数字。

value2

代表从0到FFFFh范围内第二个十六进制数字。

范例

假定键入以下命令:

h39f10a

Debug执行运算并显示以下结果。

02A90095

说明

Debug首先将指定的两个参数相加,然后从第一个参数中减去第二个参数。这些计算的结果显示在一行中:先计算和,然后计算差。

++++

Debug:I(输入)

从指定的端口读取并显示一个字节值。

iport

参数

port

按地址指定输入端口。地址可以是16位的值。

有关将字节值发送到输出端口的信息,请单击“相关主题”列表中的DebugO(输出)。

范例

假定键入以下命令:

i2f8

同时假定端口的字节值是42h。Debug读取该字节,并将其值显示如下:

42

Debug:L(加载)

将某个文件或特定磁盘扇区的内容加载到内存。

要从磁盘文件加载BX:CX寄存器中指定的字节数内容,请使用以下语法:

l[address]

要略过Windows2000文件系统并直接加载特定的扇区,请使用以下语法:

l address drivestart number

参数

address

指定要在其中加载文件或扇区内容的内存位置。如果不指定address,Debug将使用CS寄存器中的当前地址。

drive

指定包含读取指定扇区的磁盘的驱动器。该值是数值型:0=A,1=B,2=C等。

start

指定要加载其内容的第一个扇区的十六进制数。

number

指定要加载其内容的连续扇区的十六进制数。只有要加载特定扇区的内容而不是加载debug命令行或最近的Debugn(名称)命令中指定的文件时,才能使用drive、start和number参数。

有关指定用于l命令的文件的信息,请单击“相关主题”列表中的Debugn(名称)。

有关写入调试到磁盘的文件的信息,请单击“相关主题”列表中的Debugw(写入)。

范例

假定启动Debug并键入以下命令:

现在可以键入l命令以加载File。com。Debug将加载文件并显示Debug提示符。

假定需要从驱动器C将起始逻辑扇区为15(0Fh)的109(6Dh)个扇区的内容加载到起始地址为04BA:0100的内存中。为此,请键入以下命令:

l04ba:10020f6d

注意

使用不带参数的l命令

当使用不带参数的l命令时,在debug命令行上指定的文件将加载到内存中,从地址CS:100开始。Debug同时将BX和CX寄存器设置为加载的字节数。如果不在debug命令行指定文件,所装入的文件将是最近使用n命令经常指定的文件。

使用具有address参数的1命令

如果使用带address参数的l命令,Debug将从内存位置address开始加载文件或指定扇区的内容。

使用带全部参数的l命令

如果使用带所有参数的l命令,Debug将加载指定磁盘扇区的内容而不是加载文件。

加载特定扇区的内容

指定范围内的每个扇区均从drive读取。Debug从start开始加载,直到在number中指定的扇区数中的内容全部被加载。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201119A0AWH100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券