目录
一、汇编程序从写出到执行的过程
过程:
编程(edit) --->1.asm ---> 编译--->1.obj --->连接 --->1.exe ---> 加载 --->内存中的程序 --->运行
语法:masm 1.asm;
link 1.obj;
1.exe (运行)
二、源程序
assume cs:codesg ;codesg为段名,此句将该段和cs联系起来
codesg segment ;段的开始
mov ax,0123h
mov bx,0456h
add ax,bx
add ax,ax
mov ax,4c00h
int 21h ;这两句是程序返回
codesg ends ;段的结束
end ;程序结束
其中
codesg segment 和codesg ends 之间为汇编指令,由CPU执行
其他为伪指令,由编译器执行。
三、语法错误和逻辑错误
语法错误:程序在编译过程时被编译器发现的错误
逻辑错误:源程序编译后,运行时发生的错误
四、连接的作用
(1)源程序很大时,可将它分为多个源程序文件来编译,再连接
(2)程序中调用了某个库文件中的子程序,需将库文件与该程序生成的目标文件连接到一起
(3)编译后得到的目标文件中有些内容还不能用来生成可执行文件,连接程序将这些内容处理为最终的可执行信息
五、程序执行过程的跟踪
command:设置CS:IP指向程序的入口,就放弃了对CPU的控制权
debug:由command加载运行,后debug加载程序,不放弃对CPU的控制
六、程序被装入内存的什么地方?
程序所在内存区的地址为ds:0
内存区的前256个字节存放的是PSP(程序段前缀),dos用来和程序进行通信。从256个字节以后的空间存放的是程序。
所以,程序的物理地址为:
SA+10H:0
或(SA*16+0+256)