DOS和command.com
操作系统是由多个功能模块组成的庞大、复杂的软件系统。任何通用的操作系统,都要提供一个称为shell(外壳)的程序,用户(操作人员)使用这个程序来操作计算机系统进行工作。
DOS中有一个程序command.com,这个程序在DOS中称为命令解释器,也就是DOS系统的shell。
DOS启动时,先完成其他重要的初始化工作,然后运行command.com,command.com运行后,执行完成其他的相关任务后,在屏幕上显示出由当前盘符和当前路径组成的提示符,比如:“c:\”等,然后等待用户的输入。
用户可以输入所要执行的命令,比如,cd、dir、type等,这些命令command执行,command执行完这些命令后,再次显示由当前盘符和当前路径组成的提示符,等待用户输入。
如果用户要执行一个程序,则输入该程序的可执行文件的名字,command首先根据文件名找到可执行文件,然后将这个可执行文件中的程序加载入内存,设置CS:IP 指向程序的入口。此后,command 暂停运行,CPU运行程序。程序运行结束后,返回 command中, command再次显示由当前盘符和当前路径组成的提示符,等待用户的输入。
1)在DOS中直接执行1.exe时,时正在运行command,将1.exe中的程序加载入内存。
2)command设置CPU的CS:IP指向程序的第一条指令(即程序入口),从而使程序得以运行。
3)程序运行结束后,返回到command中,CPU继续运行command。
汇编程序从写出到执行的过程
编译(Edit)-> 1.asm -> 编译(masm)->1.obj -> 连接(link)-> 1.exe -> 加载(command)-> 内存中的程序 -> 运行(CPU)
PSP的头两个字节是CD 20