1).model 存储模式
其中,存储模式有如下7种:
(1)TINY:用于创建COM类型程序,所有的段地址寄存器都被设置为同一值,表明所有的数据和代码都在同一个段内。一般用于小程序
(2)SMALL:一一般应用程序最常用的模式,所有的数据都在64KB的数据段内,而所有指令代码都放在一个64KB的代码段内,这意味访问数据和指令需要16位的偏移地址。
(3)COMPACT:所有指令代码都放在一个64KB的代码段内,但可以有多个数据段,转移类指令的默认属性是近转移,而数据则必需用32位的指针,以区别不同的段。
(4)MEDIUM;所有数据都放在一个64KB的数据段内,而允许有多个代码段,这样,转移类指令的默认属性是远转移或远调用,而访问数据只需要16位的偏移地址。
(5)LARGE;允许使用多个代码段和数据段
(6)HUGE:与大弄模式基本相同。
(7)FLAT:创建一个32位的程序,必须采用FLAT模式。DOS下不能使用FLAT模式。
2)简化段定义伪指令
.STACK[大小];建立一个堆栈段,段名是STACK,可以指定堆栈的大小,默认值为1KB
.DATA ;建立一个数据段,主要用于定义一些具有初值的变量
.DATA? ;建立一个数据段,用于定义一些无初值的变量
.CODE[段名] ;建立一个代码段
.STARTUP ;用来定义程序的入口点,并产生设置DS,SS,SP寄存器的代码。程序中使用用了STARTUP伪指令,则程序结束指令END不必指定程序开始的标号
.EXT[返回值];产生程序终止并返回操作系统的代码,通常用0作为返回值
3)与简化段定义有关的预定义符号
@CODE ;表示.CODE定义的代码段名,也是代码段的段地址
@DATA ;表示.DATA定义的数据段名,也是数据段的段地址
@STACK ;表示.STACK定义的堆栈段名,也是堆栈段的段地址
·CODESIZE;表示代码段的大小
.DATASIZE;表示数据段的大小
4)简化的段定义源程格式
.MODEL SMALL;定义程序的存储模式
.STACK ;建立一个堆栈段
.DATA ;建立一个数据段
.
.
.
.CODE ;建立一个代码段
.STARTUP ;设置程序的起始点
.
.
.
.EXIT 0 ;程序结束,返加操作系统
END ;汇编结束
其中,.STARTUP 语句可以用以下两条指令代替:
START: MOV AX,@DATA
MOV DS,AX
而.EXT 0语句可以用以下两条指令代替:
MOV AX,4C00H
INT 21H