问题标签 [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.
java - java short 如何判断是否需要进位
如果我添加或减去两个短值,我如何判断是否需要标记进位条件
architecture - 进位标志过时了吗?
进位标志似乎有两个主要用途。1) 它对于链接加法/减法指令以对大于本机大小的数字进行操作很有用。例如,在 8 位架构上添加 32 位整数。2)它用于条件分支。还有一些不太常见的用途(例如,我在 intel 上使用过 fcomi)。特别是,进位标志不是从 C 或任何其他常见的非汇编语言定义或访问的。由于 32 位和 64 位架构非常普遍,大多数用 CI 编写的软件都不得不怀疑:
进位标志过时了吗?如果没有它的新架构出现,谁会错过它?
我假设它不需要作为条件代码(例如,用谓词替换标志),因此 AFAICT 仅用于链接 add/sub/rot 并且移入/移出它的效果将消失。
c++ - 不带进位标志的大整数加法
在汇编语言中,通常有一条指令添加两个操作数和一个进位。如果要实现大整数加法,只需添加不带进位的最低整数和带进位的下一个整数。在我无法访问进位标志的 C 或 C++ 中,我将如何有效地做到这一点?它应该适用于多个编译器和架构,所以我不能简单地使用内联汇编等。
optimization - OpenCL汇编优化“添加后测试进位标志”
在我的OpenCL
内核中,我发现:
显然,可以使用一些漂亮的汇编指令轻松优化这些操作。如何优化此代码OpenCL
?
assembly - 在减法中携带标志
我正在使用 MASM32。
使用此代码:
CF 状态标志将被设置。但是使用我的铅笔和纸,我实际上看到 MSB 没有任何进位。是的,我知道从少数大数集 CF 中减法。但我想知道为什么?
因为使用此代码:
永远不会设置 CF 标志。
arrays - 添加数字数组,就好像它们代表数字一样
我有以下问题。假设我必须数组 X 和 Y 其条目由 0 到 9 范围内的整数组成,例如
我想将这些数组视为以 10 为底的数字的数字,因此 X 代表数字 123,Y 代表数字 709。我想编写一个程序来输出这些整数之和的数字。所以在给出的例子中,它应该输出数组
因为 123 + 709 = 832。对于这个问题,假设 X 和 Y 具有相同的长度就足够了,即它们所代表的数字具有相同的位数。当我这样做时,我还想跟踪在添加过程中执行的进位。所以在这个例子中,我也想输出
这表示当我添加数字 9 + 3 = 12 时我必须携带 1,但是在其他位置添加数字时没有携带。所以我的主要问题是
- 有谁知道使用 MATLAB 实现这一目标的简单方法?
到目前为止,我想出的是以下代码,它给出了两个数字 X 和 Y
问题是代码有时只能工作。例如,通过我上面给出的示例,123 + 709 = 832 与 [0 0 1] 的“进位数组”一起工作没有问题。但是输入 X = 52514 和 Y = 41525 不会产生正确的结果。所以我的后续问题是
- 有没有人看到上面代码中的错误/我该如何修复它?
assembly - 使用进位位和溢出位的原因
我正在学习嵌入式系统入门课程。在阅读的过程中,我遇到了一个关于进位位和溢出位实现的有趣问题。
我知道什么是进位位和溢出位,但是我想不出有人会使用进位位的情况。我认为的一个原因是对齐内存。有人可以阐明这个问题吗?
math - 简单进位
好的,所以我正在修改测试其中一个修改问题是:
如果
- R4 = FEh
- R5 = DCh
- R6= ABh
- 进位 = 0
以下代码A
及其后的内容是什么:Carry
正确答案是Carry = 1
和 A = D0h
我可以计算出寄存器是什么,但我无法得到进位位的正确答案。谁能帮我理解这一点?
java - 在 Java 中确定 6502 仿真中的进位和溢出标志?
我正在制作一个 6502 仿真器,但一开始我就被卡住了(或者我认为我至少是卡住了)(实现 ADC 操作)。问题是我必须确定是否有进位或溢出。问题是,在我的实现中,我无法真正掌握它们之间的区别。我知道进位是在操作后存在第 9 位时,并且我知道当结果大于 255 时会发生溢出。这不是确定进位和溢出标志是一回事吗?
这不正确吗?如果不是,什么是正确的,为什么?
c - C 是否保存 << 或 >> 位移的进位位?
我读到 C 保存了班次的进位,它可以在特定于处理器的 .h 中找到。
这是真的吗?我应该使用它吗?还是应该自己解决执行位?