问题标签 [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 回答
80 浏览

c - 为什么进位位永远不是1?我查看了程序内存,从来没有 1,只有 0

我正在编写一个 C 程序来使用 pic16f887 生成斐波那契数直到 255(作为 8 位值)。我尝试从 STATUS 检查进位位,即位 0 (LSB)(我检查了数据表),但始终为 0。

在此处输入图像描述

0 投票
1 回答
68 浏览

assembly - 是否有同时执行“xadd”和“adc reg,0”的 x86 汇编指令?

我最近了解到XADD,我没有运气在谷歌上查找。这样的指令是否XADD还添加了进位标志?(例如。XADC)或者我是否被迫用两个不同的指令来做?

我在 Ubuntu 上,我在 64 位模式下使用 NASM。

0 投票
2 回答
97 浏览

assembly - 英特尔 8085 如何实际执行与先前借位的减法?

我的理解是,为了评估X - Y - borrow,我们可以执行X - (Y + borrow)(X - Y) - borrow。教科书中的例子描述了前一种方法。Y在这种情况下,如果减数 ( ) 是并且借位设置为 1 ,会发生什么情况FFH

我在 GNUSim8085(http://gnusim8085.srid.ca/)中尝试了以下代码,它显示了错误的答案(CY未设置标志)。它是 GNUSim8085 的实现问题还是由于溢出而实际上发生在物理 Intel 8085 芯片中?

然而,下一个代码A = FFH, CY=1按预期给出了正确的答案 ( )。

0 投票
1 回答
87 浏览

assembly - 翻转时两个无符号变量之间的差异

我被困在一些数学上。我正在用 32 位 x86 程序集编程,我试图找出两个数字之间的差异,而实际上更大的数字实际上更小。

这是一个例子。

假设 EAX 为 3,EBX 为 FFFFFFFE hex。

如果我想从 EBX 中减去 EAX,我可以轻松做到:

我会得到正确的 FFFFFFFB 十六进制值。

但是,如果偶然 EAX 是 FFFFFFFE 十六进制,而 EBX 是 3 并且我想做减法,我可以尝试:

但是我会得到一个不正确的值与进位集。我想得到的是值 5。我不能使用 64 位寄存器,因为我只有 32 位系统可以使用。

我该如何解决这个问题?

我问这个是因为我创建了一个 tcp/ip 堆栈,我需要跟踪数据,它涉及到永远不会停止累积的序列号。当我的堆栈看到一个文件正在下载时,它会对当时的序列号进行快照,然后当新的数据包进来时,从旧的序列号中减去新的序列号。

当下载足够大并且序列号接近 32 位边界(FFFFFFFF hex)时,这会变得混乱

这是一个例子:

在下载开始时,假设序列号是 FFFFFF00 hex。堆栈捕获此数字。

下载 256 字节后,序列号为 00000001 hex。这对堆栈来说很混乱,因为从 1 中减去 FFFFFF00 十六进制会导致带有进位的错误数字。

0 投票
0 回答
39 浏览

assembly - 我如何使用指令来确定是否执行 MSB

如何使用指令来确定执行 MIPS 指令时是否发生了 MSB 进位: addu $t2,$t1,$t0仅通过检查指令执行之前和/或之后寄存器的内容?有什么我可以使用的指令吗?

0 投票
2 回答
62 浏览

assembly - BT指令与进位标志CF的连接

我知道例如BT BX, 0将寄存器的第一位传输BX到进位标志 CF。

进位标志不是仅限于值 0 和 1,因为它是一个标志吗?

是否BT会从寄存器的第一位更改 CF 值,即使它不包含 0 或 1?

如果有人能够在这里写下它是如何工作的,那就太好了!

0 投票
1 回答
491 浏览

verilog - 了解溢出标志和进位标志之间的区别

我正在基于现有的 RISC ISA 在 verilog 中设计一个 16 位 ALU。ISA 说当操作无符号时设置进位标志,当操作有符号时设置溢出。有趣的是,ISA 实现ADDSUB指令同时对有符号和无符号数字进行操作。由于有符号与无符号只是一个解释问题,我最初的想法是做如下的事情。溢出与进位的想法只是解释问题,因此对两者使用相同的功能。

但是这个边缘情况(以 4 位显示)呢?

在这种情况下,2s 恭维的答案是正确的,不需要设置标志。但是在无符号解释中答案是不正确的,应该设置进位标志。我一直认为进位和溢出是一样的,只是解释不同,但现在我不确定了。现代 ALU 将如何处理这种极端情况?

0 投票
1 回答
42 浏览

assembly - MSP430 中的进位标志混淆

我在硬件中运行,当 'sub' exec 时,设置了进位标志。为什么?

在此处输入图像描述

0 投票
0 回答
31 浏览

assembly - 进位标志如何受减法影响

我正在学习计算机体系结构课程。

我的老师告诉我,有符号整数存储在二进制补码中,并且在进行减法时,例如 x - y,y 的补码会与 x 相加。

本课程还教授一些汇编语言。我了解到,如果操作从结果的最高有效位产生进位或借位,则在操作后设置进位标志。

鉴于上述知识,我对以下示例的结果感到困惑:

第一个例子是计算

, 我认为应该设置 cf

第二个例子是计算

, 我认为不应该设置 cf

为什么实际结果却恰恰相反?我是不是误会了什么?

0 投票
1 回答
41 浏览

assembly - 指令集架构会同时受益于 ADC 和 SBC,还是所有进位指令都可以重复前一种类型?

我正在创建一个只有 16 条指令(4 位操作码,4 位立即数)的指令集,因此我想知道是否可以同时使用 ADC(带进位加法)和 SBC(带进位减法)替换RWC(重复携带)。

如果最后一个加/减/rwc 指令是加法,RWC 将用作 ADC,使用它的进位。

如果最后一个加/减/rwc 指令是减法,RWC 将用作 SBC,使用其进位(也称为借位)。

简而言之,是否需要使用进位作为借位或借位作为进位(例如:“add a,b,c; sbc d,e,f;”或“sub a,b,c; adc d,e,f;")? 这种设计是否还有其他潜在的限制?