我正在制作一个正在从其他文件中读取的汇编程序(Intel 8086,DosBox)。 在我的asm代码中,我在
中有它的名字File db 'myFile.FIL',0
我要从该文件中读取的所有内容都是编译并运行我的project.exe。但现在我想将文件名设置为命令行参数。 例如,如果我写:
project.exe file2.fil
然后按Enter键
我想阅读" file2.fil"而不是" myFile.FIL"
我该怎么做?
答案 0 :(得分:1)
project.exe file2.fil并按Enter键
您将在ProgramSegmentPrefix(PSP)中找到名称“file2.fil”作为命令行的一部分。
当程序启动DS
段寄存器指向256字节PSP,命令行从此PSP内的偏移128开始。
第一个字节(偏移128处)告诉您后面文本的长度。文本本身由回车代码(13)终止,但这不包括在前述长度中 文本的第一个字符(偏移129)主要是空格字符(32),因此在将以零结尾的字符串传递给DOS api时不要包含它!