ASSUMECS:CODE,DS:DATA,SS:STACK1ASSUME是伪指令,本身不产生代码,所以必要的初始化还是要的,比如DATA→DS,CODE→CS,STACK→SS2ASSUME的作用是告诉编译器到哪个seg去找哪个变量(传说中可以节约时间)3ASSUME后面的各种预定传说是可以省略的,只有CS:CODE不可省略,否则会报错4CODE、DATA、STACK是自己定义的段名,而CS、DS、SS是实际的寄存器地址MOVSP,OFFSETTOP=LEASP,TOP(OFFSET是偏移地址的意思)'$'是INT21H指令中显示字符串指令的结束符INT是中断调用指令,INT21H;21H是中断入口,根据芯片不同含义不同,功能是调用DOS函数(根据AH值判断调用DOS执行何种操作)STARTENDSTARTEND是关键词,START是标示符,所以可修改,ENDxxx表示xxx程序结束DOS系统功能调用表(INT21H)AH功能调用参数返回参数00程序终止(同INT20H)CS=程序段前缀01键盘输入并回显AL=输入字符02显示输出DL=输出字符03异步通迅输入AL=输入数据04异步通迅输出DL=输出数据05打印机输出DL=输出字符06直接控制台I/ODL=FF(输入)DL=字符(输出)AL=输入字符07键盘输入(无回显)AL=输入字符08键盘输入(无回显)检测Ctrl-BreakAL=输入字符09显示字符串DS:DX=串地址'$'结束字符串0A键盘输入到缓冲区DS:DX=缓冲区首地址(DS:DX)=缓冲区最大字符数(DS:DX+1)=实际输入的字符数0B检验键盘状态AL=00有输入AL=FF无输入0C清除输入缓冲区并请求指定的输入功能AL=输入功能号(1,6,7,8,A)0D磁盘复位清除文件缓冲区0E指定当前缺省的磁盘驱动器DL=驱