资源描述:
《汇编语言实验题目及测试截图4、5、6》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五分支结构程序设计实验目的1、掌握利用无条件转移指令JMP和有条件转移指令实现多分支程序的设计方法。2、掌握用DOS的中断调用,实现再程序执行过程中从键盘动态输入字符串的方法。3、掌握程序中标号的定义和使用。实验内容实现从键盘输入一个月份数值(1-12),根据输入的月份数值显示相应的月份英文单词缩写,如输入5则显示May。实验步骤1、编辑下列程序:.modelsmall.stack.datamondb'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'msg1db'Pleaseinputamo
2、nth(1-12):',13,10,'$'msg2db'Inputerror!Nowtryagain...',13,10,'$'bufferlabelbyte;定义输入月份的输入缓冲区maxlendb3;最多2个数字,包括一个回车actlendb?;保存实际输入的字符个数stringdb3dup(?);保存输入的月份数字内容(ASCII码).code.startupshuru:;开始输入月份编号leadx,msg1movah,09hint21h;显示提示信息leadx,buffermovah,0ahint21h;输入月份数值cmpactlen
3、,0;若没有输入月份则转出错处理jeshuruerr;以下判断输入月份是否合法leadi,stringcmpactlen,2jeda10;若输入的是2位数月份值则转到da10标号处执行moval,string;若只输入1位数字月份值,则读出该值andal,0fh;把ASCII码转换为对应数字jmpjisuanda10:moval,stringandal,0fh;把月份数值十位的ASCII码转换为对应数字(如12月的1字)movbl,10mulblandstring[1],0fh;把月份数值个位的ASCII码转换为对应数字addal,strin
4、g[1];十位加上个位(如12月)jisuan:;以下计算偏移地址cmpal,1;比1小是非法月份jbshuruerr;若月份值小于1则转出错处理cmpal,12jashuruerr;比12大也是非法月份subal,1;月份值减1shlal,1shlal,1;月份再乘4对应了MON字符串中从首地址开始的字符相对位置xorah,ah;1月份从0位置开始即JAN,...5月份从位置16开始即MAYleasi,mon;找到被显示月份字符的位置addsi,axmovcx,3output:movdl,[si];输出对应月份英文缩写movah,2int2
5、1hincsiloopoutput.exit0shuruerr:leadx,msg2;输入出错时提示出错,并转到程序起始处重新执行movah,09hint21hjmpshuruend2、程序汇编通过后,运行程序察看输出结果。3、程序运行中不输入月份值(直接回车),或输入非法月份值,观察程序执行的情况。实验六分支与循环混合结构程序设计实验目的1、掌握利用.IF语句实现分支程序的设计方法;2、掌握利用.REPEAT语句实现循环程序的设计方法;3、掌握DIV指令的使用特点;4、掌握地址表的定义和使用方法。实验内容实现成绩单的分等级统计功能,在数据段
6、中有成绩单的定义,并包含有若干个分数,程序根据成绩单数据的个数循环分别统计个分数段成绩的个数,最后输出个等级段的分数个数。要求:成绩单数据少于100字节,输出的每个档次统计值按两位数显示。实验步骤1、编辑下列程序:.modelsmall.stack.dataHANDB42,62,68,70,79,82,85,90,95,99,66,88,78,90,98,200;成绩单countequ$-han;记录数据个数MEMDB6dup(0);分别用于存放各分数段成绩的个数scoreedb10,13,'Score"E"countis:$';定义各分数段
7、的提示信息scoreddb10,13,'Score"D"countis:$'scorecdb10,13,'Score"C"countis:$'scorebdb10,13,'Score"B"countis:$'scoreadb10,13,'Score"A"countis:$'scoreodb10,13,'Score"Other"countis:$'tabledwscoreo,scoree,scored,scorec,scoreb,scorea;定义地址表.code.startupMOVCX,countmovsi,0begin:;统计各个分数段的
8、成绩个数.ifhan[si]<60addmem[1],1.elseifhan[si]>=60&&han[si]<=69addmem[2],1.elseifhan[s