求大神解答一个arm汇编程序,完成两个128位数的加法

求大神解答一个arm汇编程序,完成两个128位数的加法
第一个数由高到低存放在R7-R4,第二个数由高到低存放在R11-R8,结果存放在R3-R0
答案这样写:
ADDS R0,R4,R8
ADCS R1,R5,R9
ADCS R2,R6,R10
ADC R3,R7,R11
问:为什么依次用ADDS,ADCS,ADCS,ADC?
Lovelylolita 1年前 已收到1个回答 举报

我爱疾速 幼苗

共回答了17个问题采纳率:88.2% 举报

因为R7-R4和R11-R8是高到低,加法是由地位开始加,所以先加R4,R8到R0,但如果R4+R8有进位,就要更新CF标志,所以不用ADD,要用ADDS,中间两位要考虑前面的进位,又要考虑加了以后有进位,所以要用ADCS,而最后一位加只考虑第三位的进位,并不关心加后的结果又进位.所以用ADC.
说白了就是
ADD不关心之前是否有进位,也不关心加了后是否有进位
ADDS不关心之前是否有进位,但关心加了后是否有进位
ADC只关心之前是否有进位,不关心加了后是否有进位
ADCS关心之前是否有进位,关心加了后是否有进位

1年前

5
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 1.953 s. - webmaster@yulucn.com