我使用bochs作为调试器。我使用"s"命令逐步执行我的代码。然而,我的问题是,每当出现"int"指令时,它就开始逐步执行BIOS代码。我可以输入一个命令让它跳过所有的BIOS代码并返回到我的代码吗?
我订阅了bochs的邮件列表并发送了一封电子邮件询问我的问题。在一封电子邮件中,我得到了一个答案,我应该使用"b"命令在"int"指令之后设置一个断点,如下所示:
b <address>
然后我应该使用"c"命令继续,直到断点。
现在,为了弄清楚"int"指令之后的指令地址是什么,我使用ndisasm
反汇编了我的代码,找到了"int"指令之后的指令:
0000000A B40E mov ah,0xe
我然后采取0000000A
,添加0x7C00
到它(因为引导文件加载到内存开始在0x7C00
),这就是我设置我的断点。