我正在尝试在64位系统上使用带有debug.exe
的DOSBox。如果我手动输入命令,它完全正常。当我使用以下文件重定向文件的输入时
debug < [file]
它不起作用。在除第一行之外的每一行上都会显示类似于此的错误:
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
答案 0 :(得分:6)
我可以重现您在这种情况下看到的行为:
我发现FreeDOS的DEBUG.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