1.一个最简单的汇编语言源程序:
assume cs:codesg
codesg segment
mov ax,0123H
mov bx,0456H
add ax,bx
add ax,ax
mov ax,4c00H
int 21H
codesg ends
end
codesg segment
mov ax,0123H
mov bx,0456H
add ax,bx
add ax,ax
mov ax,4c00H
int 21H
codesg ends
end
2.assume是“假设”的意思,它是将有特定用途的段和相关段寄存器关联起来的。
3.sgment和ends是一对成对使用的伪指令,也是一边必须用到的伪指令,xxxx
segment用来声明该段的名称,中间则是存放汇编指令。
4.end是一个汇编程序的结束标记。
5.一个有意义的汇编程序必须有一个代码段。
6.一个程序结束后,会将CPU的控制权交还给使他运行的程序,这就是程序返回。程序返回的指令如下:
mov ax,4c00H
int 21H
7.汇编程序从写出到执行的过程:
编程-->1.asm-->编译-->1.obj-->连接-->加载-->内存中的程序-->运行
8.程序加载到内存中,这个内存区的前256个字节存放的是PSP(程序段前缀),是DOS用来和程序进行通讯的,从256字节向后的空间存放的才是程序。所以,从ds中可以得到PSP的段地址SA,PSP的偏移地址为0,则物理地址为SAX16:0,所以程序可用段地址和偏移地址可以表示为:SA+10H:0。