资源描述:
《字符及字符串输入输出与顺序程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安邮电大学(计算机学院)课内实验报告实验名称:字符及字符串输入输出与顺序程序设计专业名称:通信工程班级:通工1203学生姓名:杜媛媛学号(8位):03121064指导教师:宁晓菊实验日期:2014年11月3日一.实验目的及实验环境1、学习和掌握字符及字符串的输入输出方法。2、掌握顺序程序设计方法。3、进一步掌握调试工具的使用方法。二.实验预习要求1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。2、复习BCD码运算调
2、整指令。3、根据“2.2.3实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。4、从“2.2.4实验习题”中任选一道题目,编写源程序,以便上机调试。三.实验内容1、从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。四.方案设计1.问题分析考虑到与用户进行交互,则需要使用dos功能调用1)从键盘获取一个字符并显示MOVAH,01HINT21H;调用21号软中断,等待用户输入一个字符,并将该字符保存在AL中SUBAL,30H;将ASCII码转换为对应的数值1)显示一个字符MOVDL,2ORDL,30H;将数值
3、转换为ASCII码MOVAH,02HINT21H;将字符’A’显示到显示器上2)显示一个以’$’结尾的字符串LEADX,INFOR;或者MOVDX,OFFSETINFORMOVAH,09HINT21H3)计算两个一位十进制数的加法MOVBL,NUM1MOVAL,NUM2ADDAL,BL;将两个数加起来AAA;非压缩性BCD码加法调整指令,调整AX寄存器中的内容。4)计算两个一位十进制数的乘法MOVBL,NUM1MOVAL,NUM2MULAL,BL;将两个数相乘结果放在AL寄存器中AAM;非压缩型BCD码乘法调整指令,调整AX寄存器中的内容
4、。五.测试数据及运行结果1.两个一位十进制数之和程序运行结果2、求两个一位十进制数的积1)部分反汇编结果2)输入第一个数8后,AL=38H3)输入第二个数6后,AL=36H4)乘法指令执行后,AL=30H5)乘法调整后,AX=04086*8=48,与实际计算结果一致2)最终结果图五.总结实验心得:通过这次试验我学习了字符及字符串的输入输出方法,并对顺序程序的设计方法有了一定了解,并且通过这次试验也进一步掌握调试工具的使用方法,通过这次试验,我发现我在基本的命令上理解还不是很透彻,常把一些命令弄错,有待进一步提高。七.附录:源代码(电子版)
5、1、源程序框架补全源代码assumecs:code,ds:datadatasegmentinfor1db"PleaseInputtheFirstData(<10):$"infor2db0ah,0dh,"PleaseInputTheSecondData(<10):$"infor3db0ah,0dh,"TheResultis:$"dataendscodesegmentstart:movax,datamovds,axleadx,infor1;获取第一个数movah,09hint21hmovah,01hint21hsubal,30hmovbl,a
6、lleadx,infor2;获取第二个数movah,09hint21hmovah,01hint21hsubal,30hmovah,0;计算结果addal,blaaapushax;显示结果leadx,infor3movah,09hint21hpopaxpushaxmovdl,ahordl,30hmovah,02hint21hpopaxmovdl,alordl,30hmovah,02hint21hmovah,4ch;返回dosint21hcodeendsendstart2、求两个一位十进制数的积assumecs:code,ds:datadat
7、asegmentinfor1db"PleaseInputtheFirstData(<10):$"infor2db0ah,0dh,"PleaseInputTheSecondData(<10):$"infor3db0ah,0dh,"TheResultis:$"dataendscodesegmentstart:movax,datamovds,axleadx,infor1;获取第一个数movah,09hint21hmovah,01hint21hsubal,30hmovbl,alleadx,infor2;获取第二个数movah,09hint21hm
8、ovah,01hint21hsubal,30hmovah,0;计算结果mulblaampushax;显示结果leadx,infor3movah,09hint21hpopaxpushaxmovd