关键字using与interrupt
2015-02-15 10:50
274 查看
1、关键字using
(1)在函数的入口处将当前工作寄存器组保护到堆栈中,指定的工作寄存器内容不会改变;
(2)函数返回之前将被保护的工作寄存器组从堆栈中恢复。
(3)带using属性的函数不能返回bit类型的值;
(4)using不能用于外部函数;
(5)51的寄存器组编号为0~3,主函数默认使用0,中断函数应使用与主函数不同的寄存器组;
(6)51有两个优先级(高和低,在IP中指定),默认均为低优先级,优先级相同的中断服务函数可使用相同的寄存器组,不同的必须使用不同的寄存器组。
2、关键字interrupt
(1)在进入中断函数时,特殊功能寄存器ACC、B、DPH、DPL、PSW将被保存入栈,如不切换寄存器组,则将中断函数中所用到的全部工作寄存器入栈;
(2)函数返回之前,所有的寄存器内容出栈;
(3)中断函数不能进行参数传递,即没有参数;
(4)中断函数没有返回值;
(5)中断函数不能被直接调用;
(6)如果在中断函数中调用了其他函数,则被调用的函数所使用的寄存器组必须与中断函数相同;
(7)如果中断函数中用到浮点运算,必须保存浮点寄存器的状态,当没有其他程序执行浮点运算时可以不保存,函数库math.h提供了保存浮点寄存器状态的函数pfsave以及恢复浮点寄存器状态的函数fprestore。
(1)在函数的入口处将当前工作寄存器组保护到堆栈中,指定的工作寄存器内容不会改变;
(2)函数返回之前将被保护的工作寄存器组从堆栈中恢复。
(3)带using属性的函数不能返回bit类型的值;
(4)using不能用于外部函数;
(5)51的寄存器组编号为0~3,主函数默认使用0,中断函数应使用与主函数不同的寄存器组;
(6)51有两个优先级(高和低,在IP中指定),默认均为低优先级,优先级相同的中断服务函数可使用相同的寄存器组,不同的必须使用不同的寄存器组。
2、关键字interrupt
(1)在进入中断函数时,特殊功能寄存器ACC、B、DPH、DPL、PSW将被保存入栈,如不切换寄存器组,则将中断函数中所用到的全部工作寄存器入栈;
(2)函数返回之前,所有的寄存器内容出栈;
(3)中断函数不能进行参数传递,即没有参数;
(4)中断函数没有返回值;
(5)中断函数不能被直接调用;
(6)如果在中断函数中调用了其他函数,则被调用的函数所使用的寄存器组必须与中断函数相同;
(7)如果中断函数中用到浮点运算,必须保存浮点寄存器的状态,当没有其他程序执行浮点运算时可以不保存,函数库math.h提供了保存浮点寄存器状态的函数pfsave以及恢复浮点寄存器状态的函数fprestore。
相关文章推荐
- C语言在8051单片机上的扩展(interrupt、using关键字的用法)
- 关于如何利用Keil C实现51单片机中断功能(interrupt、using关键字的用法)
- C语言在8051单片机上的扩展(interrupt、using关键字的用法)
- 关键字 using ....for ...
- oracle使用using关键字
- C#关键字using的几种用法
- using这个关键字在C#中共用三个用法
- interrupt 0 using 1 的用法
- using关键字背后的故事!
- C++11老关键字的新含义(auto, using,extern)
- using关键字的另类用法
- 【转载】using 关键字小结
- .net里面“using”关键字和“添加引用”按钮的区别及using的三种用途
- 在oracle的连接(join)中使用using关键字
- C#中using关键字的作用及用法
- using关键字的三个常用用法
- c++11中的using关键字
- C#中using关键字的作用及其用法
- 中断服务程序不用interrupt关键字也可实现中断,该关键字是否必须?
- This、Using、关键字用法