标题:调用中断函数出现问题,不解
只看楼主
hewenhao
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-1-10
 问题点数:0 回复次数:3 
调用中断函数出现问题,不解
今天晚上写了一个清屏的中断函数,测试运行的时候弹出终止框,显示信息为: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);
}
搜索更多相关主题的帖子: int 函数 void CLSXY include 
2007-01-19 23:40
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 

我这运行正常啊
但是r.h.al=0;应该改成 1 吧

2007-01-20 12:23
hewenhao
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-1-10
得分:0 

确实没有问题,是我弄错了,呵呵
y1=y+yl-1;
x1=x+xl-1;
应该改为:
y1=y+width-1;
x1=x+length-1;


2007-01-20 12:46
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 
r.h.al=0;不改成 1 么?
2007-01-20 13:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-117063-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039596 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved