新聞中心

        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


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 阜新市| 阿城市| 连山| 乐至县| 黄山市| 朝阳区| 宾阳县| 静海县| 都匀市| 遵义市| 阜新| 闸北区| 聊城市| 贡嘎县| 五家渠市| 盐城市| 雷波县| 五常市| 呼和浩特市| 前郭尔| 奇台县| 大荔县| 民勤县| 万宁市| 平果县| 嘉兴市| 太谷县| 青神县| 进贤县| 朝阳区| 榕江县| 漳州市| 贡觉县| 修武县| 英吉沙县| 赤壁市| 米脂县| 肃南| 应城市| 阳东县| 阜康市|