assembly - 如果 x86 没有符号标志 (SF),它仍然是完全可编程的吗?

标签 assembly x86 cpu-architecture masm turing-complete

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

最佳答案

你甚至不需要任何标志,因为在 x86 MOV is already Turing-complete 中还有一个compiler that can compile C code into an executable with only MOVs (或仅 XOR、SUB、ADD、XADD、ADC、SBB、AND/OR、PUSH/POP、1 位移位或 CMPXCHG/XCHG 之一)

如果您进行按位运算,则可以使用 AND 或右移轻松获得符号位

关于assembly - 如果 x86 没有符号标志 (SF),它仍然是完全可编程的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67332439/

相关文章:

gcc - x86 CPU 的 128x128 位乘法

assembly - 操作系统如何阻止程序访问内存?

x86 - 写合并缓冲区在哪里? x86

c++ - 使用 IARG_MEMORYREAD_EA

c - 如何查看我编译的机器语言/汇编代码?

windows - 汇编循环循环太多次

c++ - 编译后 ASM 优化丢失了吗?

assembly - 如何检查emu8086中CF标志是否为1?

assembly - 打印堆栈中的内容(组件)

Windows 64 ABI,如果我不调用 Windows API,正确的寄存器使用?