assembly - 用于设置奇偶校验、溢出和符号标志的 x86 指令

标签 assembly x86 masm32

我们有 STC 指令来设置进位标志。我们对奇偶校验、溢出、符号标志等有类似的说明吗?我尝试过 STPSTS 等,但似乎这些都不存在!

最佳答案

不,这些命令不存在。找出答案的方法是仔细阅读说明引用手册。

它们并不真的需要存在。 您可以非常轻松地有效地实现它们。 如果您不介意设置其他位,这是许多方法之一:

STP:  XOR  AL,AL  ; resets parity bit
      XOR  AL,1   ; ... then set parity bit

STO:  OR   AL, 0FFh
      SUB  AL, 080h ; sets overflow

STS:  OR   AL, 0FFh ; sets sign bit

如果您坚持只设置特定位:

      PUSHFD
      OR    dword ptr[ESP], <bitmask_for_flag_bit> ; see Intel manual
      POPFD

硅空间非常宝贵,CPU 设计人员往往不会为容易完成的事情提供指令。 (STC 是 8080 天遗留下来的,它在进行各种多精度运算时很有用,而且不损坏寄存器是一件非常好的事情)。

关于assembly - 用于设置奇偶校验、溢出和符号标志的 x86 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33644649/

相关文章:

assembly - 从内存中注册的 MOV 不适用于 nasm 中的 BITS 32

c - Nios 2 的 C 轮询和汇编

linux - 使用自定义引导加载程序创建可引导 ISO 镜像

assembly - 跳转到 64 位长模式时出现三重故障

assembly - MASM32 x86 窗口程序集 GetCommandLineToArgvW

assembly - 软件中断 `int`指令可以用来触发硬件中断处理程序吗?

assembly - 我可以从 EAX/RAX 获取 int 到 FPU 的寄存器(如 st0)吗?

c - 函数指针属于哪个缓存?

assembly - 文件打不开

assembly - MASM 错误 Unknown relocation type (1) with 16b code