首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SBC指令在arm中的用途是什么?

SBC指令在arm中的用途是什么?
EN

Stack Overflow用户
提问于 2018-03-26 14:15:47
回答 1查看 595关注 0票数 1

我理解ARM中的SBC指令是如何工作的。

但是,我似乎不明白这将如何是有用的,因为预期的答案总是减去1

示例:

代码语言:javascript
复制
MOV r1, #0x88
MOV r2, #0x44
SUB r3, r1, r2
SBC r4, r1, r2

在此操作之后,r3有0x44 (正确),r4有0x43 (不正确)。

我看不出在这种情况下,SBC是一个比SUB更相关的操作。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-03-26 14:31:25

此操作是将进位(PSTATE.C)添加到结果的减法:

r4 = r1 - r2 - (1-CPSR.C)

CPSR.NZCV是由以前设置标志的操作设置的(例如CMPADDS)。

这种类型的操作对于大整数加法很有用。

例如,在Aarch32中,如果您想要计算64位的加法,您可以添加32位的底部位(ADDS),然后使用ADDC来执行带进位传播的前32位。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49493617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档