




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
将程序分段、采用子程序或宏结构都是进行模块化程序设计 本节介绍开发大型程序时采用的方法: 源程序文件的包含 目标模块连接 把源程序分放在几个文本文件中,在汇编时通过包含伪指令INCLUDE结合成一体 INCLUDE文件名 可将常用的子程序形成.ASM汇编语言源文件 可将常用的宏定义存放在.MAC宏库文件中 可将常量定义、声明语句组织在.INC包含文件中 例4.21a ①宏库文件lt421a.mac ②主程序文件lt421a.asm ③子程序文件sub421a.asmdispchar macrochar ;显示char字符 movdl,char movah,2 int21h endm dispmsg macromessage ;显示message字符串 movdx,offsetmessage movah,9 int21h endm includelt421a.mac ... dispmsgmsg1 ;提示输入数据 movbx,offsetbuf callinput ;数据输入 cmpcx,0 jestart4 ;没有输入数据则退出 movcount,cx ... ;显示输入的数据 ... ;数据排序 ... ;显示经排序后的数据 start4: .exit0 includesub421a.asm end子程序源文件有3个子程序 ALdisp ;显示2位16进制数子程序(例4.10) sorting ;排序子程序(例4.8) input ;键盘输入子程序 还包含一个宏 convert ;;将DX两位ASCII码转换为两位16进制数;键盘输入子程序 ;入口参数:ds:bx=存放数据的缓冲区 ;出口参数:cx=数据个数 input proc pushax pushdx xorcx,cx ;数据个数清0 input01: xordx,dx ;输入字符清0 input02: movah,1 ;键盘输入一个字符 int21hinput10: cmpal,0dh jeinput30 ;是回车,结束整个数据的输入 cmpal,’’ jeinput20 ;是空格和逗号,确认输入了一个数据 cmpal,’,’ jeinput20 cmpal,08h jeinput17 ;是退格,丢弃本次输入的数据,出错 cmpal,’0’ ;有效数字判断(图4.5b) jbinput17 ;小于’0’,不是有效数字,出错 cmpal,’f’ jainput17 ;大于’f’,不是有效数字 cmpal,’a’ jbinput11 subal,20h ;’a’~’f’转换成大写’A’~’F’ jmpinput12 input11: cmpal,’F’ jainput17 ;字符小于’a’、大于’F’,出错 cmpal,’A’ jaeinput12 ;是’A’~’F’,有效字符 cmpal,’9’ jainput17 ;是’0’~’9’,有效字符input12: cmpdl,0 ;有效字符的处理 jneinput13 movdl,al ;dl=0,输入了一个数据的低位,则dl←al jmpinput02 ;转到字符输入 input13: cmpdh,0 jneinput17 ;dl≠0,dh≠0输入3位数据,出错 movdh,dl ;dl≠0,dh=0输入了一个数据的高位 movdl,al ;dh←dl,dl←al jmpinput02 ;转到字符输入input17: movdl,7 ;输入错误处理 movah,2 int21h movdl,'?' movah,2 int21h jmpinput01 ;转到输入一个数据;转换正确的输入数据(图4.5c) input20: convert jmpinput01 ;转到输入一个数据 input30: convert popdx popax ret ;返回,出口参数已设定 input endp;;将DX两位ASCII码转换为两位16进制数(图4.5c) convert macro localinput21,input22 localinput24,input25 cmpdl,0 ;;dl=0,没有要转换的数据,退出 jeinput25 cmpdl,'9' jbeinput21 subdl,7 ;;字符A~F,则减7 input21: anddl,0fh ;;转换低位 cmpdh,0 ;;dh=0,没有高位数据 jeinput24 cmpdh,'9' jbeinput22 subdh,7 input22: shldh,1 shldh,1 shldh,1 shldh,1 ;;转换高位

王子****青蛙
实名认证
内容提供者


最近下载