;class001.asm in DOS
;程序的存储模型(Memory Model)
.model small ;程序的存储模型
;存储模型决定一个程序的规模,
;也确定进行子程序调用,指令转移和数据访问的缺省属性
;须有存储模型语句,且位于简化段定义之前
;.MODEL 存储模型,语言类型
;创建运行于DOS操作系统下的应用程序
;根据需要选择前6种模型
;一般小型程序选用SMALL模型
;逻辑段的简化定义
;堆栈段定义伪指令.STACK创建一个堆栈段
.stack ;定义堆栈段(默认1KB)
;默认是1KB空间
;堆栈段名是:STACK,用@STACK预定义操作符
;数据段定义伪指令.DATA,用@DATA预定义操作符
.data ;定义数据段
;数据段名是:_DATA,用@DATA预定义操作符
;数据定义(数据待填)
msg1 db 'Hello,Assembly!',13,10,'$' ;定义要显示的字符串
;代码段定义伪指令.CODE创建一个代码段
.code ;定义代码段
;代码段名是:_TEXT,用@CODE预定义操作符
.startup ;程序执行起始
;指明本程序开始执行的位置
;使DS等于用.DATA伪指令定义的数据段基地址
;MASM汇编程序
;根据程序的起始位置设置代码段的CS(代码段寄存器)和IP(指令指针)值
;根据堆栈大小设置堆栈段的SS(堆栈段寄存器)和SP(堆栈指针)值
;但没有设置DS(数据段寄存器)和ES(附加段寄存器),以及FS(附加段寄存器)和GS(附加段寄存器)值
;主程序(指令待填)
mov dx,offset msg1 ;指定字符串偏移地址
mov ah,9 ;AH赋值9
int 21h ;功能调用显示信息
.exit ;程序正常执行结束
;子程序(指令待填)
end ;汇编结束