- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《汇编语言》第四章 课件03.ppt
4.8 可执行文件中的程序装入内存并运行的原理 在DOS中,可执行文件中的程序P1若要运行,必须有一个正在运行的程序P2 ,将 P1 从可执行文件中加载入内存,将CPU的控制权交给它,P1才能得以运行; 当P1运行完毕后,应该将CPU的控制权交还给使它得以运行的程序P2。 1.exe的执行过程 4.8 可执行文件中的程序装入内存并运行的原理 1.exe的执行过程: (1)我们在提示符“G:\TRY”后面输入可执行文件的名字“1”,按Enter键。 问题4.1 (2)1.exe中的程序运行; (3)运行结束,返回,再次显示提示符“G:\TRY”。 问题4.2 问题4.1 执行第(1)步操作时,有一个正在运行的程序将1.exe中的程序加载入内存,这个正在运行的程序是什么? 它将程序加载入内存后,如何使程序得以运行? 问题4.2 执行第(3)步操作,程序运行结束后,返回到哪里? 参考内容 回答问题4.1和4.2 操作系统的外壳 操作系统是由多个功能模块组成的庞大 、复杂的软件系统。任何通用的操作系统 ,都要提供一个称为shell(外壳)的程序 ,用户(操作人员)使用这个程序来操作计算机系统工作。 DOS中有一个程序 ,这个程序在 DOS 中称为命令解释器,也就是DOS系统的shell。 回答问题4.1和4.2 (1)我们在DOS中直接执行 1.exe 时,是正在运行的command将1.exe中的程序加载入内存。 (2)command设置CPU的CS:IP指向程序的第一条指令(即程序的入口),从而使程序得以运行。 (3)程序运行结束后,返回到command中,CPU继续运行command。 4.8 可执行文件中的程序装入内存并运行的原理 汇编程序从写出到执行的过程: 4.9 程序执行过程的跟踪 为了观察程序的运行过程 ,我们可以使用Debug。 Debug 可以将程序加载入内存,设置CS:IP指向程序的入口,但Debug并不放弃对CPU 的控制,这样,我们就可以使用Debug 的相关命令来单步执行程序 ,查看每条指令指令的执行结果。 4.9 程序执行过程的跟踪 接下来可以用R命令看一下各个寄存器的设置情况: 可以看到,Debug将程序从可执行文件加载入内存后,cx中存放的是程序的长度。1.exe 中程序的机器码共有15个字节。 4.9 程序执行过程的跟踪 现在程序已从 1.exe 中装入内存,接下来我们查看一下它的内容,可是我们查看那里的内容呢? 程序被装入内存的什么地方? 我们如何得知? 在DOS系统中.EXE文件中的程序的加载过程如下 EXE文件中的程序的加载过程 EXE文件中的程序的加载过程 注意:有一步称为重定位的工作我们在上面没有讲解,因为这个问题和操作系统的关系较大,我们不作讨论。 总结 EXE文件中的程序的加载过程 总结 程序加载后,ds中存放着程序所在内存区的段地址,这个内存区的偏移地址为 0 ,则程序所在的内存区的地址为:ds:0; 这个内存区的前256 个字节中存放的是PSP,dos用来和程序进行通信。 从 256字节处向后的空间存放的是程序。 EXE文件中的程序的加载过程 总结(续) 所以,我们从ds中可以得到PSP的段地址SA,PSP的偏移地址为 0,则物理地址为SA×16+0。 因为PSP占256(100H)字节,所以程序的物理地址是: SA×16+0+256= SA×16+16×16=(SA+16)×16+0 可用段地址和偏移地址表示为:SA+10:0。 4.9 程序执行过程的跟踪 用U命令查看一下其他指令: 用T命令担不执行程序中的每一条指令,并观察每条指令的执行结果 到了 int 21,我们要用P命令执行: 4.9 程序执行过程的跟踪 int 21 执行后,显示“Program terminated normally”,返回到Debug中。 表示程序正常结束。 注意,要使用P命令执行int 21。 4.9 程序执行过程的跟踪 需要注意的是,在 DOS 中运行程序时,是command将程序加载入内存; 所以程序运行结束后返回到command中,而在这里是debug 将程序加载入内存,所以程序运行结束后要返回到Debug中。 4.9 程序执行过程的跟踪 使用Q命令退出Debug,将返回到command中,因为Debug是由command加载运行的。 4.9 程序执行过程的跟踪 我们在 DOS中用 “Debug 1.exe” 运行Debug对1.exe进行跟踪时,程序加载的顺序是:command加载Debug,Debug加载1.exe。 返回的顺序是:从1.exe中的程序返回到Debug,从Debug返回到co
您可能关注的文档
- 《71按劳分配为主体,多种分配方式并存》课件.ppt
- 《8+我的早年生活》课件(共25张PPT).ppt
- 《ARM嵌入式接口技术应用》第八章_μCOS-Ⅱ嵌入式操作系统的移植.ppt
- 《C程序设计(第三版)课后答案》.doc
- 《Internet及其应用》教案.doc
- 《Internet网络管理》复习提纲 2.doc
- 《PLC应用技术(三菱)》课件.数据处理类应用指令.ppt
- 《TCPIP协议原理》实验指导书.doc
- 《TD-SCDMA内部培训资料》TR_BT13_C1_1 TD-SCDMA接口协议与信令流程 -120(B).ppt
- 《TSGZ0004-2007特种设备制造、安装、改造、维修质量保证体系》解读讲义.ppt
- 2024年USB电话商务管理系统项目可行性研究报告.docx
- [白城]2024年吉林白城市通榆县事业单位面向下半年应征入伍高校毕业生招聘笔试历年参考题库(频考点试.docx
- [甘肃]2024年甘肃省地质矿产勘查开发局第一地质矿产勘查院招聘52人笔试历年参考题库(频考点试卷).docx
- 2024年端子机刀片刀模项目可行性研究报告.docx
- 2024年情侣相框项目可行性研究报告.docx
- [玉溪]2024下半年云南玉溪市事业单位招聘工作人员189人笔试历年参考题库(频考点试卷)解题思路附.docx
- 2024至2030年双面脚轮项目投资价值分析报告.docx
- [湖南]2024年湖南劳动人事职业学院招聘32人笔试历年参考题库(频考点试卷)解题思路附带答案详解.docx
- [湖南]2024年湖南建筑高级技工学校(湖南建设中等职业学校)招聘17人笔试历年参考题库(频考点试卷.docx
- [烟台]2024年山东烟台市市场监督管理局所属事业单位招聘19人笔试历年参考题库(频考点试卷)解题思.docx
文档评论(0)