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
1) 汇编指令和伪指令的区别:首先这里要讲两个概念,即汇编语言包含什么,其总共包含两个部分,一部分就是汇编指令,就是指那些和01机器码具有一一对应关系的指令,这种指令可以直接利用简单的对应关系直接翻译成相应的机器指令01码,还有一种是伪指令,这部分指令没有直接的01机器码相对应,无法经过一步就翻译成机器指令,这类指令往往具有一定复杂的功能,也就是汇编编译器专有的功能,比如定义变量,定义符号等,这类指令比普通的汇编指令复杂,可能一条伪指令是若干条(多条)汇编指令的复合,即可以理解为编译器的命令,例如上面代码中的assume伪指令等,还有end指令,这些都是伪指令,它们不像mov指令等直接由一条机器指令与之对应;
总的来说就是汇编指令是让机器识别的,而伪指令是让编译器识别的;
2) assume 段寄存器:用户定义的段名:将某个段寄存器和用户定义的段相关联,在这里就相当于mov cs, codesg所代表的地址了,这就完成了对cs寄存器的初始化;
!注意:这里并没有人为指定cs的值,那是因为为了保证安全由系统自动查找一段空闲的空间分配给当前程序,因此这个codes