一、实验内容1.编写一个汇编程序,实现字符串的复制功能,并且将复制的字符串显示出来程序如下所示:DATASSEGMENTstring_adb'TheSchoolofInformationScienceandEngineeringShandongUniversity','$';此处输入数据段代码countequ$-offsetstring_aDATASENDSSTACKSSEGMENTstring_bdbcountdup(?);此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVAX,STACKSMOVES,AXLEASI,string_aLEADI,string_bmovCX,countSTD;设置方向,si,di向后移动REPMOVSB;重复前缀指令和字符串传送指令,这条指令按字节传送数据LEADX,string_bMOVAH,9INT21H;输出字符串,字符串的地址在DX中MOVAH,4CHINT21HMOVAH,4CHINT21HCODESENDSENDSTART运行结果如下所示2、利用中断调用,在屏幕上显示1—9之间随机数。中断号86H程序框图如下:程序如下所示:datassegment;定义数据段cladb13,10,'wearegoingtoproduceanumberatrandom:$:';声明程序功能infondb0dh,0ah,'theprogramrunsgood$';声明程序功能datasendsstackssegmentstackdb200dup(0);定义一个栈,200字节stacksendscodessegmentassumeds:datas,ss:stacks,cs:codesstart:movax,datas;是数据段赋给程序段movds,axleadx,cla;在屏幕上显示提示信息movah,9int21h;将cla开始的字符串输出到屏幕movax,0moves,ax;movbx,86h*4climovwordptres:[bx],offsetran;esmovwordptres:[bx+2],segransti;开中断int86hmovah,02hint21hleadx,infon;在屏幕上显示提示信息movah,9int21h;将cla开始的字符串输出到屏幕movax,4c00hint21hranprocpushcxpushdxmovah,0int1ah;cx:dx中装32位截至目前时钟滴答的次数,dx为低16位movax,dxxordx,dxmovbx,10divbxadddl,30h;将dl中的数转化为asciii码movah,02hint21h;显示dl中的数popdxpopcxiretranendpcodesENDSENDSTART运行情况如下所示:3、键盘输入10个学生的成绩,编写一个程序统计60-69分,70-79分,80-89分,90-99分及100分的人数,分别存放在Score6,Score7,Score8,Score9和Score10单元中。【输入10个学生的成绩如下】659878828895726290100程序框图如上,而程序如下所示:DATASSEGMENTinfon1db13,10,'Pleaseinputthosescords(youneednotpressenterbetweenthem):$'infon3db13,10,'$'infon2db13,10,'thenumberofscord6-scord10is:';换行并显示输出scord6db30hdb32;定义空格scord7db30hdb32scord8db30hdb32scord9db30hdb32scord10db30hdb'$'DATASENDSSTACKSSEGMENTdb200dup(0)STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX;数据段赋给程序段movah,9leadx,infon1int21h;提示用户输入成绩movah,9leadx,infon3int21hmovcx,10;共10个学生,重复10次s:movah,1int21h;输入字符数callcal;调用子函数int21hmovah,2movdl,32;32为space的ascii码int21h;输出空格loopsmovah,9leadx,infon2int21h;提示信息MOVAx,4C00HINT21Hcalprocpushaxcmpal,36h;十/百位与6比较,相等则跳转jzG6cmpal,37h;十/百位与7比较,相等则跳转jzG7cmpal,38h;十/百位与8比较,相等则跳转jzG8cmpal,39h;十/百位与9比较,相等则跳转jzG9cmpal,31h;十/百位与1比较,相等则跳转jzG1G6:add[scord6],1jmpwanG7:add[scord7],1jmpwanG8:add[scord8],1jmpwanG9:add[scord9],1jmpwanG1:add[scord10],1movah,1int21hwan:popaxretcalendpCODESENDSENDSTART运行结果如图但是需要声明的是,此程序只是针对本题所给的数据,即50+~100的成绩有效,并未对各种数据的成绩均具有统计功能。