第四章 第一个程序
1、一个程序从写出到执行的过程:编写(使用文本编辑器)、编译链接(使用汇编语言编译程序(MASM.EXE)对源程序编译,产生目标文件,在用链接程序(link.exe)对目标文件进行链接,生产可执行文件)、执行(操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进行相关的初始化(比如:设置CS:IP指向第一条要执行的指令),然后由CPU执行程序。
2、可执行文件:1.程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据)2.相关的描述信息(比如:程序有多大、要占多少内存空间等)。PE(黑客)
3、源程序:汇编指令(有对应的机器码,最终被CPU执行)、伪指令(没有对应的机器码,最终不被CPU执行,由编译器来执行,编译器根据伪指令来进行相关的编译互作)
程序:源程序中最终由计算机执行、处理的指令或数据。存储在可执行文件中。
4、定义一个段:段名+segment和段名+ends,一个汇编程序至少有一个段。
5、end是一个汇编程序的结束标记,编译器碰到end就结束编译。
6、寄存器与段的关联假设:assume,它假设某一段寄存器和程序中的某一个用segment……ends定义的段相关联,通过这种关联,在需要的情况下,编译程序可以将段寄存器和某一个具体的段相联系。
7、标号:一个标号指代了一个地址(类似句柄)。
8、程序结构:定义一个段、实现处理任务、程序结束、段与段寄存器相连。
9、多任务:消息基址和CPU的时间片发明有关。
10、程序返回:一个程序结束后,将CPU的控制权交还给使它得以运行的程序,这个过程叫做程序返回。程序返回方式:mov ax,4c00 int 21H,int是中断指令。
11、语法错误和逻辑错误(程序在编译时不能表现出来的、在运行时发生的错误)。
12、以简化的方式进行编译和链接:加分号“;”ML是masm和link的组合。
13、强调!!我们学习汇编的主要目的,就是通过用汇编语言进行编程而深入地理解计算机底层的基本工作机理,达到可以随心所欲地控制计算机的目的。
14、操作系统是由多个功能模块组成的庞大、复杂的软件系统。任何通用的操作系统都要提供一个称为shell(外壳)的程序,用户(操作人员)使用这个程序来操作计算机系统工作。DOS有一个程序command.com,这个程序在DOS中称为命令解释器,也就是DOS系统的shell。
15、Command设置CPU的CS:IP指向程序的第一条指令(即程序的入口),从而使程序得以运行。
16、Debug利用中断指令进行单步运行调试。Debug将程序从可执行文件加载到内存中,cx中存放的是程序的长度。
17、在加载程序的时候创建PSP(程序的前缀)数据区(256个字节),DOS要利用PSP来和被加载程序进行通信。(DOS原理,可作为了解)。
18、U命令查看其它指令,到int 21,我们要用P命令执行,执行后显示“Program terminated normally”。
1 assume cs:abc
2
3 abc segment
4 mov ax, 2
5 add ax, ax
6 add ax, ax
7
8 mov ax, 4c00H
9 int 21H
10 abc ends
11
12 end