新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用ARM匯編實現64位數據的運算

        用ARM匯編實現64位數據的運算

        作者: 時間:2016-11-21 來源:網絡 收藏
        R0和R1分別存放一個64位操作數的低32位和高32位,

        R2和R3分別存放另一個64位操作數的低32位和高32位。

        本文引用地址:http://www.104case.com/article/201611/319305.htm

        一、64位操作數的加法運算

        ADDS R4,R0,R2

        ADC R5,R1,R3

        ADDS指令中,R4=R0+R2,且是否有進位會影響到CPSR寄存器中的C標志位;

        ADC指令R5=R1+R3+C,這樣,R4和R5就存放了64位和值的低32位和高32位。

        二、64位操作數的減法運算

        SUBS R4,R0,R2

        SBC R5,R1,R3

        SUBS指令中,R4=R0-R2,如果發生借位,則C=0【這和ADDS指令相反】;

        SBC指令R5=R1-R3-C標志位的反碼。

        三、求64位操作數的負數

        RSBS R2,R0,#0;R2=-R0,且發生了借位,則C標志位為0.

        RSC R3,R1,#0 ;R3=-R1-C的反碼【此處為1】



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 会泽县| 宜良县| 虎林市| 旺苍县| 宁陕县| 灌云县| 邻水| 铜陵市| 余庆县| 安新县| 上虞市| 建湖县| 周口市| 巨野县| 彭水| 武乡县| 玉田县| 精河县| 剑川县| 察隅县| 东方市| 阜阳市| 交城县| 镇巴县| 泗洪县| 莎车县| 栖霞市| 宜君县| 汤原县| 濮阳县| 永年县| 安溪县| 米易县| 鲁甸县| 武川县| 邳州市| 濮阳市| 邹城市| 东兰县| 广安市| 崇信县|