永发信息网

汇编程序从哪里开始执行

答案:3  悬赏:70  手机版
解决时间 2021-02-26 05:59
汇编程序从哪里开始执行
最佳答案
如果你看过PE头,就明白了。编译生成后的EXE格式的文件,程序执行时,会由Windows解析PE头并加载到内存,由PE头决定程序的执行地址。PE头是系统默认的数值,当然,我们也可以修改。你所说的0000h其实就是一个虚拟地址里的开头部分,在真正的物理内存里,它可不是这个值,这个值由Windows根据PE头信息进行确定。如果你针对的是程序代码的执行,程序是从start处开始执行,在编译程序时,遇到宏调用的地方,编译过程中系统会将宏的代码插入到调用处,之后再进行编译,而不是像函数调用那样。对于子程序,就是一种函数调用,开始调用子程序时,系统会将当前执行的地址等信息保存在栈中,之后去调用子程序,子程序完成后,系统会将先前保存在栈中的信息进行出栈,恢复到原来的状态,接着继续向下执行程序。追问那你说的pe头是针对什么的执行。pe头是什么,不清楚。。书上也没说追答只有深入了解exe可执行文件时,才会触碰到它。一般写程序时不用考虑它,当你编译链接程序时,系统会默认加上的;系统加载你的exe可执行程序时,首先查看的是PE头,根据PE头将程序加载到合适的内存地址。并参照PE头信息从某个物理内存地址开始执行程序,这个物理内存地址一般是你写的程序代码的入口地址。一般不用了解这么多的,有些软件工程师都不太明白这些东西呢,所以你也别把它太当会事儿,除非你真想深入的了解它。如果你想知道它的结构,在百度上直接搜“PE头“就能搜出一大堆与之相关的东西。我一句话也给你解释不清楚,所以还得你自己去看看。
全部回答
从何处开始执行,要看 PC 的数值。
复位后,PC 的数值就是 0000H。
程序入口,是编程时指定的。
在完整段定义格式时,程序入口一般是一个语句标号(或过程名)。而在程序结束伪操作中引用这个标号,这样就确定了程序运行的开始点。
比如:
START: MOV ……
……
END START
若程序使用简化段定义格式,则用“.STARTUP”伪操作指定程序的开始点并同时完成段寄存器的初始化。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
保定的清真餐厅。。环境好一点的。。不要太贵
想在四川学挖掘机,有前途吗,去哪里学比较好
妈妈3年前在外面捡了一个观音菩萨一个弥勒佛
三岁小孩的头被重物压个包会不会很严重
航拍飞行器适于几岁玩
康庄邮政支局地址在什么地方,想过去办事
“城市少年好事徒,手持快剪伺于途;蹩见豚尾
几只鸟一个窝猜成语
如何外加电流源求含有受控源的电路的等效电阻
订车要注意什么
老五水饺中式快餐(滏阳北大街店)地址在什么地
答案是小熊的谜语或者脑筋急转弯
锐箭电子称怎么校正
16G USB3.0的U盘哪个好
下列结论错误的是A.有一个角是直角的平行四边
推荐资讯
丰达快餐店地址在什么地方,想过去办事
好德力这个地址在什么地方,我要处理点事
边缘概率密度问题.设(x,y)的概率密度为f(x,y)
常州市向阳制刷厂在什么地方啊,我要过去处理
市场由三个要素构成,即认可、购买力和()。
近代以来,跪拜、作揖等礼节被鞠躬、握手取代
下列关于机械加压送风的设置要求的说法不正确
煮紧送在粤语中是什么意思
氟气与铁反应生成物是什么几氟化铁是否会生成
三门峡海燕国学幼儿园怎么去啊,有知道地址的
易语言 热键 播放器
请问,考研算违约吗?,如果在结果公布前和用人
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?