问题标签 [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.
c++ - 我想改变条件,但我不能
问题:教孩子们从右到左添加多位数字,一次一位。许多人发现“进位”操作,即从一个数字位置到下一个数字位置的 1,是一项重大挑战。你的工作是为一组加法问题计算每个进位操作的次数,以便教育工作者评估他们的难度。
输入:每行输入包含两个小于 10 位的无符号整数。最后一行输入包含“0”0。
输入示例:对于除最后一行之外的每一行输入,计算将两个数字相加产生的进位运算的数量,并以如下所示的格式打印它们。
这是满足小于 10 位输入的原始代码
问题输入说少于 10 位,但我想更改以满足任何输入的条件。这是我的代码。我应该如何解决这个问题?
assembly - 8位寄存器中0-1操作的进位标志
我在 emu 80x86 IDE 中尝试了以下代码:
在模拟器中显示的输出中al=FF
,我确实理解它,但我不明白为什么在标志部分cf=1
assembly - 在汇编语言中进行“添加”和“进位”操作的替代方法是什么?
嘿!我有一个关于汇编语言的问题。该指令adc eax, ebx
将寄存器eax
、寄存器ebx
和进位标志的内容相加,然后将结果存储回eax
。我的问题是假设adc
指令是不允许的,那么我们如何编写产生与adc eax, ebx
.
我在下面写了一些代码,但可能不正确。
assembly - ADC 和 SBB 的关联性
is的运算, ADC
isDEST ← DEST + SRC + CF
的运算。令我困惑的是这些说明对 FLAGS 的影响。在 的情况下,关联性是明确的,因此我假设这相当于(就最终的寄存器状态而言)SBB
DEST ← (DEST – (SRC + CF))
SBB
SBB
但是,在 , 的情况下ADC
,会SRC
先添加DEST
,然后再CF
添加?这很重要,因为如果是这样,它将对 FLAGS 产生不同的影响。
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
。
unsigned - CMP后会设置进位标志吗?
(MSP430 16 位)
我怎么知道是否会设置进位标志?
可以CMP[.W] #0x0200, R14
设置进位标志吗?
unsigned - 在 cmp[.b] #4, #-1 之后是否会设置进位标志?[MSP430 16 位]
[MSP430 16 位]
谁能帮我用二进制计算(cmp[.b] #4, r12)?
示例:r12-#4= 1111111111111111 - 0100 @@? 我不知道如何在无符号和有符号的情况下用二进制计算 cmp。
assembly - CF 标志的难以理解的行为
假设有一段代码:
在这种情况下,CF = 0 标志,但在我看来它应该等于 1,因为减法运算是在加法运算上实现的,并且处理器不知道我们将其作为输入提供什么,无论是有符号还是无符号数字,它只是做它的工作。
也就是说,上面的代码等价于以下内容:
在al寄存器中输入值12,即0000 1100
在bl寄存器中输入值4,即0000 0100
接下来是减法运算,因为第一个操作数是正数,所以没有转换为附加代码。由于第二个也是正数,所以也没有变换,但是由于进行了减法运算,所以将第二个操作数翻译成附加代码,处理器进行加法运算(减法是通过加法来实现的),即:
也就是说,我们得到了正确的结果 - 8,但如果调试它,CF = 0。这是为什么?超出位网格的那个放在 CF 中,但 CF = 0。
assembly - “4 - 12”和“4 + (-12)”有什么区别?
我尝试比较下一个表达式:
结果是相同的,但进位标志不同。为什么?通过对二进制补码值加法实现减法。
assembly - 如何在 GPR 的特定位中设置进位标志而不进行移位/旋转?
我正在为英特尔 80386 处理器编写 NASM 中的程序,我需要在 GPR(通用寄存器)的特定位中设置进位标志的值,而不更改寄存器中的其他位。
是否有可能在不使用任何形式的轮班/轮换的情况下这样做?