首页 > 解决方案 > 如果没有标志标志 (SF),x86 是否仍可完全编程?

问题描述

符号标志表示操作的结果是否定的。
现在,根据我的理解,当操作结果为负时,设置了标志标志。但为什么它是必需的。因为如果操作返回负结果,我们可以在目标寄存器中检查该值是负数还是正数。是否可以从 CPU 中删除此标志标志寄存器并完成所有工作

标签: assemblyx86cpu-architecturemasmturing-complete

解决方案


您甚至不需要任何标志,因为在 x86 中MOV 已经是图灵完备的,并且有一个编译器可以将 C 代码编译成只有 MOV(或只有 XOR、SUB、ADD、XADD、ADC、SBB 和/OR、PUSH/POP、1 位移位或 CMPXCHG/XCHG)

如果您有按位运算,则可以通过AND右移或右移轻松获得符号位


推荐阅读