子程序和宏使用

子程序和宏使用

ID:20991726

大小:52.00 KB

页数:4页

时间:2018-10-18

子程序和宏使用_第1页
子程序和宏使用_第2页
子程序和宏使用_第3页
子程序和宏使用_第4页
资源描述:

《子程序和宏使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验三子程序和宏的使用一、实验目的1.练习使用子程序及宏。2.练习使用功能调用(INT21H)中关于程序终止、字符输入及字符输出部分。二、实验准备复习教材中有关章节,编写实验内容的汇编语言源程序并加必要注释。确定数据在内存中的偏移地址可用ORG伪命令。三、实验内容实验内容分为三部分,可以先调试第一部分,然后逐步添加其他功能。多次重复使用的功能块,单独做成子程序或宏,然后在程序中调用。1.从键盘键入10个一位或两位的十进制数,用压缩BCD码的形式存入数据段1000H起的单元中,且每个数在屏幕上显示成一行,共10行。键入数

2、字用单个字符的输入调用。输入时应判断字符类型是否数字0~9,若不在此范围则不予接收且提示输入错;若在此范围则将ASCII码转换成数值,且每两位十进制数压缩成一个字节存入数据区。若仅输入一个数字就敲回车键,表明这是一个1位的十进制数,其数值还占1个字节,十位数部分为零。2.编程从上面十个数中找出最大值显示在屏幕上。进入DEBUG,修改十个数的数值,检验在各种情况下,程序都能找到最大值。3.(选作)将十个数按从大到小的顺序排列在数据区中。编写总源程序如下:NAMEMACRODATASEGMENTMESSDB'PleaseI

3、nput10DecimalNumber:'DB0DH,0AH,'$'ERRORDB0DH,0AH,'ERROR!InputItAgain:',0DH,0AH,'$'MAXIMUMDB'TheMax:',0DH,0AH,'$'LISTDB0DH,0AH,'SortedList:',0DH,0AH,'$';各种提示信息LINEDB0DH,0AH,'$'ORG1000HNUBLISTDB10DUP(?);存放输入的数字DATAENDSSTACKSEGMENTSTACKDB100DUP(?)STACKENDSCODESEGME

4、NTNEWLINEMACRO;实现换行功能PUSHAXPUSHDXLEADX,LINEMOVAH,09INT21HPOPDXPOPAXENDMPRINTMACRO;输出寄存器DL中以压;缩BCD码形式表示的数字PUSHBXMOVBL,DLPUSHCXMOVCL,04SHRDL,CLPOPCXADDDL,30HMOVAH,02HINT21HMOVDL,BLANDDL,15ADDDL,30HINT21HNEWLINEPOPBXENDMWRITEMACRO;从键盘读入一个不大;于99的十进制数,存入BLPUSHAXPUSHC

5、XMOVCL,04MOVBL,0MOVBH,1GO:CMPBH,3JEEXITMOVAH,01INT21HINCBHCMPAL,0DHJEEXITCMPAL,3AHJAEWRONGCMPAL,2FHJBEWRONGSUBAL,30HSHLBL,CLADDBL,ALJMPGOWRONG:MOVBL,00MOVBH,01;initializeMOVAH,09HLEADX,ERRORINT21HJMPGOEXIT:NEWLINEPOPCXPOPAXENDMMAINPROCFARASSUMECS:CODE,DS:DATA,SS

6、:STACK;从这里开始执行,分别提示输入十个数字,输出;最大值,将数字排序输出BEGIN:PUSHDSMOVAX,0PUSAXMOVAX,DATAMOVDS,AXMOVAH,09HLEADX,MESSINT21HCALLINPUTMOVAH,09INT21HMOVDI,1000HMOVCX,10SM:MOVDL,[DI]PRINTINCDILOOPSMCALLFINDMAXRETMAINENDPINPUTPROCNEAR;调用此子程序;用于输入数字,CX循环控制输入的个数MOVCX,10MOVDI,1000HINPU

7、T_P:WRITEMOV[DI],BLINCDILOOPINPUT_PRETINPUTENDPFINDMAXPROCNEAR;寻找偏移地址;DI~SI中的最大值并将其输出MOVDI,1000HCALLMAXMOVSI,AXLEADX,MAXIMUMMOVAH,09INT21HMOVDL,[SI]PRINTRETFINDMAXENDPMAXPROCNEAR;用于找出内存偏移;地址DI~SI中的最大值PUSHCXMOVAX,DIMOVSI,1009HMOVCX,SISUBCX,DIMOVBL,[DI]LOOPER:CMPB

8、L,[SI]JAENEXTMOVBL,[SI]MOVAX,SINEXT:DECSILOOPLOOPERPOPCXRETMAXENDPSORTPROCNEAR;实现了制定内存;区段数字的排序功能MOVCX,09MOVDI,1000HNEXTM:CALLMAXMOVSI,AXMOVBL,[SI]MOVDL,[DI]MOV[SI],DL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。