从程序集

时间:2016-12-03 15:25:30

标签: parameters command line x86-16 dosbox

我正在制作一个正在从其他文件中读取的汇编程序(Intel 8086,DosBox)。 在我的asm代码中,我在

中有它的名字
File db 'myFile.FIL',0

我要从该文件中读取的所有内容都是编译并运行我的project.exe。但现在我想将文件名设置为命令行参数。 例如,如果我写:

project.exe file2.fil然后按Enter键

我想阅读" file2.fil"而不是" myFile.FIL"

我该怎么做?

1 个答案:

答案 0 :(得分:1)

  

project.exe file2.fil并按Enter键

您将在ProgramSegmentPrefix(PSP)中找到名称“file2.fil”作为命令行的一部分。

当程序启动DS段寄存器指向256字节PSP,命令行从此PSP内的偏移128开始。

第一个字节(偏移128处)告诉您后面文本的长度。文本本身由回车代码(13)终止,但这不包括在前述长度中 文本的第一个字符(偏移129)主要是空格字符(32),因此在将以零结尾的字符串传递给DOS api时不要包含它!