资源描述:
《实验十一综合程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验十一综合程序设计一、实验目的:巩固循环,分支,子程序等程序设计方法。全面了解汇编语言的程序设计和调试方法调试并查看.lst列表文件。二、实验内容:编写一个程序,接收从键盘输入的10个数字字符,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为:输入数字:0,1,2,3,4,5,6,7,8,9密码数字:7,5,9,1,3,6,8,0,2,4三.实验设备:IBMPC机,DOS或WINDOWS,MASM5。0程序,LINK程序四.实验原理:采用子程序结构完成数字的输入,并将其转换为二进制数,采用查表实现加密过程。
2、程序主要部分如下:mainInputoutputdecibincrlfoutmessg模块层次图inputmaininputoutput结束提示输入数字(outmess,crlf)初始化循环计数器循环计数器+1!=10接收一个数字字符(decibin)存入数组indata是数字?Crlf显示换行符显示回车还回是回车?显示出错(outmess,crlf))返回decibinYNoutput初始化数组初始化表值加密转换修改地址和计数器循环结束返回接收数字字符字符转换为二进制数值<0?出错返回YYN>9?N正常返回1、过程名:main为总控模块输入:用户从键盘输入1
3、0个十进制数字输出参数:将数字加密后保存到内存缓冲区BUFFER。功能:根据输入的数字和加密表完成数据加密。采用(XLAT指令变换)2、过程名:input输入:从键盘输入10个数字字符,以回车符结束。输出参数:把输入的数字字符转换成数值后存入indata数组中。功能:接受输入的十进制数字字符。调用子模块decibin把输入的数字字符转换为二进制数值。调用子模块crlf完成回车换行功能。3、过程名:output输入参数:从indata数组中取得数值。输出参数:把数值加密后存到缓冲区BUFFER中功能:读取数字,完成加密转换,将结果保存到BUFFER中。4、过程名
4、:decibin输入:从键盘取得一个数字字符。输出参数:SZBJ,表示用户输入的字符是否为数字;AL把该数字字符转换为二进制数值放到ALDL,用户输入的字符ASCII码功能:把从键盘取得的一个十进制数转换为二进制数,并存于al中。5、过程名:crlf输出:向终端发出回车、换行符。功能:完成一次回车、换行操作。6、过程名:outmess输入参数:将字符串首地址放到DX中输出:完成字符串的屏幕显示。功能:实现提示信息的输出。五、实验过程1.编辑程序代码datasegsegmentindatadb10dup(?)arraydb7,5,9,1,3,6,8,0,2,4b
5、ufferdb10dup(?)messg1db'Inputnumber:','$'messg2db'programovernormally!','$'messg3db'Inputcharactererror,pleaseinputagain!','$'SZBJdb?datasegendsstacksegsegmentdw100dup(?)toslabelwordstacksegendscodesegsegmentmainprocfarassumecs:codeseg,ds:dataseg;,ss:stacksegstart:pushdssubax,axpush
6、axmovax,dataseg;设置DS指向dataseg段movds,axmovax,stacksegmovss,axmovsp,offsettoscallinput;调用子过程inputcalloutput;调用子过程outputmovax,4c00hint21hmainendpinputprocnearleadx,messg1;输出提示信息;movdx,offsetmessg1calloutmessgleasi,indata;置输入数据地址初值movcx,0enter:calldecibin;调用子过程cmpSZBJ,1;确定是否输入有效数字jestor
7、e;有效数字保存cmpdl,13;非有效数字时判定是否是回车符jecrect;是回车符则退出jneerror;既不是有效数字又不是回车符则报错store:mov[si],al;将输入的数据送indata缓冲区incsi;修改缓冲区地址inccxcmpcx,10jneenter;是则转到提示信息jmpcrect;循环输入error:callcrlf;回车换行leadx,messg3;以下为显示错误信息calloutmessgjmpexitcrect:callcrlf;显示正确输入信息leadx,messg2calloutmessgexit:retinputend
8、pdecibinprocnearmov