
codesg segment和codesg ends是用来定义一个段的伪指令,由编译器执行,中间的汇编指令则由CPU执行。assume cs: codesg决定了codesg段的指令和段寄存器CS联系起来。end标志源程序结束。
notice:
汇编源程序中的数据不能以字母开头,所以A000H要写成0A000H。
程序返回:
比如在DOS上运行一个程序P2,则必须有一个P1,把P2加载入内存中,把CPU控制权交给P2,P2运行完毕,返回P1,把CPU控制权交还P1。
这个P1,在DOS中,就是command.com,它还处理比如cd、dir、type等。
返回的方法是:
在程序末尾添加
mov ax, 4c00Hint 21H
编译和链接:
一般的方式:
masm 源程序名进行编译,如果源程序名后缀不是asm,比如是txt,则用masm 源程序名.txt,link同理。
简化的方式:
使用masm和link时,加个“;”,则中间文件的生成被忽略,如masm 1.asm;。
程序执行:

载入内存后,cx存放的是程序的长度,即xxx.exe中程序的机器码的字节数
