assembly - 如果没有标志标志 (SF),x86 是否仍可完全编程?
问题描述
符号标志表示操作的结果是否定的。
现在,根据我的理解,当操作结果为负时,设置了标志标志。但为什么它是必需的。因为如果操作返回负结果,我们可以在目标寄存器中检查该值是负数还是正数。是否可以从 CPU 中删除此标志标志寄存器并完成所有工作
解决方案
您甚至不需要任何标志,因为在 x86 中MOV 已经是图灵完备的,并且有一个编译器可以将 C 代码编译成只有 MOV(或只有 XOR、SUB、ADD、XADD、ADC、SBB 和/OR、PUSH/POP、1 位移位或 CMPXCHG/XCHG)
如果您有按位运算,则可以通过AND
右移或右移轻松获得符号位
推荐阅读
- php - Laravel returning associative array instead of an array of objects
- javascript - How to set CORS for two applications running as docker
- controller - TYPO3 9.5 delete sys_file_reference Image
- python - Why is Keras Tokenizer Texts To Sequences Returning The Same Value For All Texts?
- javascript - 为单个聊天消息 Jquery(和 php)的图像显示灯箱
- python - FileNotFoundError: [Errno 2] No such file or directory: 'keys_keys.txt'
- ios - 在 performBatchUpdates 期间允许用户交互
- swift - 在 Swift 中使用 PencilKit。将 PKDrawing 保存到数据库中的最佳方法是什么?如何序列化它?
- android-studio - 如何在 Android Studio 中一直显示“运行”窗口?
- java - 使用本地主机改造 android 超时