宏及过程调用实验报告

宏及过程调用实验报告

ID:16052563

大小:176.61 KB

页数:9页

时间:2018-08-07

宏及过程调用实验报告_第1页
宏及过程调用实验报告_第2页
宏及过程调用实验报告_第3页
宏及过程调用实验报告_第4页
宏及过程调用实验报告_第5页
资源描述:

《宏及过程调用实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、子程序及宏的使用实验报告一、实验目的1、练习使用子程序和宏;2、练习使用功能调用(INT21H)中关于字符输入及字符输出部分。二、实验准备1、事先编写实验内容的汇编源程序2、用ORG确定数据在内存中的偏移地址三、实验内容1、从键盘输入10个一位或两位的十进制数,用压缩BCD码形式存入数据段1000H起的内存单元中,且每个数在屏幕上显示成一行,共10行2、编程从上面十个数中找出最大值,显示在屏幕上。3、选作内容:将十个数按从大到小的顺序排列在数据区中程序设计如下:NAMEEXP;程序名称DATASEGMENT;数据段MESSDB'INPUT10DECIMALNUMBER:',0

2、DH,0AH,'$';提示输入10个十进制数字ERROR1DB0DH,0AH,'NOTDECIMALNUMBER!',0DH,0AH,'$';错误提示一:输入的不是数字ERROR2DB0DH,0AH,'TOOLARGEDECIMALNUMBER!',0DH,0AH,'$';错误提示二:输入的数字太大(三位数)MESS1DB0DH,0AH,'INPUTEDNUMBER:',0DH,0AH,'$';输出提示一:输出输入的十个数字MESS2DB'THELARGESTNUMBER:',0DH,0AH,'$';输出提示二:输出最大数字MESS3DB0DH,0AH,'SORTEDNUMB

3、ER:',0DH,0AH,'$';输出提示三:输出排序后的十个数字ORG1000H;将十个数字的开始偏移地址设为1000HNUBLISTDB10DUP(?);数字列表LARGESTDB?;存储最大数字DATAENDSSTACKSEGMENTSTACK;堆栈段DB1000DUP(?)STACKENDSCODESEGMENT;代码段ASSUMEDS:DATA,CS:CODE,SS:STACK,ES:DATAEXPPROCFAR;将程序定义成远过程START:PUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXMOVES,AXLEASI,NUBLISTCALL

4、MS;显示输入提示MOVCL,10NEXT:XORAX,AXCALLINP;调用接收字符子程序JNZNEXTMOVAH,9MOVDX,OFFSETMESS1;输出提示一:顺序输出输入的十个数字INT21HLEASI,NUBLISTMOVCH,10LOK:CALLLOOK;输出一个数字INCSIDECCHJNZLOKMOVAH,9MOVDX,OFFSETMESS2;输出提示二:输出最大数字INT21HCALLMAXMOVAH,9MOVDX,OFFSETMESS3;输出提示三:输出排序后的十个数字INT21HCALLSORT;进行排序LEASI,NUBLISTMOVCH,10LO

5、K1:CALLLOOK;输出INCSIDECCHJNZLOK1MOVAH,4CH;退出程序功能调用INT21HMSPROC;显示输入提示MOVAH,9MOVDX,OFFSETMESS;输出输入提示INT21HRETMSENDPINPPROCHC:MOVAH,1;接收第一个字符INT21HCMPAL,0DH;检查是否直接回车JZHCCMPAL,39H;检查是否在数字范围内JAER1CMPAL,30HJBER1PUSHAXMOVAH,1;接收第二个字符INT21HCMPAL,0DH;检查是否回车JZDEAL1;如果是,则进行一位数处理CMPAL,39H;检查是否在数字范围内JAE

6、R2CMPAL,30HJBER2PUSHAXMOVAH,1;接收第三个字符INT21HCMPAL,0DH;检查是否回车JZDEAL2;如果是,则进行两位数处理MOVAH,9;否则为三位数,输出错误提示二MOVDX,OFFSETERROR2INT21HPOPDXPOPDXJMPHCDEAL1:POPAX;一位数处理SUBAL,30H;将ASCII码转换成十进制数MOV[SI],AL;移入数字列表中INCSIMOVAH,2H;输出数字MOVDL,0AHINT21HDECCLJMPREDEAL2:POPAX;两位数处理SUBAL,30H;将个位ASCII码转换成十进制数POPBXS

7、UBBL,30H;将十位ASCII码转换成十进制数SHLBL,4;将十位左移四位ADDAL,BL;将十位和个位相加MOV[SI],AL;移入数字列表中INCSIMOVAH,2H;输出数字MOVDL,0AHINT21HDECCLJMPREER1:CALLERR1JMPHCER2:CALLERR2JMPHCRE:RETINPENDPERR1PROC;错误提示一:输入不是数字MOVAH,9MOVDX,OFFSETERROR1INT21HRETERR1ENDPERR2PROC;错误提示二:输入数字太大MOVAH

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

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

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