我正在学习使用调试的汇编编程,特别是通过 DOSBox 来模拟 8086 处理器。我正在尝试制作一个循环。当我写类似的东西时:
循环标签:指令 .. .. 循环标签
如此屏幕截图所示,我收到一个错误:
你能帮我用调试工具(DOSBox)做一个循环吗?
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
-
这是一种非常繁琐的程序编写方式,因为如果您稍后插入指令,您可能会在移动其余代码和调整地址时遇到问题。
如果您想学习汇编,那么最好使用一些汇编程序来代替,但对于测试小代码示例,这是一种很好且简单的方法。