资源描述:
《接口与汇编实验三:子程序汇编综合设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验报告学院(系)名称:计算机与通信工程学院姓名学号专业计算机科学与技术班级实验项目实验三:子程序汇编综合设计课程名称微机原理与接口技术课程代码实验时间实验地点软件实验室7-219批改意见成绩教师签字:一实验名称:子程序汇编综合设计二实验目的:1.进一步熟悉汇编语言的汇编工具及编译、执行过程;2.了解常见的DOS和BIOS功能调用;3.理解汇编程序过程调用机制;4.学会综合运用所学汇编程序设计知识,结合DOS和BIOS功能调用,编程解决相对复杂的问题。三实验内容:1、过程调用:从NUM单元预置10个整数,找出最大值放至MAX单元,最小值放至MIN单元;
2、要求定义两个过程(子程序):MAXIMUM,MINIMUM完成求最大值、最小值;然后在主程序中调用这两个过程。要求:(1)编写流程图;(2)编写源程序并加适当注释;DATASEGMENTNUMDB11,14,12,16,13,17,15,12,19,20MAXDB?MINDB?DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXCALLMAXNUMCALLMINNUMMOVAX,4C00HINT21HMAXNUMPROC;求最大数的子程序PUSHFPUSHBXMOVCX,9LE
3、ABX,NUMMOVAL,[BX]AA:INCBXMOVDL,[BX]CMPAL,DL;比较两数的大小JLAA1;小于则跳至AA1MOVAL,DLAA1:LOOPAAMOVMAX,ALMAXNUMENDPMINNUMPROC;求最小数的子程序PUSHFPUSHBXMOVCX,9LEABX,NUMMOVAL,[BX]BB:INCBXMOVDL,[BX]CMPAL,DLJGBB1;大于则跳转MOVAL,DLBB1:LOOPBBMOVMIN,ALMINNUMENDPCODEENDSENDSTART(1)将MAX、MIN单元的值通过debug中的d指令显示,并
4、截图贴在报告中。2、DOS功能调用:从键盘输入一个字符串,放至数据段中IN_STR开始的内存单元,然后将其中小写字母变为大写字母,放至数据段中OUT_STR开始的内存单元并在屏幕上显示输出。要求:(1)画流程图;(2)编写源程序并加适当注释;DATASEGMENTIN_STRDB20,?,20DUP()STRDB0AH,0DH,'$';换行字符OUT_STRDB?DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXLEADX,IN_STRMOVAH,10INT21HLEABX,
5、IN_STRLEADI,OUT_STRINCBXINCBXA1:MOVAL,[BX]CMPAL,0DH;判断是否为回车符,JEDONE;是则结束CMPAL,'a'JBNEXTCMPAL,'z'JANEXTSUBAL,20H;小写则转换为大写NEXT:MOV[DI],ALINCBXINCDIJMPA1DONE:LEADX,STR;换行MOVAH,9INT21HLEADX,OUT_STR;输出大写MOVAH,9INT21HMOVAX,4C00HINT21HCODEENDSENDSTART(1)程序测试样例:输入:helloworld!输出:HELLOWOR
6、LD!3、DOS功能调用综合设计:从键盘输入一个字符串,放至数据段中IN_STR开始的内存单元,然后统计其中小写字母的个数,大写字母的个数,以及其它字符的个数,分别放至数据段中UPPERLOWEROTHER开始的内存单元,并将统计结果屏幕上显示输出。要求:(1)画流程图;(2)编写源程序并加适当注释;DATASEGMENTIN_STRDB20,?,20DUP()LOWERDB'LOEER:',?,0DH,0AH,'$'UPPERDB'UPPER:',?,0DH,0AH,'$'OTHERDB'OTHER:',?,0DH,0AH,'$'STRDB0AH,0
7、DH,'$';换行DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXLEADX,IN_STRMOVAH,10INT21HMOVBL,0;保存大写个数MOVCL,0;保存小写个数MOVDL,0;保存其他个数LEADI,IN_STRINCDIAA:INCDIMOVAL,[DI]CMPAL,0DH;取字符判断是否为回车符JEDONECMPAL,'a'JBA1CMPAL,'z'JAA2ADDCL,1JMPAAA1:CMPAL,'Z'JAA2CMPAL,'A'JBA2ADDBL,1JM
8、PAAA2:ADDDL,1;其他字符加1JMPAADONE:LEADI,LOWER;把小写个数