51单片机 ret和reti
来源:互联网 发布:cms源码 编辑:程序博客网 时间:2024/05/19 14:51
// 以下转载
原来在8051构架中--中断系统中含有两个不可寻址的“优先级生效”触发器。一个用于指出CPU是否正在执行高优先级的中断服务程序,这个触发器为1时,系统将屏蔽所有的中断请求;另一个则指出CPU是否正在执行低优先级中断服务程序,该触发器为1时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址的,所以无法用软件直接清零。”通常情况下,在普通的汇编子程序中用RET做返回,在中断服务子程序中用RETI起中断返回作用。两条指令都能从堆栈中弹出断点地址并装入PC中,使 CPU回到原来主程序的断点处继续运行。然而,RET和RETI有本质的区别:当某一中断源响应后,单片机中的标志寄存器flag H和flagL其中的一个将会自动置位,用于阻止比它低级或同级的中断触发。RETI可以清除“优先级激活触发器”(即flag寄存器),以保证后续中断源的及时响应。所以,当把RETI替换为RET后,该程序在第一次运行时可能不会出错,但在第二次运行时就会出错了!
- 51单片机 ret和reti
- 51中ret和reti的区别
- 单片机汇编指令中RETI和RET的区别
- 单片机汇编指令中RETI和RET的区别
- 慎用51单片机中的RET指令
- reti
- 51单片机SP指向的系统栈中都有什么?LCALL、RETI等解析
- 51 单片机汇编语言:利用 RET 指令实现多路分支
- ret和retf指令
- 关于CALL和RET
- call和ret
- CALL和RET指令
- call和ret指令
- call 和 ret 指令
- CALL和RET指令
- ret
- ret
- 读书笔记_CALL和RET指令
- 不学是不行的
- 开发者必读的10本书
- 9-8课堂笔记
- 45. All rivers runs into sea. 海纳百川
- 第八天(Mysql3/内置函数)
- 51单片机 ret和reti
- MYSQL复习1
- C++中堆和栈的区别,自由存储区、全局/静态存储区和常量存储区
- mongodb 学习笔记一
- 使用迅雷代替SDK Manager快速下载Android SDK相关
- 深入理解C++中的mutable关键字
- 3D立方体及光照
- 【郭林专刊】自信还是危机感
- 一个cdecl 程序的混乱版本 150行的代码用15行解决