鱼C论坛

 找回密码
 立即注册
查看: 3234|回复: 0

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

[复制链接]
发表于 2017-6-30 22:02:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小白刚学,不对的请各位大佬指正,谢谢

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


编写--->编译---->连接---->执行
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。





谢谢小甲鱼带来的视频教程,感谢!!


   
本节结束,多谢览阅!
小白刚学,不对的请各位大佬指正,谢谢

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 20:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表