第一个程序
4.1一个源程序从写出到执行的过程
*使用文本编译器,用汇编语言编写汇编源程序
*
对源程序进行编译连接
*使用汇编语言编译程序对源程序文件中的源程序进行编译,产生目标文件
*用连接程序对目标文件进行连接,生成可在操作系统中直接运行的可执行文件
可执行文件
*可执行文件包含两部分:1.程序和数据 2.相关的描述信息
执行可执行文件中的程序
*机器码和数据(依照描述信息)→载入内存并初始化→CPU执行
源程序
汇编指令
*有对应机器码的指令,由CPU执行
伪指令
*没有对应机器码的指令,由编译器执行
段
*segment和ends是一对成对使用的伪指令,用来定义一个段(必要的)
*segment-段开始 ends-段结束
*段必须有名称:段名 segment
定义一个段
*一个汇编程序是由多个段组成的
*一个有意义的汇编程序至少有一个段,这个段来存放代码
end
*结束整个编译(不是段结束)
*不要搞乱end和ends
assume
*假设segment...ends定义段与某一段寄存器相关连
源程序中的程序
*汇编源程序:伪指令
汇编指令
源程序经编译连接后变为机器码:
4.2源程序
标号
*一个标号指代了一个地址
*codesg:放在segment前面,作为段的名称,这个段名称最终被处理为一个段的段地址
程序的结构
-
定义一个段
-
实现处理任务
-
程序结束
-
段与段寄存器关联
程序的返回
*DOS系统是个单任务系统
EX: P1和P2不能同时运行,需要通过转交控制权单独运行
*程序返回应该在程序末尾添加返回的程序段
语法错误和逻辑错误
*语法错误:程序在编译时被编译器发现的错误
*逻辑错误:程序在编译时不能表现出来的,在运行时发生的错误
编译和链接
*连接的作用:1.将大的源程序分为多个源程序文件夹编译,每个源程序编译成为目标文件夹后再用连接程序将他们连接到一起,生成一个可执行文件
2.调用库文件中的子程序.
3.将编译后的源程序连接为最终的可执行信息
可执行文件中的程序装入内存并运行的原理
*1.exe运行过程
*操作系统外壳(shell)
*DOS中commend.com为DOS的shell
*汇编程序从写出到运行的过程
*Debug可以观察程序运行过程(利用中断指令)
EXE文件中的程序加载过程
PSP占用100H=256个字节
*用U命令查看其他指令
*用T命令但不执行程序中的每一条指令,并观察每条指令的执行结果
*到了int,用P命令执行
*程序结束后返回Debug中,Q命令退出Debug
#####