4.1 一个源程序从写出到执行的过程
编写汇编源程序(源代码文件) -> 对源程序进行编译链接(可执行文件,包括程序与描述信息) -> 执行程序(机器码与数据载入内存并初始化,指示CPU执行)
4.2 源程序
源程序包含以下几个部分:
1.伪指令
没有对应的机器指令,最终由编译器执行
(1) XXX segment
...
XXX ends
segment 和 ends 是成对使用的伪指令,功能是定义一个段。
>>>>一个有意义的汇编程序至少要有一个段,这个段用来存放代码<<<<
(2) end
end 是一个汇编程序的结束标记,注意不要与 ends 混淆。
(3) assume
意为“假设”,它假设某一段寄存器与程序中某一个用 segment 和 ends 定义的段相关联。
2.源程序中的“程序”
源程序包括汇编指令和伪指令,汇编指令有对应的机器码,最终被CPU执行,完成一定的任务。
注:以后将源程序文件中的所有内容称为源程序,将源程序中最终由计算机执行、处理的指令或数据,称为程序。程序最先以汇编指令的形式存在于源程序中,经编译,链接后转变为机器码,存储在可执行文件中。
3.标号
一个标号指代了一个地址。
4.程序的结构
示例:
assume cs:abc
abc segment
mov ax,2
add ax,ax
add ax,ax
abc ends
end
5.程序返回
示例:
mov ax,4c00H
int 21H
6.语法错误和逻辑错误
4.3 编辑源程序
使用文本编辑工具即可编写源程序。
4.4 编译
masm.exe
4.5 链接
link.exe
>>>>链接的作用????<<<< 链接多个源程序,库文件等
4.6 以简化的方式进行编译和链接
masm file.asm;
/*在末尾使用分号结束,简化编译和链接的过程*/
4.7 程序的运行
4.8 谁将可执行文件中的程序装载进入内存并使它运行
command程序
小结:汇编程序从编写到执行的过程 编程 -> 编译 -> 连接 -> 加载 -> 执行
4.9 程序执行过程的跟踪
debug file.exe
使用R命令查看寄存器情况,T命令执行指令,P命令执行"int 21H"指令,Q命令退出debug。
实验3 编程,编译,链接,跟踪
略