- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
宏指令和子程序设计实验
实验目的及实验环境
实验环境:
熟悉宏指令、宏定义、宏调用以及宏展开的概念;掌握宏指令的定义与调用的方法。
掌握子程序的定义、调用以及调用程序与子程序之间参数的传递方法。
了解宏指令与子程序的异同以及各自的适用场合。
实验环境:80x86系列微型计算机一台以及进行汇编语言程序设计所必需的编程工具(文本编辑器、ASM.EXE、LINK.EXE、DEBUG.EXE)
实验内容
从键盘输入10个无符号十进制数(小于256),将其转换为二进制数并存放在NUM字节型变量中,找出其中的最大数,并将找出的最大数在屏幕上显示出来。
要求:
= 1 \* GB3 ① 在屏幕上显示字符串提示信息的功能由宏指令DSTRING实现;
= 2 \* GB3 ② 将键盘输入的十进制数转换成二进制数由子程序DTOB实现;
= 3 \* GB3 ③ 在N个无符号字节型二进制数中找出最大数的功能由子程序FMAX实现;
= 4 \* GB3 ④ 将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的功能由子程序BTOAD实现。
程序运行结果如右图所示。
方案设计
编程指导
显示提示信息的宏指令DSTRING的编写
宏指令通常用于在程序中需要反复使用但所需指令条数又不是很多的情形;而对于需要经常使用且需要较多指令才能完成的功能通常通过子程序调用来实现。这是因为,从执行速度上看,由于子程序调用涉及到保护断点的操作,因此,子程序调用比宏调用执行时间相对要稍长一些;但从生成的可执行文件的大小方面考虑,子程序调用生成的文件要小一些。读者在进行汇编语言程序设计时,应综合考虑两者的利弊,以便进行合理选择。
下面给出实现提示信息显示的宏指令的定义:
DSTRING MACRO STRING
PUSH DX
PUSH AX
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
POP AX
POP DX
ENDM
请读者注意,宏指令应该先定义,后调用。因此,宏定义通常紧跟在代码段中段寄存器赋值指令之后给出。
将键盘输入的十进制数转换为二进制数的子程序DTOB的编写
子程序的定义方法请参阅教材“5.6.4 子程序设计”一节。将十进制数转换为二进制数的程序代码请参阅本书“2.4.3 实验内容”中“编程指导”部分。
在N个无符号字节型二进制数中找出最大数的子程序FMAX的编写
请参阅教材“5.6.3 循环程序设计”一节例5.12。
将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的子程序BTOAD的编写
程序代码请参阅本书“2.4.3 实验内容”中“编程指导”部分。
程序框架
COUNT EQU 10
DATA SEGMENT
NUM DB 10 DUP(?)
IBUF DB 7,0,6 DUP(?)
OBUF DB 6 DUP(?)
INFOR1 DB Please input 10 numbers:,0AH,0DH,$
INFOR2 DB The max found in the 10 numbers is $
INFOR3 DB 0AH,0DH,$
DATA ENDS
STACK SEGMENT stack
DATA2 DW 40 DUP(?)
TOP EQU LENGTH DATA2
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
start: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
定义显示字符串信息的宏指令DSTRING MOV SP,AX
定义显示字符串信息的宏指令DSTRING
DSTRING INFOR1
MOV BX,OFFSET NUM
MOV CX,COUNT
LOOP1: CALL DTOB
DSTRING INFOR3
MOV [BX],AL
INC BX
LOOP
您可能关注的文档
最近下载
- 问题解决型护理品管圈QCC成果汇报之降低脑血管介入患者术后穿刺处血肿的发生率.pptx
- 压力性损伤与失禁性皮炎的鉴别.pptx VIP
- 2023版:中国肾小球肾炎诊断和治疗指南(全文).docx VIP
- 2025-2030中国渔笼和网行业市场现状供需分析及投资评估规划分析研究报告.docx VIP
- 2019-2020学年湖北省十堰市竹溪县八年级下学期期末数学试卷(含答案解析).docx VIP
- 2025年低空经济产业与标准化发展报告-中国电子技术标准化研究院华东分院.docx
- 能源大数据 数据目录指南.pdf VIP
- 基孔肯雅热防控技术指南解读PPT课件.pptx VIP
- 地下车库大面积加腋板结构施工工法.doc VIP
- 1.幼儿园防登革热、基孔肯雅热预案(详细版).pdf
文档评论(0)