旧式MS-DOS汇编程序中的大参数和错误级别?

时间:2012-04-12 00:45:57

标签: assembly operating-system dos

几年前我曾经为MS-DOS操作系统编写x86汇编程序;其中大多数仍然在Windows CMD.EXE命令处理器中未经修改运行。我的问题是关于这些计划中的两个具体要点:

  • 程序参数位于程序段前缀偏移81H处,最大长度为127个字符。

  • 程序返回的ERRORLEVEL值在INT 21H的Terminate Program功能(4CH)之前加载到AL寄存器中,因此它被限制在0-255范围内的值。

    < / LI>

我意识到在Windows XP中,在DOS窗口中执行的命令可以处理最大8 KB大小的参数,并且可以返回32位有符号值作为ERRORLEVEL。所以我的问题是:是否有一种 SIMPLE 方式,旧式MS-DOS汇编程序可以访问8KB参数并返回32位ERRORLEVEL值?

是的,我知道符合Windows的程序集程序可以访问这些功能,但我想知道一个程序是否可以用一种非常简单的方式来实现...

1 个答案:

答案 0 :(得分:0)

由于NTVDM,您的16位程序在32位Windows上运行。默认情况下,越来越多的机器正在获得64位操作系统,而64位Windows甚至没有NTVDM,因此它将不再起作用。

我建议您将程序移植到32位或64位Windows。

移植后,轻松访问命令行。 WinMain和main都有命令行作为参数。