问题标签 [eflags]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
163 浏览

assembly - 为什么奇偶校验标志为 1 而个数为奇数

执行以下两条指令后:

我得到奇偶校验标志 = 1(表示偶数个)

但是,递减值的二进制表示是:

1111 1101 0101 0000

它有 9 个(即奇数个)。

此外,NEG BX在此之后执行会导致 PF = 0。但是,2 的补码是:

0000 0010 1011 0000有偶数个。所以我希望PF = 1。

0 投票
2 回答
321 浏览

assembly - EFLAGS 状态

在过去的几天里,我一直在努力解决试图获得 EFLAGS 状态的奇怪行为。为此,我编写了以下代码:

当它运行时,我得到:

当我两次打印标志时,它变得越来越奇怪

当我尝试打印 6 次时它发生了变化

最后是最奇怪的(至少对我而言),我打印了 8 次

那么,为什么我第一次得到 0x246 呢?根据英特尔的手册,不应该是 0x2 吗?为什么当我尝试打印更多次并继续更改时它会发生变化?

0 投票
0 回答
108 浏览

assembly - X86 FLAGS寄存器中的方向标志有什么作用?

我目前正在学习基于 x86 的处理器中的 FLAGS 寄存器。我知道 DF(Direction Flag) 用于决定字符串操作是向后还是向前发生。无论操作如何进行,它仍然会得到相同的结果。来源、x86 中的方向标志https://pdos.csail.mit.edu/6.828/2005/readings/i386/s02_03.htm。在第一个来源中,人们解释了 DF 标志是如何工作的,但应用程序非常模糊。

我的问题是这个功能的应用是什么?我知道它是如何工作的,但我无法真正弄清楚它的用途。

0 投票
0 回答
52 浏览

assembly - 下例中执行'add al,'3''指令后不应该设置AF(辅助标志)吗?

这是从 Visual Studio 获得的打印屏幕,显示了 VS2019 和英特尔手册之间的明显矛盾。

在此处输入图像描述

您将在下面找到此 x86 项目的相应代码:

0 投票
1 回答
66 浏览

assembly - 如何在 8 位模式下进行 x86 算术并更新标志?

我想使用 x86 指令模拟 8051。在 32 位模式下,我必须向左旋转才能获得进位标志。获取溢出标志的步骤更多。你知道如何对 AL、BL、CL、DL 进行算术运算和更新标志吗?

0 投票
0 回答
32 浏览

assembly - 哪个寄存器是标志寄存器

在 64 位处理器中,我们有 16 个寄存器。其中一些是为特殊目的而保留的,例如 %rsp。

对于标志寄存器,它是 16 个寄存器之一吗?

如果是,我们怎么知道它正在使用哪个寄存器,比如 $rax?如果我们不知道它是什么,我们是否有机会意外覆盖它(假设我们直接编写汇编代码)?

如果不是,那么实际上寄存器比 16 个寄存器多吗?