我想知道,我可以使用哪个调试工具为一个汇编程序,以及如何使用它。
我在程序集中编写了一个简单的引导加载程序。然而,它并没有像我所希望的那样正常工作,尽管我认为这个逻辑是正确的。因此,我尝试使用调试器,以便能够逐步通过引导加载程序,检查寄存器状态等等。
我在Ubuntu上尝试了GDB,将我的.asm编译成.elf和.o (我需要这样做吗?)如果是,下一步是什么?)此外,我读到在Bochs模拟器中有一个内部调试器,但是我无法找到如何使用它的任何文档。我也有Visual 2010,windbg,但我不知道如何使用它来调试.asm文件。
如果你以前这样做过,这将是一个简单的答案。任何帮助都会很感激的。
由衷地
发布于 2012-02-06 19:57:23
如果要调试引导加载程序代码,显然需要在代码本身将要运行的相同环境中运行它。我相信您已经知道,在BIOS完成POST之后,引导加载程序代码将以真实模式执行。然后,引导加载程序在7c00 h加载到内存中,并执行对该地址的跳转。
显然,一旦计算机运行并加载了“真正的”操作系统,就无法可靠地模拟这种环境,因为那时您的CPU处于保护模式(如果是AMD64,则是长模式)。此时,您唯一的选择是使用QEMU或博克斯,以便在操作系统中模拟真实的PC。我曾经使用Bochs来调试我在过去写过的一些引导加载程序代码,它运行得很好。有关更详细的说明,请查看手册页。
https://stackoverflow.com/questions/9165935
复制相似问题