是否有汇编指令让我们直接读写英特尔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. 寄存器读取
- 3. 处理器寄存器
- 4. 如何理解和更改bochsdbg中的CPU寄存器标志?
- 5. 如何在Visual Studio中使用处理器寄存器?
- 6. x86如何硬件检测和设置溢出寄存器标志
- 7. 条件码/标志是否存储在处理器寄存器或主存储器中?
- 8. 如何在C#.net中获取处理器CPU标志?
- 9. autofac中的寄存器处理程序
- 10. 如何在x86中返回寄存器值
- 11. 支持SSE的x86处理器上有多少个XMM寄存器可用?
- 12. 将两个x86 32位寄存器存储到128位xmm寄存器中
- 13. 需要在x86处理器
- 14. mmap()中的PROT标志如何转换为寄存器值?
- 15. 如何使用gdb转储ARM协处理器寄存器?
- 16. 在CPU寄存器中分配寄存器变量的标准?
- 17. x86汇编寄存器地址
- 18. 通过LLVM IR控制x86寄存器?
- 19. 在C++中实现寄存器/取消寄存器模式
- 20. ARM Neon Assembler - 处理溢出寄存器
- 21. 读取窗口中的PCI设备存储器寄存器
- 22. 编译器/汇编程序如何理解处理器内核寄存器?
- 23. 如何读/写一个寄存器
- 24. 从寄存器读取Unity 3d
- 25. 太快读取MSP430 IO寄存器?
- 26. 使用mmap读取/写入寄存器
- 27. IGCSE - 通常如何从寄存器中读取位
- 28. X86操作码将xmm寄存器移动到通用寄存器
- 29. 阅读eax寄存器
- 30. x86寄存器名称,寻址模式,位移和存储器
可以使用pushf和popf使用堆栈保存/恢复它们。 (popfd,popfq分别恢复EFLAGS/RFLAGS的32位和64位扩展) – 2013-03-13 15:19:26