调用中断函数出现问题,不解
今天晚上写了一个清屏的中断函数,测试运行的时候弹出终止框,显示信息为:ntv.exe遇到问题需要关闭,点击确定之后,tc自动关闭。我想问问大家到底是什么原因,程序代码如下:#include<dos.h>
#include<bios.h>
#include<conio.h>
void CLSXY(int color,int x,int y,int length,int width);
int main(void)
{
CLSXY(BLUE,10,5,50,20);
return 0;
}
void CLSXY(int color,int x,int y,int length,int width)
{
int x1,y1;
union REGS r;
if(x<1||y<1) return;
y--;
x--;
y1=y+yl-1;
x1=x+xl-1;
if (y1>25||x1>80)
return;
r.h.ah=6;
r.h.al=0;
r.h.ch=y;
r.h.cl=x;
r.h.dh=y1;
r.h.dl=x1;
r.h.bh=color*16;
int86(16,&r,&r);
}
----------------解决方案--------------------------------------------------------
我这运行正常啊
但是r.h.al=0;应该改成 1 吧
----------------解决方案--------------------------------------------------------
确实没有问题,是我弄错了,呵呵
y1=y+yl-1;
x1=x+xl-1;
应该改为:
y1=y+width-1;
x1=x+length-1;
----------------解决方案--------------------------------------------------------
r.h.al=0;不改成 1 么?
----------------解决方案--------------------------------------------------------