新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用左移減法做單字節除法運算

        用左移減法做單字節除法運算

        作者: 時間:2013-04-03 來源:網絡 收藏
        ;只能整數運算及非0運算
        ORG0000H
        JMPA1
        ORG002BH
        A1:MOVR0,#00001001B;被除數
        MOVR1,#0;余數
        MOVR2,#0;商
        MOVR5,#00000011B;除數
        MOV33H,#8;左移8次16位除法左移16次
        A2:MOVA,R0
        RLCA
        MOVR0,A
        MOVA,R1
        RLCA
        MOVR1,A
        CLRC;清C因為減法A=A-C-R5
        SUBBA,R5;用移位后的數減去商
        JCA3;比較大小
        MOVR1,A;大的則把余數保存起來下次再減
        A3:CPLC;商值處理
        MOVA,R2;商值移位
        RLCA
        MOVR2,A
        DJNZ33H,A2;是否完成
        JMP$
        ;思路---只要R1-R5不小于0商就置1并將余數賦值給R1
        ; R1 R5 R2
        ;1、00000000-00000011小于0,商值為00000000
        ;2、00000000-00000011小于0,商值為00000000
        ;3、00000000-00000011小于0,商值為00000000
        ;4、00000000-00000011小于0,商值為00000000
        ;5、00000001-00000011小于0,商值為00000000
        ;6、00000010-00000011小于0,商值為00000000
        ;7、00000100-00000011大于0,商值為00000001,余數為00000001賦值給R1
        ;8、00000011-00000011等于0,商值為00000011,余數為00000000
        ;至此算法完成
        ;注:是循環8次,如果是雙字節就要循環16次,依次類推

        end


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 慈溪市| 长葛市| 宜州市| 友谊县| 镇康县| 塔河县| 晋宁县| 临夏市| 泊头市| 乡宁县| 庄河市| 大丰市| 颍上县| 汤阴县| 扬州市| 定远县| 浦江县| 屏南县| 康保县| 班玛县| 青河县| 灵台县| 黄石市| 栾城县| 台北县| 竹溪县| 科技| 信阳市| 三江| 松阳县| 天等县| 航空| 息烽县| 翁牛特旗| 汉川市| 新龙县| 湾仔区| 台北县| 英吉沙县| 侯马市| 崇文区|