谁将可执行文件中的程序装载进入内存并使它运行?

程序返回

程序最先以汇编指令的形式存在源程序中,经编译连接后转变为机器码,存储在可执行文件中,那么,它怎样得到运行呢? 一个程序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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Budops

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值