我正在为MS-DOS编写一些小工具.现在我正在写一个Shutdown.com,就像 Windows XP和更高版本一样.我已经编写了整个代码,现在我只需要从DOS传递参数. 我需要将参数“-r”传递给reboot,将“-s”传递
我需要将参数“-r”传递给reboot,将“-s”传递给shutdown.
我该怎么做?
我在Windows 98上使用TASM(Turbo Assembler 4.1)进行链接和编译.我正在寻找一种非常简单的方法,如果可能的话,还是一个.COM程序.我看起来与C语言中的ARGV和ARGC完全相同,但对于16位汇编…
> shutdown -r将重启
> shutdown -s将关闭
请记住,我已经知道如何重新启动以及如何关闭PC.
我只需要学习如何将参数从MS-DOS命令行传递给我的程序.
在偏移80h处,有一个1字节的值,它给出了命令行参数的长度.实际的命令行参数字符串从偏移量81h开始,最长可达127个字节.你知道它基于偏移量80h的值有多长,但它也将以回车符(0Dh)终止.
首次执行程序时,可以使用相对于DS寄存器中指针的这些偏移量.否则,在AH设置为62h时调用INT 21h以检索指向BX寄存器中当前PSP的指针. (功能62h需要DOS 3或更高版本;在DOS 2上,您可以使用未记录的功能51h).
Randall Hyde的旧版16位DOS版本可以免费在线获取(HTML和PDF格式).在Chapter 13中,第13.3.11节描述了PSP,以下两节(13.3.12-13)解释了如何访问和解析命令行参数,包括示例代码.