资源描述:
《循环结构bios中断程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验四循环结构/BIOS中断程序设计一、实验目的掌握循环程序设计的要素,并能够对编写后的汇编语言程序进行调试,察看结果;掌握中断程序设计的方法,学会使用BIOS中断的INT10H功能调用。二、实验内容1、求内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。2、利用程序完成求1~100的累加和,结果送RESULT单元。3、缓冲区BUFFER1中存放有字符串,编写程序,把字符串中的小写字母转换成大写字母后存入到BUFFER2中。4、从键盘输入一系列字符,以‘$’结束,编程统计其中非数字字符的个数,并
2、把统计出来的结果存入到CN单元。5、在屏幕第5行的10列处连续显示4个笑脸,颜色为红底白字且能够闪烁。6、编写程序,在彩色图形方式下在屏幕上显示一条红色斜线,斜线的起点为(50,50),终点为(150,150)。三、实验要求1、参考程序如下:DATASEGMENTBUFDB23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FHCNEQU$-BUFDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:PUSHDSXORAX,AXPUSHAXMOVAX,DATAM
3、OVDS,AXMOVBX,OFFSETBUFMOVCX,CNDECCXMOVAL,[BX]INCBXLP:CMPAL,[BX]JBENEXTMOVAL,[BX]NEXT:INCBXDECCXJNZLPMOVAH,4CHINT21HCODEENDSENDSTART2、要求:1)编辑、运行该程序;2)运行程序后,查看内存RESULT单元中结果是否正确。参考程序:DATASEGMENTRESULTDW?CNEQU100DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DAT
4、AMOVDS,AXMOVAX,0MOVCX,1LP:ADDAX,CXINCCXCMPCX,CNJBELPMOVRESULT,AXMOVAH,4CHINT21HCODEENDSENDSTART3)可否用其他思路实现该程序要求?请编程实现并调试。4)如果将程序要求改为“求1~1000的累加和”,编程如何实现?请编程实现并调试。3、将BUFFER1中的“AStringforTest.”转换成”ASTRINGFORTEST.”存入到BUFFER2中(可以使用SI和DI分别指向BUFFER1和BUFFER2两数组的首地址,然后逐个
5、比较BUFFER1中的字母是否是小写,是则转换成大写后存入BUFFER2,否则就直接存入BUFFER2)观察程序运行后内存单元中的结果是否正确。数据段定义如下:DATASEGMENTBUFFER1DB‘AStringforTest.’CNEQU$-BUFFER1BUFFER2DBCNDUP(?)DATAENDS4、ASCII值不在“0”~“9”之间的字符均为非数字字符,可以以此为比较条件进行统计。思考:如何把统计出来的结果显示出来?5、参照课件例题“在屏幕第10行的20~24列处显示五朵梅花,颜色各异,且要求中间一个朵能
6、够闪烁”6、设置显示方式为16色300*200的彩色图形方式,即(AL)=0DH。