如下指令序列完成兩個 128 位數的加法,第一個數由高到低存放在寄存器 R7~R4,第二個數由
高到低存放在寄存器 R11~R8,運算結果由高到低存放在寄存器 R3~R0:
ADDS R0,R4,R8 ; 加低端的字
ADCS R1,R5,R9 ; 加第二個字,帶進位
ADCS R2,R6,R10 ; 加第三個字,帶進位
ADC R3,R7,R11 ; 加第四個字,帶進位spa
注意,這4行,表明一個總體,須要縱向看。co
首先加法計算,都是從低位往高位加的,這個須要明白,好比15+14 =29,先計算各位,再計算10位數,這裏彙編也是如此.background
第一行,能夠理解先計算各位,其結果存放再低位寄存器R0中,以此類推,至於進位,這是確定要考慮的
ADD不關心以前是否有進位,也不關心加了後是否有進位 ADDS不關心以前是否有進位,但關心加了後是否有進位 ADC只關心以前是否有進位,不關心加了後是否有進位 ADCS關心以前是否有進位,關心加了後是否有進位