早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求大神解答一个arm汇编程序,完成两个128位数的加法第一个数由高到低存放在R7-R4,第二个数由高到低存放在R11-R8,结果存放在R3-R0答案这样写:ADDSR0,R4,R8ADCSR1,R5,R9ADCSR2,R6,R10ADCR3,R7,R11问:为什

题目详情
求大神解答一个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?
▼优质解答
答案和解析
因为R7-R4和R11-R8是高到低,加法是由地位开始加,所以先加R4,R8到R0,但如果R4+R8有进位,就要更新CF标志,所以不用ADD,要用ADDS,中间两位要考虑前面的进位,又要考虑加了以后有进位,所以要用ADCS,而最后一位加只考虑第三位的进位,并不关心加后的结果又进位.所以用ADC.
说白了就是
ADD不关心之前是否有进位,也不关心加了后是否有进位
ADDS不关心之前是否有进位,但关心加了后是否有进位
ADC只关心之前是否有进位,不关心加了后是否有进位
ADCS关心之前是否有进位,关心加了后是否有进位
看了 求大神解答一个arm汇编程序...的网友还看了以下: