- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
宏及过程调用实验报告
子程序及宏的使用实验报告
2009011495 自95 余玮骏
实验目的
1、练习使用子程序和宏;
2、练习使用功能调用(INT 21H)中关于字符输入及字符输出部分。
实验准备
事先编写实验内容的汇编源程序
用ORG确定数据在内存中的偏移地址
实验内容
1、从键盘输入10个一位或两位的十进制数,用压缩BCD码形式存入数据段1000H起的内存单元中,且每个数在屏幕上显示成一行,共10行
2、编程从上面十个数中找出最大值,显示在屏幕上。
3、选作内容:将十个数按从大到小的顺序排列在数据区中
程序设计如下:
NAME EXP ;程序名称
DATA SEGMENT ;数据段
MESS DB INPUT 10 DECIMAL NUMBER:, 0DH,0AH,$ ;提示输入10个十进制数字
ERROR1 DB 0DH,0AH,NOT DECIMAL NUMBER!,0DH,0AH,$ ;错误提示一:输入的不是数字
ERROR2 DB 0DH,0AH,TOO LARGE DECIMAL NUMBER!,0DH,0AH,$ ;错误提示二:输入的数字太大(三位数)
MESS1 DB 0DH,0AH,INPUTED NUMBER:,0DH,0AH,$ ;输出提示一:输出输入的十个数字
MESS2 DB THE LARGEST NUMBER:,0DH,0AH,$ ;输出提示二:输出最大数字
MESS3 DB 0DH,0AH,SORTED NUMBER:,0DH,0AH,$ ;输出提示三:输出排序后的十个数字
ORG 1000H ;将十个数字的开始偏移地址设为1000H
NUBLIST DB 10 DUP(?) ;数字列表
LARGEST DB ? ;存储最大数字
DATA ENDS
STACK SEGMENT STACK ;堆栈段
DB 1000 DUP(?)
STACK ENDS
CODE SEGMENT ;代码段
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA
EXP PROC FAR ;将程序定义成远过程
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,NUBLIST
CALL MS ;显示输入提示
MOV CL,10
NEXT: XOR AX,AX
CALL INP ;调用接收字符子程序
JNZ NEXT
MOV AH,9
MOV DX,OFFSET MESS1 ;输出提示一:顺序输出输入的十个数字
INT 21H
LEA SI,NUBLIST
MOV CH,10
LOK: CALL LOOK ;输出一个数字
INC SI
DEC CH
JNZ LOK
MOV AH,9
MOV DX,OFFSET MESS2 ;输出提示二:输出最大数字
INT 21H
CALL MAX
MOV AH,9
MOV DX,OFFSET MESS3 ;输出提示三:输出排序后的十个数字
INT 21H
CALL SORT ;进行排序
LEA SI,NUBLIST
MOV CH,10
LOK1: CALL LOOK ;输出
INC SI
DEC CH
JNZ LOK1
MOV AH,4CH ;退出程序功能调用
INT 21H
MS PROC ;显示输入提示
MOV AH,9
MOV DX,OFFSET MESS ;输出输入提示
INT 21H
RET
MS ENDP
INP PROC
HC: MOV AH,1 ;接收第一个字符
INT 21H
CMP AL,0DH ;检查是否直接回车
JZ HC
CMP AL,39H ;检查是否在数字范围内
JA ER1
CMP AL,30H
JB ER1
PUSH AX
MOV AH,1 ;接收第二个字符
INT 21H
CMP AL,0DH ;检查是否回车
JZ DEAL1 ;如果是,则进行一位数处理
CMP AL,39H ;检查是否在数字范围内
JA ER2
CMP AL,30H
JB ER2
PUSH AX
MOV AH,1 ;接收第三个字符
INT 21H
CMP AL,0D
您可能关注的文档
最近下载
- 缠绕机的安全操作规程.docx VIP
- 《自然界中的氧循环和碳循环》PPT【优质课件】.pdf VIP
- 砌体及构造柱圈梁等二次结构施工方案.docx VIP
- 专题02 字词梳理及运用(讲义+试题) -2023年一升二语文暑假衔接课(统编版).docx VIP
- 《学习工匠事迹,领略工匠风采》课件 2024—2025学年高教版(2023)中职语文职业模块.pptx VIP
- 国家开放大学,零售管理,形考三.pdf VIP
- 《人工智能:AIGC基础与应用》教学课件.pptx VIP
- 超声引导下冲击波治疗.pptx VIP
- 2024河北交通职业技术学院教师招聘考试笔试试题.docx VIP
- cbcc中国建筑色卡千色卡色号查询表.pdf VIP
原创力文档


文档评论(0)