通常段的程序 /

;通常段的程序

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值;

 

posted @ 2013-11-23 10:18  yangsan  阅读(169)  评论(0编辑  收藏  举报