问题标签 [carryflag]

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 回答
75 浏览

c++ - 我想改变条件,但我不能

问题:教孩子们从右到左添加多位数字,一次一位。许多人发现“进位”操作,即从一个数字位置到下一个数字位置的 1,是一项重大挑战。你的工作是为一组加法问题计算每个进位操作的次数,以便教育工作者评估他们的难度。

输入:每行输入包含两个小于 10 位的无符号整数。最后一行输入包含“0”0。

输入示例:对于除最后一行之外的每一行输入,计算将两个数字相加产生的进位运算的数量,并以如下所示的格式打印它们。

这是满足小于 10 位输入的原始代码

问题输入说少于 10 位,但我想更改以满足任何输入的条件。这是我的代码。我应该如何解决这个问题?

0 投票
1 回答
196 浏览

assembly - 8位寄存器中0-1操作的进位标志

我在 emu 80x86 IDE 中尝试了以下代码:

在模拟器中显示的输出中al=FF,我确实理解它,但我不明白为什么在标志部分cf=1

0 投票
1 回答
122 浏览

assembly - 在汇编语言中进行“添加”和“进位”操作的替代方法是什么?

嘿!我有一个关于汇编语言的问题。该指令adc eax, ebx将寄存器eax、寄存器ebx和进位标志的内容相加,然后将结果存储回eax。我的问题是假设adc指令是不允许的,那么我们如何编写产生与adc eax, ebx.

我在下面写了一些代码,但可能不正确。

0 投票
1 回答
145 浏览

assembly - ADC 和 SBB 的关联性

is的运算, ADCisDEST ← DEST + SRC + CF的运算。令我困惑的是这些说明对 FLAGS 的影响。在 的情况下,关联性是明确的,因此我假设这相当于(就最终的寄存器状态而言)SBBDEST ← (DEST – (SRC + CF))SBBSBB

但是,在 , 的情况下ADC,会SRC先添加DEST,然后再CF添加?这很重要,因为如果是这样,它将对 FLAGS 产生不同的影响。

0 投票
1 回答
101 浏览

java - 为什么 java 在 BigInteger 的 mag 字段中不使用 long[]?

我相信在 64 位 JVM 中 long[] 比 int[] 效率更高,并且可以显着加快 RSA 操作。

位是 long[] 中的一个问题,但是我们可以使用一些原生的方法来强制 long 作为 unsigned,例如long z = u64add(x, y, cr),这里cr是一个boolean[],可以替换long z = x + y

0 投票
1 回答
80 浏览

unsigned - CMP后会设置进位标志吗?

(MSP430 16 位)

我怎么知道是否会设置进位标志?

可以CMP[.W] #0x0200, R14设置进位标志吗?

0 投票
1 回答
60 浏览

unsigned - 在 cmp[.b] #4, #-1 之后是否会设置进位标志?[MSP430 16 位]

[MSP430 16 位]

谁能帮我用二进制计算(cmp[.b] #4, r12)?

示例:r12-#4= 1111111111111111 - 0100 @@? 我不知道如何在无符号和有符号的情况下用二进制计算 cmp。

0 投票
2 回答
167 浏览

assembly - CF 标志的难以理解的行为

假设有一段代码:

在这种情况下,CF = 0 标志,但在我看来它应该等于 1,因为减法运算是在加法运算上实现的,并且处理器不知道我们将其作为输入提供什么,无论是有符号还是无符号数字,它只是做它的工作。

也就是说,上面的代码等价于以下内容:

在al寄存器中输入值12,即0000 1100

在bl寄存器中输入值4,即0000 0100

接下来是减法运算,因为第一个操作数是正数,所以没有转换为附加代码。由于第二个也是正数,所以也没有变换,但是由于进行了减法运算,所以将第二个操作数翻译成附加代码,处理器进行加法运算(减法是通过加法来实现的),即:

也就是说,我们得到了正确的结果 - 8,但如果调试它,CF = 0。这是为什么?超出位网格的那个放在 CF 中,但 CF = 0。

0 投票
1 回答
84 浏览

assembly - “4 - 12”和“4 + (-12)”有什么区别?

我尝试比较下一个表达式:

结果是相同的,但进位标志不同。为什么?通过对二进制补码值加法实现减法。

0 投票
2 回答
115 浏览

assembly - 如何在 GPR 的特定位中设置进位标志而不进行移位/旋转?

我正在为英特尔 80386 处理器编写 NASM 中的程序,我需要在 GPR(通用寄存器)的特定位中设置进位标志的值,而不更改寄存器中的其他位。

是否有可能在不使用任何形式的轮班/轮换的情况下这样做?