新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機 三字節除法子程序

        單片機 三字節除法子程序

        作者: 時間:2016-11-23 來源:網絡 收藏
        ORG 0000H
        AJMP MAIN

        ORG 0030H
        MAIN:
        MOV 77H,#0FH
        MOV 78H,#42H
        MOV 79H,#40H

        MOV 7AH,#00H
        MOV 7BH,#03H
        MOV 7CH,#0E8H
        LCALL DIV_MB

        SJMP MAIN

        ;=================================================
        ; DIVISION FOR THREE-BYTE DATA
        ; DIVIDEND FROM 77H&78H&79H
        ; DIVISOR FROM 7AH&7BH&7CH
        ; QUOTIENT TO 77H&78H&79H
        ;ARITHMETICAL COMPLIMENT TO 7DH&7EH&7FH
        ; 2008_05_08 BY SZCKIC
        ;=================================================
        DIV_MB: MOV 7DH,#00H
        MOV 7EH,#00H
        MOV 7FH,#00H
        MOV R7,#18H
        NEXTBIT:
        CLR C
        MOV A,79H
        RLC A
        MOV 79H,A

        MOV A,78H
        RLC A
        MOV 78H,A

        MOV A,77H
        RLC A
        MOV 77H,A
        ;Arithmetical compliment
        MOV A,7FH
        RLC A
        MOV 7FH,A

        MOV A,7EH
        RLC A
        MOV 7EH,A

        MOV A,7DH
        RLC A
        MOV 7DH,A

        MOV 5AH,7DH
        MOV 5BH,7EH
        MOV 5CH,7FH
        MOV 5DH,7AH
        MOV 5EH,7BH
        MOV 5FH,7CH

        LCALL TDEC
        JNC UPDATE
        DJNZ R7,NEXTBITTMP
        RET
        UPDATE: INC 79H
        MOV 7FH,5CH
        MOV 7EH,5BH
        MOV 7DH,5AH

        DJNZ R7,NEXTBITTMP

        RET
        NEXTBITTMP:LJMP NEXTBIT

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

        ;=================================================
        ; Subtracter for three-byte data
        ;=================================================
        TDEC: CLR C
        MOV A,5CH
        SUBB A,5FH
        MOV 5CH,A

        MOV A,5BH
        SUBB A,5EH
        MOV 5BH,A

        MOV A,5AH
        SUBB A,5DH
        MOV 5AH,A
        RET

        除法程序寫成了子程序形式,很方便調用,除法中要頻繁用到三字節數據大小的比較,所以也寫成了一個小子程序。

        思路很簡單,拋開我們習慣了的乘法口訣,以一個小學二年級學生的思路去做就簡單了,一步一步的比較、移位,只不過這里是二進制而不是習慣了的十進制,當然二進制也有一個優點那就是:

        假設A,B是兩個同樣位數的二進制數據(首位不為0),且A>B,則A肯定小于2倍的B,所以對于每次移位只用比較一次。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 虹口区| 湟源县| 项城市| 南充市| 嘉鱼县| 台安县| 广灵县| 夏津县| 辰溪县| 长岛县| 雷山县| 贵港市| 德昌县| 英德市| 浠水县| 葫芦岛市| 丰县| 斗六市| 贞丰县| 邵武市| 郎溪县| 徐水县| 陈巴尔虎旗| 西乡县| 阳山县| 宁河县| 内江市| 苍南县| 乃东县| 舒兰市| 蕉岭县| 伊宁市| 南丰县| 和田市| 大庆市| 丰县| 宁安市| 林州市| 百色市| 平武县| 兴山县|