DOS命令处理器COMMAND.COM如何工作
DOS命令的解释程序在判断输入命令的模式时,它首先寻找已定义过的宏指令,若有(或有与内部命令同名的)宏指令,则执行该宏指令,否则判断是否为内部命令,是内部命令则由命令处理程序处理并交IO.SYS模块和DOS.SYS模块执行。若不是内部命令,则视为外部命令,此时在指定的磁盘内寻找同名的.COM文件运行,若无法找到同名的.COM文件,DOS便尝试寻找同名的.EXE文件运行,仍无法找到时,DOS会寻找同名的.BAT批处理文件运行。上述方法都尝试过仍无法执行该命令,则只好放弃该命令,并在屏幕上显示“Bad Command or filename”的错误信息。外部命令的装入程序则负责外部命令装入。而被加载的文件执行完毕后把控制权交给COMMAND的常驻部分,常驻部分关闭由被加载文件打开而未关闭的文件之后返回暂驻部分CCPT,在屏幕上再次出现DOS提示符,等待用户键盘输入。
由于暂驻部分主要任务是判断与处理输入的命令,故它是COMMAND的核心程序,而COMMAND.COM文件则称为DOS的命令处理器。
另外为了给用户提供尽可能多的内存空间,DOS允许大的用户程序在运行时占用COMMAND.COM文件的暂驻部分,即由用户程序将暂驻部分覆盖。当用户有程序运行结束返回DOS系统时,COMMAND的常驻部分检查暂驻部分的状态,若发现暂驻部分被覆盖,则由常驻部分中的暂驻部分装入程序将暂驻部分程序从盘上的COMMAND.COM文件中再次读到内存高端。
(河北 吕信)