是否有汇编指令让我们直接读写英特尔80386 16位标志寄存器中的溢出标志?如果不是,我们应该使用哪些伪代码?如何在x86处理器中读取标志寄存器
4
A
回答
0
使用
Pushf
// modify or read ax register
Popf
+2
'pushf'将eflags写入堆栈,而不是'ax'。 – 2013-03-13 15:21:01
7
为只读溢出标志:
SETO AL
; AL now contains 1 if the overflow flag was set, and 0 if it wasn't
要反向溢出标志:
PUSHF
POP AX
XOR AX,800h ; The overflow flag is in bit 11
PUSH AX
POPF
1
要读取标志为AX
:
pushf
pop ax
要写标志:如果你需要设置/清除特定的位,有一些命令如stc/clc
(用于进位标志),std/cld
(用于方向)等;但没有位暴露在这种方式。要写整个标志寄存器,请使用
push ax
popf
相关问题
- 1. 如何在x86处理器中读取中断标志
- 2. 如何直接读写x86标志寄存器?
- 3. X86处理器中的辅助标志
- 4. 差8086处理器的标志寄存器
- 5. 寄存器读取
- 6. 处理器寄存器
- 7. 理解寄存器的问题x86
- 8. 如何理解和更改bochsdbg中的CPU寄存器标志?
- 9. 的x86寄存器值
- 10. 如何在Visual Studio中使用处理器寄存器?
- 11. GDB寄存器与处理器寄存器不同吗?
- 12. 用pymodbus读取寄存器
- 13. 条件码/标志是否存储在处理器寄存器或主存储器中?
- 14. x86如何硬件检测和设置溢出寄存器标志
- 15. x86中的额外寄存器64位
- 16. 如何在C#.net中获取处理器CPU标志?
- 17. autofac中的寄存器处理程序
- 18. 如何在x86中返回寄存器值
- 19. x86标志寄存器中的Aux Carry和Common Carry有什么区别)?
- 20. 支持SSE的x86处理器上有多少个XMM寄存器可用?
- 21. Z80状态标志寄存器
- 22. 在linux上读取调试寄存器
- 23. 将两个x86 32位寄存器存储到128位xmm寄存器中
- 24. 需要在x86处理器
- 25. mmap()中的PROT标志如何转换为寄存器值?
- 26. 如何使用gdb转储ARM协处理器寄存器?
- 27. 处理器如何计算大于其寄存器值?
- 28. 在CPU寄存器中分配寄存器变量的标准?
- 29. 如何读取特定内核(性能计数器)寄存器?
- 30. x86汇编打印寄存器ascii
可以使用pushf和popf使用堆栈保存/恢复它们。 (popfd,popfq分别恢复EFLAGS/RFLAGS的32位和64位扩展) – 2013-03-13 15:19:26