DOSBox:debug.exe读取文件 - 错误地处理命令

时间:2016-03-26 01:20:06

标签: assembly dosbox x86-16

我正在尝试在64位系统上使用带有debug.exe的DOSBox。如果我手动输入命令,它完全正常。当我使用以下文件重定向文件的输入时

debug < [file]

它不起作用。在除第一行之外的每一行上都会显示类似于此的错误:

enter image description here

DOSBox最终会挂起并崩溃。有什么方法可以解决这个问题吗?

我尝试作为命令处理的输入文件是:

a 100
jmp 145
db 'Hello, World!', 0D, 0A, 'Press any key to continue . . .$'

a 145
mov ah, 09
mov dx, 102
int 21
mov ah, 08
int 21
int 20

rcx
100
n hello.com
w
q

4 个答案:

答案 0 :(得分:6)

我可以重现您在这种情况下看到的行为:

  • Windows和Linux上的DOSBox 0.74
  • 从Windows XP复制到DOSBox的DEBUG.EXE
  • 来自各种版本的MS-DOS的DEBUG.EXE将导致包括意外挂起在内的问题。有关其他相关问题,请参阅此Stackoverflow question

我发现FreeDOSDEBUG.COM版本按预期工作。我已经从我的网站上下载了DEBUG.COM。或者,您可以从Softpedia下载ZIP File并提取DEBUG.COM

当我运行DEBUG.COM时,我明白了:

S:\>debug.com <hello.asm
-a 100
0BFB:0100 jmp 145
0BFB:0102 db 'Hello, World!', 0D, 0A, 'Press any key to continue . . .$'
0BFB:0131
-a 145
0BFB:0145 mov ah, 09
0BFB:0147 mov dx, 102
0BFB:014A int 21
0BFB:014C mov ah, 08
0BFB:014E int 21
0BFB:0150 int 20
0BFB:0152
-rcx
CX 0000
:100
-n hello.com
-w
Writing 00100 bytes
-q

S:\>hello
Hello, World!

答案 1 :(得分:1)

使用DEBUG.EXE脚本重定向在DosBox 0.74中遇到同样的问题。发现可以通过在重定向到DEBUG.EXE时将脚本文件中的行尾字符从[CR] [LF]更改为[CR]来修复它。

将文件粘贴到Scite编辑器中并查看行尾字符显示:

100 {CR] [LF] jmp 145 [CR] [LF] ....等等

我在Scite中使用了一个选项,将EOL字符单独更改为[CR],获取

100 {CR] jmp 145 [CR] ....等等

保存了该文件,并且能够将其重定向到DEBUG.EXE,没有任何问题。 不确定为什么[CR] [LF]会导致DEBUG.EXE出现问题,但希望这会有所帮助。

DEBUG.COM处理EOL序列而没有毛刺,因此使用它是有意义的,尤其是扩展功能。但是,通过这个修复,FWIW似乎可以使用DEBUG.EXE。 Scite编辑器是一个很好的工具。

答案 2 :(得分:0)

我发现在Dosbox中运行Debug脚本文件时遇到同样的问题。 但我找到了另一个编辑器:Notepad2。大大小小地改变颜色以突出汇编词。 不过要使用debug ver 1.25。

答案 3 :(得分:0)

比你Michael Petch。我正在尝试一切来获取MS-DEBUG的FreeDos克隆的输出以保存到文本文件中。但是阻止输出重定向的不是路径,速度或内存分配。它确实是换行和光标返回组合。我快速编写了一个程序来取出光标返回并保留换行符。它现在重定向!我也可以取出换行符并让光标返回,DEBUG也会重定向到文件。小故障是我必须在DosBox窗口外访问Windows或关闭DosBox窗口,以便输出的DEBUG代码在目录列表中可见。

这是我将DEBUG输出重定向到文件的方式:

DEBUG&lt; game.dbg&gt; game.lst