汇编语言学习笔记

1.伪指令由谁来执行?

伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作

2.程序:源程序中最终由计算机执行、处理的指令或数据

3.我们可以将源程序文件中的所有内容称为源程序,将源程序中最终由计算机执行处理的指令或数据称为程序。程序最先以汇编指令的形式存在源程序中,经编译、连接后转变为机器码,存储在可执行文件中。

4.连接的作用:

a.当源程序很大时,可以将它分为多个源程序文件来编译,每个源程序编译成目标文件后,再用连接程序将它们连接在一起,生成一个可执行文件

b.程序中调用了某个库文件中的子程序,需要将这个库文件和该程序生成的目标文件连接在一起,生成一个可执行文件

c.一个源程序编译后,得到了存有机器码的目标文件,目标文件中的有些内容还不能直接用来生成可执行文件,接连程序将这些内容处理为最终的可执行信息

所以,在只有一个源程序文件,而又不需要调用某个库中的子程序的情况下,也必须用连接程序对目标文件进行处理,生成可执行文件。注意,对于连接的过程,可执行文件是我们要得到的最终结果

5.在DOS中,可执行文件中的程序P1若要运行,必须有一个正在运行的程序P2,将P1从可执行文件中加载入内存,将CPU的控制权交给它,P1才能得以运行。当P1运行完毕后,应该将CPU的控制权交还给使它得以运行的程序P2

6.Debug将程序从可执行文件加载入内存后,CX中存放的是程序的长度。程序加载后,DS中存放着程序所在内存区的段地址,这个内存区的偏移地址为0,则程序所在的内存区的地址为:ds:0。这个内存区的前256个字节中存放的是PSP,dos用来和程序进行通信。从256字节处向后的空间存放的是程序。所以,我们从ds中可以得到PSP的段地址SA,PSP的偏移地址为0,则物理地址为SAX16+0。因为PSP占256(100H)字节,所以程序的物理地址是:SAX16+0+256=SAX16+16X16=(SA+16)X16+0

可用段地址和偏移地址表示为:SA+10:0。

原文地址:https://www.cnblogs.com/919czzl/p/4132219.html