-2
A
回答
1
根据Wikipedia,根据您使用的架构,使用PUSHF,PUSHFD或PUSHFQ指令。
除非你正在编写内核模块,否则我看不到这一点。用户模式下永远不会清楚。
0
我假设你正在编写自己的操作系统或某种嵌入式程序。不应读取处理器中断标志,而应该让中断例程在内存中设置或增加某个位置,或者将消息推回某种类型的消息队列,以便中断例程可以触发线程或允许某个主级例程检查如果中断例程已经处理了一个中断。
1
您需要一些内联汇编。例如,Linux在'irqflags.h'中执行此操作。该功能适用于32位和64位IA。
static inline unsigned long native_save_fl(void)
{
unsigned long flags;
/*
* "=rm" is safe here, because "pop" adjusts the stack before
* it evaluates its effective address -- this is part of the
* documented behavior of the "pop" instruction.
*/
asm volatile("# __raw_save_flags\n\t"
"pushf ; pop %0"
: "=rm" (flags)
: /* no input */
: "memory");
return flags;
}
这将返回所有的处理器EFLAGS位,包括中断对位9使能(EFLAGS.IF)如果你想只是如果是检查,通过在0x200掩盖返回值。
相关问题
- 1. 如何在x86处理器中读取标志寄存器
- 2. X86处理器中的辅助标志
- 3. x86处理器中断标志的实际用法的例子是什么?
- 4. 如何从x86中的中断处理程序获取中断号?
- 5. 如何在C#.net中获取处理器CPU标志?
- 6. 处理器如何处理中断
- 7. x86:中断处理程序循环
- 8. 如何处理从bash中的标准输入读取中断信号
- 9. 如何直接读写x86标志寄存器?
- 10. 需要在x86处理器
- 11. 访问处理器中断与c + +和x86和x64架构
- 12. 处理器在中断时如何处理指令
- 13. 双处理器机器如何处理中断?
- 14. 在处理中读取python
- 15. 如何在x86处理器中操纵硬件特权级别
- 16. SMP如何处理中断?
- 17. KVM如何处理中断
- 18. 如何处理中断?
- 19. x86处理器中的时间源
- 20. x86处理器中的环级别
- 21. 将中断标志
- 22. 如何在处理中断while语句?
- 23. 预处理器标志与(例如)布尔标志
- 24. 如何在Cloud9中读取Heroku日志?
- 25. 如何在Heroku中读取日志?
- 26. 在VHDL中处理中断
- 27. 如何在Netty中处理读取速度慢的读者?
- 28. KVM如何处理物理中断?
- 29. 处理中断:
- 30. 如何在x86程序集中设置溢出标志?
这并不重要,我需要在64位处理器 –
指令为什么?你在编写一个内核模块吗? –
中为 – EJP