新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用左移減法做4位16進制數除以2位16進制數運算

        用左移減法做4位16進制數除以2位16進制數運算

        作者: 時間:2016-11-30 來源:網絡 收藏
        ;只能整數運算及非0運算
        ORG0000H
        JMPA1
        ORG002BH
        A1:MOVR0,#04H;被除數
        MOVR1,#0D2H;被除數
        MOVR2,#0;余數
        MOVR3,#0;商
        MOVR4,#0;商
        MOVR5,#34;除數
        MOV30H,#16
        A2:MOVA,R1;先把移低字節移到高字節位
        RLCA;
        MOVR1,A;
        MOVA,R0;先處理高字節和接收低字節傳上來的位字節
        RLCA;
        MOVR0,A;
        MOVA,R2;把移出來的數處理
        RLCA;
        MOVR2,A;
        CLRC;清C因為減法A=A-C-R5
        SUBBA,R5;移出來的數減除數
        JCA3;比較移出來的數和除數大小
        MOVR2,A;移出來的數大則商要置1并將余數賦給R2用于下次移位后再減除數
        ;由于除數為2位16進制數所以余數不不超過2位16進制數用一個寄存器就夠了
        A3:CPLC;商處理
        MOVA,R4;先把存到低字節位
        RLCA;
        MOVR4,A;
        MOVA,R3;通過低字節存到高字節
        RLCA;
        MOVR3,A;
        DJNZ30H,A2;
        JMP$
        END
        ;思路--除數為2位16進制數所以余數不不超過2位16進制數用一個寄存器就夠了
        ; --除數為4位16進制數就得要用2個寄存器
        ; R2 R5 R3 R4
        ;1、 00000000-00100010小于0,商值為00000000》00000000B
        ;2、 00000000-00100010小于0,商值為00000000》00000000B
        ;3、 00000000-00100010小于0,商值為00000000》00000000B
        ;4、 00000000-00100010小于0,商值為00000000》00000000B
        ;5、 00000000-00100010小于0,商值為00000000》00000000B
        ;6、 00000001-00100010小于0,商值為00000000》00000000B
        ;7、 00000010-00100010小于0,商值為00000000》00000000B
        ;8、 00000100-00100010小于0,商值為00000000》00000000B
        ;9、 00001001-00100010小于0,商值為00000000》00000000B
        ;10、00010011-00100010小于0,商值為00000000》00000000B
        ;11、00100110-00100010大于0,商值為00000000》00000001B;余數為00000100B賦值給R2
        ;12、00010010-00100010小于0,商值為00000000》00000010B
        ;13、00100100-00100010小于0,商值為00000000》00000100B
        ;14、00100101-00100010大于0,商值為00000000》00001001B;余數為00000010B賦值給R2
        ;15、00001010-00100010小于0,商值為00000000》00010010B;
        ;16、00010100-00100010小于0,商值為00000000》00100100B,余數為00010100B
        ;至此算法完成


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 金堂县| 福海县| 泉州市| 喀喇沁旗| 日喀则市| 洞头县| 台南县| 三河市| 友谊县| 信宜市| 孙吴县| 齐河县| 阳谷县| 姜堰市| 沧州市| 盐津县| 城口县| 彭泽县| 霍州市| 富民县| 巴青县| 建瓯市| 肃宁县| 凤山市| 宜丰县| 吴堡县| 团风县| 嘉义县| 临海市| 绥德县| 桓仁| 武冈市| 桃园市| 江西省| 安西县| 霍林郭勒市| 乐至县| 中江县| 自治县| 边坝县| 韶关市|