中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > EM78系列單片機的數(shù)值轉(zhuǎn)換子程序簡介

        EM78系列單片機的數(shù)值轉(zhuǎn)換子程序簡介

        作者: 時間:2012-08-12 來源:網(wǎng)絡 收藏


        mov 0x20,a
        mov 0x21,a
        mov 0x22,a
        mov a,@0x0 ;被除數(shù)擴充1字節(jié)并清0
        mov 0x23,a
        mov a,@0x12 ;除數(shù)賦值
        mov 0x30,a
        mov 0x31,a
        mov a,@0x10 ;循環(huán)次數(shù)為16
        mov 0x32,a
        again: call rt_sub ;調(diào)移位除法子程
        djz 0x32 ;16次循環(huán)完成則結(jié)束
        jmp again ;未完成則繼續(xù)
        self: jmp self
        rt_sub:
        bc 0x03,0 ;c標志清0
        rlc 0x20 ;被除數(shù)左移1位
        rlc 0x21
        rlc 0x22
        rlc 0x23
        jbc 0x03,0
        jmp rt3 ;c標志為1則直接相減
        mov a,0x23 ;c標志為0則先比較大小
        mov 0x25,a
        mov a,0x22
        mov 0x24,a
        mov a,0x31 ;先比較高位
        sub 0x25,a
        jbc 0x03,2
        jmp rt1 ;高位相等跳rt1比較低位
        jmp rt2 ;高位不等跳rt2
        rt1: mov a,0x30 ;比較低位
        sub 0x24,a
        jbc 0x03,2
        jmp rt3 ;低位也相等則跳rt3,相減,上1
        rt2: jbs 0x03,0
        ret ;減數(shù)大則返回,減數(shù)小則相減,上1
        rt3: bs 0x20,0 ;上1
        call sub_2b ;調(diào)2字節(jié)減法子程
        ret
        sub_2b:
        mov a,0x31 ;高字節(jié)相減
        sub 0x23,a
        mov a,0x30 ;低字節(jié)相減
        sub 0x22,a
        jbc 0x03,2
        ret ;低字節(jié)相等,無借位,返回
        jbc 0x03,0
        ret ;無借位,返回
        dec 0x23 ;低字節(jié)相減有借位,高字節(jié)結(jié)果減1
        ret
        eop
        六 BCD數(shù)為二進制數(shù)
        兩字節(jié)壓縮BCD碼為兩字節(jié)二進制數(shù)。算法如下:
        BCD碼abcd=1000a+100b+10c+d=10{10[10a+b]+c}+d,將各位BCD碼分離出之后,即可根據(jù)此式為二進制數(shù)。涉及到乘法運算和多字節(jié)加法運算。
        0X20,0X21中為BCD碼,0X21高4位為最高位。轉(zhuǎn)換結(jié)果放在0X30,0X31中。
        main: mov a,@0x79
        mov 0x20,a
        mov a,@0x54
        mov 0x21,a ;賦值
        mov a,0x20
        and a,@0x0f
        mov 0x22,a
        swapa 0x20
        and a,@0x0f
        mov 0x23,a
        mov a,0x21
        and a,@0x0f
        mov 0x24,a
        swapa 0x21
        and a,@0x0f
        mov 0x25,a ;BCD碼展開后存于0X22,0X23,0X24,0X25
        mov a,0x25, ;0X25為最高位
        mov 0x30,a
        mov a,@0x0 ;多字節(jié)加法高位為0
        mov 0x31,a
        mov a,0x24
        mov 0x32,a
        call a_b ;調(diào)子程
        mov a,0x23
        mov 0x32,a
        call a_b
        mov a,0x22
        mov 0x32,a
        call a_b
        self: jmp self
        a_b:
        mov a,@0x0 ;0X34,0X35存儲中間結(jié)果
        mov 0x34,a
        mov 0x35,a
        mov a,@0x0a ;實現(xiàn)乘10
        mov 0x33,a
        a1: mov a,0x35 ;兩字節(jié)二進制加法,在本例中高字節(jié)肯定無進位
        add a,0x31
        mov 0x35,a
        mov a,0x34
        add a,0x30
        mov 0x34,a
        jbc 0x03,0
        inc 0x35
        djz 0x33
        jmp a1
        mov a,0x32
        add 0x34,a


        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉