;通常段的程序
page 60,132 ;定义每页长度60行,每行宽度132字符 //可省略
title a05asm1 (EXE) ;产生一个标题 //没什么用
;-------------------------------------------
stack segment para stack 'stack' ;定义栈段
DW 32 DUP (0)
STACK ENDS
;-------------------------------------------
DATA SEGMENT PARA 'DATA' ;定义数据段
KING DW 215 ;初始化215
KING1 DW 125 ;初始化125
KING2 DW ? ;未初始化
DATA ENDS
;-------------------------------------------
CODE SEGMENT PARA 'CODE' ;定义代码段 PARA<定位类型>
MAIN PROC NEAR ;过程开始 过程名 PROC [NEAR或FAR]
ASSUME SS:STACK,DS:DATA,CS:CODE
MOV AX,DATA
MOV DS,AX
MOV AX,KING ;215送至AX中
ADD AX,KING1 ;125送至AX中
MOV KING2,AX ;KING+KING1 送至KING2
MOV AX,4C00H ;结束处理
INT 21H
MAIN ENDP ;过程结束
CODE ENDS ;段结束
END MAIN ;程序结束
;PROC NEAR和 PROC FAR
; 子程序和主程序在同一个代码段,则使用near,调用发生后,主程序堆栈中只压入ip值;
; 子程序和主程序不在一个代码段,则使用far,调用发生后,主程序堆栈中将压入cs、ip值;