新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機多字節的除法

        51單片機多字節的除法

        作者: 時間:2012-08-24 來源:網絡 收藏


        ;雙字節除雙字節的程序如下:

        ;雙字節的
        ;只是8位的,但有時候需要實現雙字節,里面的指令只支持8位。
        ;想來想去,只好用減法來實現了。下面這個子程序是雙字節除以雙字節,商、余數結果都是雙字節保存,可能有點消耗資源,但這樣可以整合在一塊。
        ;****************************************
        ;函數名稱:Div2Byte
        ;功能描述:無符號數雙字節
        ;傳入參數:R0R1被除數 R2R3除數
        ;返回數據:R4R5商 R6R7余數
        ;其他說明:比如雙字節數R0R1,R0高字節 R1低字節
        ;****************************************
        Div2Byte:
        mov r0,#0ffh
        mov r1,#0ffh
        mov r2,#0
        mov r3,#254

        mov R4,#0
        mov R5,#0 ;商賦初值零
        mov A,R0
        mov R6,A
        mov A,R1
        mov R7,A ;余數賦初值,保證商為零時余數正常
        Div2Byte_1:
        mov A,R1
        clr c
        subb A,R3 ;低字節相減
        mov R1,A
        mov A,R0
        subb A,R2 ;高位相減
        mov R0,A
        jc Div2Byte_3 ;如果高字節都需要借位則退出循環
        clr c
        mov A,R5
        add A,#1 ;之后JNC判斷,故不用INC
        mov R5,A
        jnc Div2Byte_2
        inc R4 ;商加1
        Div2Byte_2:
        mov A,R1
        mov R7,A
        mov A,R0
        mov R6,A ;更新余數
        LJMP Div2Byte_1
        Div2Byte_3:
        nop

        END


        ;兩個程序均驗證無誤!我也是在網上抄來,然后調試的。在這里特別感謝提供這個程序并發到網上的同行們!

        ;我覺得我們搞單片機這一塊的人都非常非常的友好,不象有的行當,學會了一點點就開始保密保守,那樣事

        ;業怎么可能發展?我的口號是: 不保密,不保守,共同提高。要想比別人更強更高,那就付出更多

        三極管相關文章:三極管放大電路


        51單片機相關文章:51單片機教程



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 若羌县| 象山县| 延边| 泗阳县| 二连浩特市| 庐江县| 香格里拉县| 惠水县| 肇源县| 漳平市| 赫章县| 壶关县| 松原市| 邵武市| 肇源县| 辽中县| 陈巴尔虎旗| 慈利县| 平湖市| 滦平县| 连南| 通城县| 弋阳县| 鲜城| 瓮安县| 伊春市| 平利县| 东平县| 本溪| 桂东县| 永寿县| 东辽县| 桃源县| 留坝县| 黄浦区| 宜丰县| 梁山县| 潢川县| 凌云县| 泾源县| 深水埗区|