汇编语言第十章:模块化程序设计.ppt 立即下载
2024-12-17
约3.4千字
约32页
0
220KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

汇编语言第十章:模块化程序设计.ppt

汇编语言第十章:模块化程序设计.ppt

预览

免费试读已结束,剩余 27 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

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	;;转换高位
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

汇编语言第十章:模块化程序设计

文档大小:220KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用