当前位置:首页 » 编程语言 » c语言21h中断
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言21h中断

发布时间: 2022-07-04 00:17:29

1. 关于c语言中中断的问题

标准c语言没有中断调用机制,但是不同编译器都有相应的中断处理方式,可以使用户实现中断功能。
下面是我曾经写过的一片跟中断有关的东西,希望对你有帮助。
~~~~~~~~~~~~~~~~~~~~~~~~~
曾经设计俄罗斯方块,采取延时的方法,比如每次循环延时100毫秒,但是这个期间无法响应键盘的请求,游戏总的来说感觉卡卡的。
现在想想解决方案还真不少:
1、采取轮询的方式解决,就是每10毫秒检查一下是否有键盘请求,总的来说,这样基本上可以解决问题,而且简单易行,但每10毫秒都要检查,系统消耗太大。
2、采取中断的方式:
(1)用高级语言调用中断来处理问题。中断是cpu响应一个中断外围设备8259A的一个过程,当键盘敲击,cpu保存断点暂停执行并且跳到相应的中断处理程序继续执行,结束后根据断点再跳回来。通过这种方式可以轻松+愉快地解决这个问题。但是需要用到高级语言调用汇编,根据编译器的不同而有所差别。
(2)自己模拟中断。可以另外建立一个线程专门响应键盘的敲击,如果有敲击则打断主线程。这样做实现起来很复杂,而且涉及到不少复杂的关键技术,比如信号量之类的鬼东西~。
3、强大的vc
原来一直感觉vc只是一个编译器,现在才发现,vc也可以是一种语言。vc采取了消息映射的机制来处理外部设备的请求,比如时钟中断、键盘中断等等。通过此可以灰常灰常容易的处理外部中断。

2. c语言的中断如何实现

一般循环的中断用break(直接跳出循环)或者continue(跳到循环末尾)

3. C语言中断怎么调用

单片机C语言中断:
#include<reg51.h>
sbit P10=P1^0;//LED

void main()
{
EA = 1; //允许CPU中断
ET0 = 1; //定时器0中断打开
TMOD = 0x1; //设定时器0为模式1,16位模式
TH0=0xB1;
TL0=0xDF; //设定时值为20000us(20ms)
TR0 = 1;
while(1)
{}

}

//定时器0中断外理中键扫描和显示
void KeyAndDis_Time0(void) interrupt 1 using 2
{
TH0=0xB1;
TL0=0xDF; //设定时值为20000us(20ms)
P10=!P10;
}

4. C语言中是怎么实现中断的能提供点资料或举几个例子更好……

中断大概是这样的。。。如果有点错误不要怪我。。。我以前作过鼠标中断的东西。。现在有些想不起来了。。。所以。。。呵呵呵。。。
当程序运行到中断条件的时候,会向CPU发信号改变优先级(原先运行的东西会放进哪个特定的地方的,作保存),以发出中断的那段程序作为最高优先,执行完成后再由执行另外的。。。建议你去看看汇编。。。哈哈哈。。。我没学过的。。。
C中实现中断是用了一个函数:geninterrupt(...)
这个“...”是个16进制的数字,是中断号,像鼠标中断号就是0x33
还要用到类似汇编里寄存器模样的变量:如_AX,_BX,_CX,_DX...不同的值功能不同。。。哎呀,我都忘完了。。。建议去查下geninterrupt()的用法就OK了。。。

5. 什么是C语言的中断程序作用是什么

中断服务程序:处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为——中断服务程序。

当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请求中断时,就存在一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先响应级别最高的中断请求。

6. 汇编语言中执行INT 21H后会不会继续执行下一条语句

会,执行完21号中断的输出子功能,程序会接着往下执行,就像C语言执行完printf函数后还会接着执行后边内容

7. c语言中断的语法,最好解释一下!

system("pause");意思是让运行的程序暂停;
sleep(seconds);意思是使程序停止运行seconds秒;
break;使程序跳出所在的结构,流程转向所在的结构之后;
continue;使程序跳出尚未执行的循环,继续进行下一次的循环.
...

8. c语言中断

标准c语言没有中断调用机制,但是不同编译器都有相应的中断处理方式,可以使用户实现中断功能。
下面是我曾经写过的一片跟中断有关的东西,希望对你有帮助。
~~~~~~~~~~~~~~~~~~~~~~~~~
曾经设计俄罗斯方块,采取延时的方法,比如每次循环延时100毫秒,但是这个期间无法响应键盘的请求,游戏总的来说感觉卡卡的。
现在想想解决方案还真不少:
1、采取轮询的方式解决,就是每10毫秒检查一下是否有键盘请求,总的来说,这样基本上可以解决问题,而且简单易行,但每10毫秒都要检查,系统消耗太大。
2、采取中断的方式:
(1)用高级语言调用中断来处理问题。中断是cpu响应一个中断外围设备8259A的一个过程,当键盘敲击,cpu保存断点暂停执行并且跳到相应的中断处理程序继续执行,结束后根据断点再跳回来。通过这种方式可以轻松+愉快地解决这个问题。但是需要用到高级语言调用汇编,根据编译器的不同而有所差别。
(2)自己模拟中断。可以另外建立一个线程专门响应键盘的敲击,如果有敲击则打断主线程。这样做实现起来很复杂,而且涉及到不少复杂的关键技术,比如信号量之类的鬼东西~。
3、强大的vc
原来一直感觉vc只是一个编译器,现在才发现,vc也可以是一种语言。vc采取了消息映射的机制来处理外部设备的请求,比如时钟中断、键盘中断等等。通过此可以灰常灰常容易的处理外部中断。

9. 如何在C语言中嵌入汇编中断指令

win32下不能调用int 指令

不用int 指令就行
#include<stdio.h>
void main()
{
int a=2;
__asm{
lea eax,a
shl [eax],2
}
printf("a=%d\n",a);
}