2013-04-06 65 views
0

我有一个汇编程序,我试图通过调试进行测试,但是程序通常具有用户输入的整数。有没有一种方法来调试程序,仍然能够“运行”它的意义上说,我可以输入整数到程序中,但仍然在寄存器中查看值?如何调试程序/查看需要用户输入的寄存器

在此先感谢您的帮助。

+0

什么调试器?什么OS?你如何阅读用户输入?向我们展示代码。 – nrz 2013-04-06 22:09:10

+0

对不起,这还不是很清楚,我在DosBox里面使用了nasmide调试器。我目前正在使用Int 21H中断之一,具体来说AH = 01来读取用户输入。 – Calibre 2013-04-06 22:14:57

回答

0

有没有一种方法来调试程序,仍然能够“运行”它的意义上说,我可以输入整数到程序中,但仍然在寄存器中查看值?

是的,任何值得它的盐的调试器都应该能让你通过指令执行你的代码指令。

例如,Borland的Turbo Debugger开放WATCOM Watcom DebuggerTrace IntoStep Over执行选项。两者相似但不完全相同。后者执行整个子程序作为call subroutine指令的一部分,前者只执行一条指令,无论是否为call

了解如何在调试器中执行此操作。查找它的UI和/或文档。

此外,调试器通常允许您根据自己选择的指令设置断点并执行代码,直到遇到断点。你也可以使用它。

+0

好的谢谢..我老实说不知道我在用什么调试器,但我认为它是nasmide或实际上只是在DOS Shell中进行调试。无论如何,我决定只是放入一些设置值而不是用户输入,这允许我进行一些基本的调试。感谢您的帮助,但我可能会尝试查看是否可以下载其中一个调试器。 – Calibre 2013-04-06 23:16:50

+0

您可以肯定地下载'wd.exe'作为开放Watcom C/C++的一部分。 – 2013-04-06 23:17:59

+0

如果它是普通的老DEBUG(呃...呃...),不要尝试用'int 21h'来代替'使用'p'roceed。这应该等待你输入一个字符。我记得,尽管dos并不能很好地工作! – 2013-04-07 00:14:33