音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

一段匯編代碼指教(急)

作者:li_bo123 欄目:單片機(jī)
一段匯編代碼指教(急)
   請(qǐng)教一下,下面這段匯編代碼完成的是什么功能?在NBD0函數(shù)中是不是將數(shù)組rdbuf的低5字節(jié)全部清空了?謝謝各位分析一下,我實(shí)在是不能明白這段代碼是什么意思。

                  MOV R0,#rdbuf
        MOV R1,#rdbuf+4
        MOV R7,#04H
NIBTD:        CLR EA
        MOV A,R0
        MOV R5,A
        MOV A,R1
        MOV R6,A
        MOV A,R7
        INC A
        MOV R3,A
NBD0:        MOV @R1,#00H
        INC R1
        DJNZ R3,NBD0
        MOV A,R7
        MOV B,#08H
        MUL AB
        MOV R3,A        ;R3=32
NBD4:        MOV A,R5
        MOV R0,A
        MOV A,R7
        MOV R2,A
        CLR C
NBD1:        MOV A,@R0
        RLC A
        MOV @R0,A
        INC R0
        DJNZ R2,NBD1
        MOV A,R6
        MOV R1,A
        MOV A,R7
        MOV R2,A
        INC R2
NBD3:        MOV A,@R1
        ADDC A,@R1
        DA A
        MOV @R1,A
        INC R1
        DJNZ R2,NBD3
        DJNZ R3,NBD4
        SETB EA
        RET

2樓: >>參與討論
li_bo123
為什么只有人看,沒(méi)有人指點(diǎn)一下?
 
3樓: >>參與討論
li_bo123
oh,My God,why nobody help me?
 
4樓: >>參與討論
阿豬
哥們,自己用心看
我看是從rdbuff(有4個(gè)元素,因?yàn)閞dbuff+4是新存儲(chǔ)區(qū))讀數(shù)組,先做每個(gè)元素乘2(rlc a),后面的算法偶沒(méi)仔細(xì)想了,有點(diǎn)象BCD碼轉(zhuǎn)換之類的
程序沒(méi)有注釋,不好亂猜了

5樓: >>參與討論
nidget
是啊,自己好好看吧
不過(guò),程序有點(diǎn)怪
如果第35行是:
ADDC A,#0
的話,那它是統(tǒng)計(jì)rdbuf的數(shù)據(jù)各個(gè)位中1的個(gè)數(shù),并以十進(jìn)制保存在rdbuf+4中
但不是,就有點(diǎn)復(fù)雜了
沒(méi)有解釋,又只是一段,自己理解吧

6樓: >>參與討論
wenbinjj
用來(lái)干嘛的?
寫(xiě)來(lái)干嘛的?


7樓: >>參與討論
dengm
bin to bcd
 
8樓: >>參與討論
gbchang
加上注釋...
        MOV R0,#rdbuf    ; R0作為入口,bin首地址
        MOV R1,#rdbuf+4 ; R1作為出口,bcd首地址
        MOV R7,#04H    ; bin共4byte,bcd也4byte夠用嗎?
NIBTD:        
    CLR EA
        MOV A,R0
        MOV R5,A    ; R5保存bin首地址
        MOV A,R1
        MOV R6,A    ; R6保存bcd首地址
        MOV A,R7
        INC A
        MOV R3,A
NBD0:   
    MOV @R1,#00H
        INC R1
        DJNZ R3,NBD0    ; bcd先置全部0
        MOV A,R7
        MOV B,#08H
        MUL AB
        MOV R3,A        ; R3=32(4BYTE二進(jìn)制共32BIT)
NBD4:   
    MOV A,R5
        MOV R0,A
        MOV A,R7
        MOV R2,A
        CLR C
NBD1:
        MOV A,@R0    ; 取出BIN
        RLC A
        MOV @R0,A
        INC R0
        DJNZ R2,NBD1    ; 得到4BYTE中最高(左邊的)位,保存在C中
        MOV A,R6
        MOV R1,A
        MOV A,R7
        MOV R2,A
        INC R2
NBD3:
        MOV A,@R1
        ADDC A,@R1    ; 第一次循環(huán)將原BCD形式的數(shù)X2,再+上面得到的那個(gè)最高位(C)
        DA A        ; BIN TO BCD,如果沒(méi)有這個(gè),就又回去了(BIN TO BIN?哈哈!)
        MOV @R1,A    ; 寫(xiě)入BCD區(qū)
        INC R1
        DJNZ R2,NBD3    ; 4BYTE
        DJNZ R3,NBD4    ; 32位完成
        SETB EA
        RET


9樓: >>參與討論
gbchang
這個(gè)BIN2BCD是編譯器編譯出來(lái)的嗎?
 
10樓: >>參與討論
li_bo123
謝謝各位阿,不是編譯器編出來(lái)的。
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
遠(yuǎn)程抄表(最遠(yuǎn)2公里半)到底有沒(méi)有價(jià)廉物美的解決辦法
產(chǎn)品中加上觸摸屏,向大家請(qǐng)教
請(qǐng)教高手AT89C52與AT89S52的區(qū)別在那里
致單片機(jī)初編程學(xué)者
為什么你要學(xué)習(xí),為什么你要學(xué)外語(yǔ)?臺(tái)灣校長(zhǎng)這么說(shuō)
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)