资源描述:
《实验一 系统功能调用.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一系统功能调用1.在屏幕的指定区域内显示字符串。(必做题)2.在屏幕的指定区域内画框,在框内显示字符串。(提高题)3.在屏幕的指定区域内画框并以动画形式显示字符串。(选做题)int86(0X10,&r,&r)函数对BIOS调用的标准函数其中0X10是BIOS调用类型号(相当于INTn调用的中断类型号n),是10H号中断调用,是一个显示I/O调用。第一个&r是指向联合类型REGS的指针,用于接收调用的功能号及其它一些指定的入口参数,以便传给相应寄存器。第二个&r是指向联合类型REGS的指针,用于接收功能调用后的返回值,即出
2、口参数。dos.h中REGS定义如下:unionREGS{structWORDREGSx;structBYTEREGSh;}structWORDREGS{unsignedintax,bx,cx,dx,si,di,cflag,flags;};StructBYTEREGS{unsignedintal,ah,bl,bh,cl,ch,dl,dh;}10H号中断调用所包含的功能调用(部分):AH功能调用00H置显示方式01H置光标类型02H置光标位置06H当前显示页上滚07H当前显示页下滚09H写字符和属性02H功能调用:入口参数:A
3、H02HDH光标的行位置(行数),0行是顶行,24行是底行。DL光标的列位置(列数),0列是最左边一列。BH光标显示页数,40列方式,可用0到7,80列方式,可用0到3。出口参数:无06H号功能调用:入口参数:AH06HAL指明滚动的文本行数。如放置‘0’,则整个窗口为空白。CH指明窗口左上角的行位置(从0到24)。CL指明窗口左上角的列位置(从0到79,80列)。DH指明窗口右下角的行位置(从0到24)。DL指明窗口右下角的列位置(从0到79,80列)。BH指明加到窗口底部的空行显示属性。出口参数:屏幕上窗口适当地上滚。对
4、于彩色/图形适配器,属性字节如下所示:位说明7置“1”用于字符闪烁,置“0”字符不闪烁。6-4背景色。可用的是:654颜色000黑001蓝010绿011青100红101绛110褐111浅灰3前景字符的亮度,置“1”高亮度,置“0”正常亮度。2-0前景色。可使用的彩色与背景色相同。例:设置字符闪烁、背景色是红色、字符高亮度、字符颜色兰色。BH=1100100109H号功能调用:入口参数:AH09HBH在文本方式中,此寄存器指明正在写的显示页。在40列方式中,可以用0到7页,在80列方式中,可用0到3页。在图形方式中总是0。AL
5、放要写字符的ASCII码。BL在文本方式中,为写字符的属性。CX将字符和属性写到屏幕上的次数。出口参数:一个字符或多个字符显示在屏幕上。定位子程序:voidlocate(intx,inty){unionREGSr;r.h.ah=2;/*子功能号*/r.h.dh=x;/*定位点坐标*/r.h.dl=y;r.h.bh=0;/*80列方式*/int86(0x10,&r,&r);/*系统功能调用*/}清屏子程序:voidcls(void){unionREGSr;r.h.ah=6;/*子功能号*/r.h.al=0;/*整个窗口为空白*
6、/r.h.ch=0;/*左上角坐标*/r.h.cl=0;r.h.dh=24;/*右下角坐标*/r.h.dl=79;r.h.bh=7;/*7(000000111)表示背景色黑色,前景字符灰色,*/int86(0x10,&r,&r);}在指定位置写参数子函数:voidwritech(intx,inty,charch,intattr){unionREGSr;locate(x,y);/*调用定位子函数*/r.h.ah=9;/*子功能号*/r.h.bh=0;/*80列方式*/r.h.al=ch;/*要写字符的ASCII码*/r.h.b
7、l=attr;/*要写字符属性*/r.x.cx=1;/*将字符和属性写到屏幕上的次数。int86(0x10,&r,&r);}主函数(参考):voidmain(){inti,x=10,y=10;cls();for(i=0;i<26;i++)writech(x,y+i,65+i,7);getch();}