FLAGS寄存器组件在VS 2013中意味着什么?

时间:2013-12-09 18:53:15

标签: visual-studio assembly x86 visual-studio-2013

在VS2013中调试x86汇编代码时,我需要检查FLAGS寄存器的内容。但是,当我在注册窗口中启用“标志”时,我得到了:

OV = 0 UP = 0 EI = 1 PL = 1 ZR = 0 AC = 1 PE = 0 CY = 1 

那些与x86的典型ODITSZAPC标志不对应;任何人都可以向我解释发生了什么事吗?那些只是相同标志的奇怪名称吗?

我有64位Core i7;它会影响显示的名称吗?

2 个答案:

答案 0 :(得分:15)

| Overflow  | OV |
| Direction | UP |
| Interrupt | EI |
| Sign      | PL |
| Zero      | ZR |
| Auxiliary | AC |
| Parity    | PE |
| Carry     | CY |

MSDN reference

答案 1 :(得分:-1)

是的,它们是相同的标志,还有什么?

但是这些确实令人误解。当UP = 1时,它实际上是反向方向(STD),当PL = 1时,它实际上是符号/负号。 VS设计师为什么要尝试打破ASM的东西,这是我多年以来无法理解的。

在GNU gdb中,它们以相同的方式将指令指针(IP)称为$ pc,将DWORD / DD称为word(w),将WORD / DW称为半字(h),将QUADWORD / DQ称为(g)巨人?

C ++程序员真的很奇怪,他们喜欢为此打破常规。