程序返回
程序最先以汇编指令的形式存在源程序中,经编译连接后转变为机器码,存储在可执行文件中,那么,它怎样得到运行呢? 一个程序P2在可执行文件中,则必须有一个正在运行的程序P1,将P2从可执行文件中加载入内存后,将CPU的控制权交给P2,P2才能得以运行. P2开始运行后,P1暂停运行. 而当P2运行完毕后,应该将CPU的控制权交还给使它得以运行的程序P1,此后,P1继续运行.
一个程序结束后,将CPU的控制权交还给使它得以运行的程序. 我们称这个过程为:程序返回
操作系统的外壳
操作系统是由多个功能模块组成的庞大 复杂的软件系统. 任何通用的操作系统,都要提供一个称为shell(外壳)的程序,用户(操作人员)使用这个程序来操作计算机系统进行工作. DOS中有一个程序command.com,这个程序在DOS中称为命令解释器,也就是DOS系统的shell.
DOS启动时,先完成其他重要的初始化工作,然后运行command.com,command.com运行后,执行完其他的相关任务后,在屏幕上显示出由当前盘符和当前路径组成的提示符 比如:"c:"或"c:windows"等,然后等待用户的输入. 用户可以输入所要执行的命令 比如:"cd" "dir" "type"等,这些命令由command执行,command执行完这些命令后,再次显示由当前盘符和当前路径组成的提示符,等待用户的输入.
如果用户要执行一个程序,则输入该程序的可执行文件的名称,command首先根据文件名找到可执行文件,然后将这个可执行文件中的程序加载入内存,设置CS:P指向程序的入口.此后,command暂停运行,CPU运行程序. 程序运行结束后,返回到command中,command再次显示由当前盘符和当前路径组成的提示符,等待用户的输入.
在DOS中,command处理各种输入:命令或要执行的程序的文件名.我们就是通过command来进行工作的.
在DOS中直接执行1.exe时,是正在运行的command,将1.exe中的程序加载入内存. command设置CPU的CS:IP指向程序的第一条指令(即程序的入口),从而使序得以运行. 程序运行结束后,返回到command中,CPU继续运行command.
汇编程序从写出到执行的过程
编写(Notepad++)-1.asm-编译(Masm)-l.obi-连接(Link)-l.exe-加载(command)-内存中的程序-运行(CPU)