标签: assembly x86-64 cpu-registers carryflag
说我需要保存并恢复CF中的值。
我知道一种方法是使用pushf和popf。但这对我来说太贵了,因为我只需要CF。
pushf
popf
我正在尝试使用一个寄存器来执行此操作。为了保存,我使用了setc %r12b。但是,我不知道如何检索此值,即如何执行 mov %r12b CF之类的操作?
setc %r12b
mov %r12b CF
非常感谢!
答案 0 :(得分:0)
正如@Jester所说,你可以做shr %r12b,因为
shr %r12b
对于每个班次计数,目的地的最低有效位 操作数移入CF标志,最重要的位是 根据指令类型设置或清除。
http://felixcloutier.com/x86/SAL:SAR:SHL:SHR.html