0

我正在学习使用调试的汇编编程,特别是通过 DOSBox 来模拟​​ 8086 处理器。我正在尝试制作一个循环。当我写类似的东西时:

循环标签:指令
..
..
循环标签

如此屏幕截图所示,我收到一个错误:

在此处输入图像描述

你能帮我用调试工具(DOSBox)做一个循环吗?

4

1 回答 1

1

debug是一个相当老的调试器。因此,它不允许您进行实验室操作,并且当您在其中编写代码时,它会直接写入内存(让我想起了我开始的日子 :))。

所以当你想写一些与地址相关的东西时,你必须直接指定地址。

在您的情况下,您必须记住地址073f:0106,当您想跳转或分支到那里时,您可以使用它,就像使用标签一样。

-a
15E7:0100 mov si,0
15E7:0103 mov cx, 3
15E7:0106 mov al, [si]
15E7:0108 dec cx
15E7:0109 jne 15e7:0106
15E7:010B ret
15E7:010C
-

这是一种非常繁琐的程序编写方式,因为如果您稍后插入指令,您可能会在移动其余代码和调整地址时遇到问题。

如果您想学习汇编,那么最好使用一些汇编程序来代替,但对于测试小代码示例,这是一种很好且简单的方法。

于 2013-11-13T14:29:12.393 回答