资源描述:
《微机原理课后第39题》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、39.(上机题)编写程序实现下列5项功能,通过从键盘输入1~5进行菜单式选择:(1)按数字键“1”,完成将字符串中的小写字母变换成大写字母。用户输入由英文大小写字母或数字0~9组成的字符串(以回车结束),变换后按下列格式在屏幕上显示:<原字符串>例如:abcdgyt0092<新字符串>ABCDGYT0092按任一键重做;按Esc键返回主菜单。(2)按数字键“2”,完成在字符串中找最大值。用户输入由英文大小写字母或数字0~9组成的字符串(以回车结束),找出最大值后按下列格式在屏幕上显示:<原字符串>Themaximumis<最大值>.按任一键重做;按Esc键返回主菜单。(3)按数字键“3”,完
2、成输入数据组的排序。用户输入一组十进制数值(小于255),然后变换成十六进制数,并按递增方式进行排序,按下列格式在屏幕上显示:<原数值串><新数值串>按任一键重做;按Esc键返回主菜单。(4)按数字键“4”,完成时间的显示。首先提示用户对时,即改变系统的定时器HH:MM:SS(以冒号间隔,回车结束),然后在屏幕的右上角实时显示出时间:HH:MM:SS。按任一键重新对时;按Esc键返回主菜单。(5)按数字键“5”,结束程序的运行,返回操作系统。解:※主程序的编程思路:四、程序代码STACKSEGMENTSTACKDB256DUP(?)TOPLABELWORDSTACKENDSDATASEGME
3、NTTABLEDWG1,G2,G3,G4,G5STRING1DB'1.Changesmalllettersintocapitallettersofstring;',0DH,0AH,'$'STRING2DB'2.Findthemaximumofstring;',0DH,0AH,'$'STRING3DB'3.Sortfordatas;',0DH,0AH,'$'STRING4DB'4.ShowTime;',0DH,0AH,'$'STRING5DB'5.Exit.',0DH,0AH,'$'STRINGNDB'Inputthenumberyouselect(1-5):$'IN_STRDB'Inputt
4、hestring(includingletters&numbers,lessthan60letters):',0DH,0AH,'$'PRESTRDB'Originalstring:$'NEWSTRDB'Newstring:$'OUT_STRDB'Thestringis$'MAXCHRDB'Themaximumis$'IN_NUMDB'Inputthenumbers(0-255,nomorethan20numbers):',0DH,0AH,'$'OUT_NUMDB'Sortednumbers:',0DH,0AH,'$'IN_TIMDB'Correctthetime(HH:MM:SS):$'HI
5、NTSTRDB'PressESC,gobacktothemenu;orpressanykeytoplayagain!$'KEYBUFDB61DB?DB61DUP(?)NUMBUFDB?DB20DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,OFFSETTOPMAIN:CALLFARPTRMENU;设置显示器AGAIN:MOVAH,2MOVBH,0;页号MOVDL,41;列号MOVDH,10;行号INT10H;光标位置设置MOVAH,1
6、INT21HCMPAL,'1'JBAGAINCMPAL,'5'JAAGAINSUBAL,'1';N-1SHLAL,1;(N-1)*2CBW;AL->AXLEABX,TABLEADDBX,AXJMPWORDPTR[BX]G1:CALLFARPTRCHGLTRMOVAH,8INT21HCMPAL,1BHJZMAINJMPG1G2:CALLFARPTRMAXLTRMOVAH,8INT21HCMPAL,1BHJZMAINJMPG2G3:CALLFARPTRSORTNUMMOVAH,8INT21HCMPAL,1BHJZMAINJMPG3G4:CALLFARPTRTIMCHKMOVAH,8INT21HC
7、MPAL,1BHJZMAINJMPG4G5:MOVAH,4CHINT21HMENUPROCFAR;显示主界面;设置显示器方式MOVAH,0MOVAL,3;MOVBL,0;INT10H;清屏MOVAH,2MOVBH,0;页号MOVDL,5;列号MOVDH,5;行号INT10H;光标位置设置MOVAH,9LEADX,STRING1INT21HMOVAH,2MOVDL,5;列号MOVDH,6;行号INT10H;光标