如何在TASM中查看寄存器值?

时间:2016-07-30 08:11:19

标签: assembly

我通过turbo汇编程序学习汇编。 每当我组装一个程序时,它就会完美地组装和执行,但屏幕上没有任何数据。例如(寄存器内发生的变化等)。 那么有什么方法可以检查输出。

我不想使用调试器。

我很想知道是否有任何命令或中断或任何可以帮助我输出的内容。

P.s:我可以输出字符串或字符,但不输出值或注册内容

3 个答案:

答案 0 :(得分:3)

TASM只是汇编程序,它不知道代码运行期间寄存器的值是什么。所以问题的答案是"你不能。"。

在运行时期间,您可以使用一些外部方法来检查值(调试器显然,或者如果您使用的是某个虚拟机,它可能会提供一些调试接口来检查它的状态。)< / p>

或者您在内部,屏幕或记录到文件,或通过网络/串行线路输出,或者只是发出哔哔声/闪烁的声音。 (与调试器相比,这通常是非常差的调试方式,但有时候出于各种原因可能是首选)

&#34;我可以输出字符串或字符但不输出值或注册内容&#34;
- 这没有任何意义。如果可以输出字符,则可以输出任何文本,也可以输出值。只需将它们转换为文本即可。

例如,456可以显示为字符串std::rethrow_exception() 或者'4', '5', '6'采用十六进制格式化(这在汇编程序中要简单得多,因为CPU已经编码了base_2值,因此将其转换为base_16只需要选择4个base_2数字组来形成base_16数字......哈!如何用很多单词说正好4位形成0..F六位数:D)。

答案 1 :(得分:1)

如果要将'C'运行时库调用printfitoa或手写的合理传真链接到您感兴趣的寄存器值上。

答案 2 :(得分:1)

为什么不使用调试器?这是一个可以帮助你的人:

使用turbo调试器运行它,在你获得你的exe文件后,使用DosBox和Turbo Debugger安装在与exe文件相同的目录中的下一个命令:

td YourFileName

然后从打开的视图选择上部菜单中的视图选项卡和cpu。 U可以使用f7(1步)或f9(完整运行)运行程序,并在运行时查看寄存器值更新。