shuiyu 发表于 2017-6-30 22:02:53

《零基础入门学习汇编语言》第二十讲

小白刚学,不对的请各位大佬指正,谢谢{:10_254:}

一、一个源程序从写出到执行的过程

编写--->编译---->连接---->执行
1.编写:使用文本编辑器(如记事本、Nodepad++、UltraEdit等),用汇编语言编写汇编源程序。
2.编译:使用汇编语言编译程序(MASM.EXE)对源程序文件中的源程序进行编译,产生目标文件;
3.链接:再用连接程序(LINK.EXE)对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。
4.执行:在操作系统中,执行可执行文件中的程序。操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进行相关的初始化(比如:设置CS:IP指向第一条要执行的指令),然后由CPU执行程序。


二、源程序
(1)用文本编辑器编写的,编译前的内容,称为源程序;编译后的我们称为程序。
(2)源程序由汇编指令、伪指令、其他符号(其实也算是伪指令)组成。(在第二讲的时候说过)
(3)汇编指令:有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。
伪指令:没有对应的机器码的指令,最终不被CPU所执行。伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作。

三、定义一个段
(1)assume:XXX        含义为“假设”。它假设某一段寄存器和程序中的某一个用 segment … ends 定义的段相关联。通过assume说明这种关联,在需要的情况下 ,编译程序可以将段寄存器和某一个具体的段相联系。
(2) segment和ends是一对成对使用的伪指令,这是在写可被编译器编译的汇编程序时,必须要用到的一对伪指令。segment和ends的功能是定义一个段,segment说明一个段开始,ends 说明一个段结束。
一个段必须有一个名称来标识,使用格式为:(XXX就是前面assume假设时定义的)
XXX segment
XXX ends
(3)一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当作栈空间来使用。一个有意义的汇编程序中至少要有一个段,这个段用来存放代码。
(4)End 是一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指令 end,就结束对源程序的编译。如果程序写完了,要在结尾处加上伪指令end 。否则,编译器在编译程序时,无法知道程序在何处结束。切记:不要搞混了end和ends。





谢谢小甲鱼带来的视频教程,感谢!! {:10_303:}


   
本节结束,多谢览阅!
小白刚学,不对的请各位大佬指正,谢谢{:10_254:}
页: [1]
查看完整版本: 《零基础入门学习汇编语言》第二十讲