unsigned __int8 v2; // cf@1
v2 = __CFSHL__(v3, 28);
什么是CFSHL功能是什么意思?我似乎找不到任何关于它的文档。
unsigned __int8 v2; // cf@1
v2 = __CFSHL__(v3, 28);
什么是CFSHL功能是什么意思?我似乎找不到任何关于它的文档。
此函数通常会生成“左移进位标志”运算符 (CFSHL)。
__CFSHL__(x, y) // Generate a carry flag for (x<<y)
事实上,在反编译时,我们有时会丢失非常低级操作的起源,例如操作进位标志。最初,此操作必须与一些可能被反编译器遗漏(或优化掉)的算术运算相关联。但是,对进位位的操作eflags仍然在这里,所以为了保持反编译程序的语义等价性,Hexrays 的反编译器有时被迫使用这样的技巧(这似乎来自外太空,即使他们可能有一个完美的自然原因)。