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

Fac*_*ger 0 assembly dosbox x86-16

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

debug < [file]
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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
Run Code Online (Sandbox Code Playgroud)

Mic*_*tch 8

我可以重现您在此场景中看到的行为:

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

我发现了一个版本的DEBUG.COM距离的FreeDOS如预期那样工作.我已经从我的网站上下载了DEBUG.COM.或者,您可以从Softpedia 下载ZIP文件并解压缩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!
Run Code Online (Sandbox Code Playgroud)