【发布时间】:2017-04-11 20:47:59
【问题描述】:
假设我需要保存和恢复 CF 中的值。
我知道一种技术是使用pushf和popf。但这对我来说太贵了,因为我只需要 CF。
我正在尝试使用一个寄存器来执行此操作。为了节省,我使用了setc %r12b。但是,我不知道如何检索这个值,即如何做类似 mov %r12b CF?
非常感谢!
【问题讨论】:
-
shr %r12b怎么样。 -
谢谢!!这会影响其他寄存器吗?还是只有CF?
-
是的,确实如此。请参阅指令集参考。
-
为什么不选择 lahf 和 sahf? ypu 说的贵是什么意思?
-
lahf不一定在 64 位模式下可用,除非您将其作为扩展名(请参阅cpuid)。
标签: assembly x86-64 cpu-registers carryflag