音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 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

請(qǐng)給我的程序加批注

作者:liyuanju 欄目:單片機(jī)
請(qǐng)給我的程序加批注
入口:R3R2(16位無(wú)符號(hào)二進(jìn)制整數(shù))
出口:R6(萬(wàn)位)R5(千位、百位)R4(十位、個(gè)位)
雙字節(jié)二進(jìn)制數(shù)轉(zhuǎn)BCD數(shù)
BCD:    CLR  A
         MOV  R4,A
         MOV  R5,A
         MOV  R6,A
         MOV  R7,#10H
NEXT:   CLR  C
         MOV  A,R2
         RLC  A
         MOV  R2,A
         MOV  A,R3
         RLC  A
         MOV  R3,A
         ADDC A,R4
         DA   A
         MOV  R4,A
         MOV  A,R5
         ADDC A,R5
         DA   A
         MOV  R5,A
         MOV  A,R6
         ADDC A,R6
         DA   A
         MOV  R6,A
         DJNZ R7,NEXT
         RET
經(jīng)過(guò)十六次左移后可以得到BCD數(shù),我想知道每一次左移之后R4,R5,R6里面的情況,我要推算四、五次之后就不會(huì)了,請(qǐng)各位老師結(jié)合具體的數(shù)給推推或者給個(gè)批注?赡芎芊爆崳x謝了!

2樓: >>參與討論
平常人
自己畫個(gè)表,應(yīng)該很容易推導(dǎo)的

R0 R1 R2 R3 R4 R5 R6 R7
xx xx 12 34 00 00 00 10 進(jìn)入NEXT前
xx xx 24 68 00 00 00 0F 一次循環(huán)后
xx xx 48 D0 00 00 00 0E 二次循環(huán)后
xx xx 90 A0 01 00 00 0D 三次循環(huán)后
....

慢慢來(lái),沒(méi)人催你

3樓: >>參與討論
conwh
還是自己下點(diǎn)工夫,以后記得牢
 
4樓: >>參與討論
john_light
可以用筆,也可以用電
手工練印象深
也可以借助開(kāi)發(fā)環(huán)境的debug功能
把這段程序作為子程序
在主程序中給初值調(diào)用它
單步觀察

5樓: >>參與討論
conwh
先搞懂算法
 
6樓: >>參與討論
liyuanju
re
謝謝各位!我用R3(00110100)R2(00010010)做為初值經(jīng)單步運(yùn)行完程序后顯示結(jié)果為:R6(08)R5(20)R4(53),這在十進(jìn)制數(shù)上就等于82053嗎?但是R3R2(0011010000010010)B在十進(jìn)制數(shù)上等于13330,怎樣理解?謝謝指教!

7樓: >>參與討論
conwh
前面錯(cuò)了(R4運(yùn)算)
 
8樓: >>參與討論
liyuanju
re
在Keil軟件里面運(yùn)行完后就是這樣的結(jié)果,還有其他原因嗎?

9樓: >>參與討論
conwh
怎么還沒(méi)有看明白?
BCD:    CLR  A
         MOV  R4,A
         MOV  R5,A
         MOV  R6,A
         MOV  R7,#10H
NEXT:   CLR  C
         MOV  A,R2
         RLC  A
         MOV  R2,A
         MOV  A,R3
         RLC  A
         MOV  R3,A
        MOV  A, R4
         ADDC A,R4
         DA   A
         MOV  R4,A
         MOV  A,R5
         ADDC A,R5
         DA   A
         MOV  R5,A
         MOV  A,R6
         ADDC A,R6
         DA   A
         MOV  R6,A
         DJNZ R7,NEXT
         RET


10樓: >>參與討論
dengm
【非典】16 bits BIN TO BCD 轉(zhuǎn)換 51匯編(已優(yōu)化)(<72周期)
【非典】16 bits BIN TO BCD 轉(zhuǎn)換 51匯編(已優(yōu)化)(<72周期)

;----- BIN2BCD.ASM ---------- Deng Miao  2006-3-28    Guang Zhou ----
;    INPUT:  16 BITS BIN  R3:R2
;    OUTPUT:  BCD IN R6:R5:R4
;    USAGE:  A, B, PSW, R7

      ; R3:R2   ====>R6:R5:R4
      ;
      ; 6 MS BITS (BIT 15 TO BIT 10)
      ; 1024 * (10*X+Y)
      ; = 10000.html">10000*X + 1000 Y + 200 * X + 20 * Y + 4 * (10*X+Y)
      ; = 10000.html">10000*X
      ;  +100 * ( (10*Y + X) + X )
      ;  + 2 * ( 2 * (10*X + Y) + 10*Y )

   
BIN2BCD:
       MOV A, R3
       MOV B, #40
       DIV AB
       MOV R6, A ;        R6:== 10000.html">10000 * X
       
       MOV A, B
       RL A
       RL A
       ANL A, #0F0H
       MOV R4, A      ;   R4:== 10 * Y
       ORL A, R6      ;  
       MOV R7, A      ;   R7:==  10*Y + X
       SWAP A         ;   A:===  10*X + Y
       ADD A, ACC     ;   2 * (10*X+Y)
       DA A
       JNC $+4
         INC R7
         INC R7
       ADD A, R4      ;   2 * (10*X+Y) + 10*Y
       DA A
       JNC $+4
         INC R7
         INC R7
       ADD A, ACC     ; 2*(2*(10*X+Y)+10*Y)
       DA A

       XCH A, R7      ; R7:== *1
       ADDC A, R6     ; (10*Y+X) + X
       DA A
       MOV R5, A      ; R5:== *100
       JNC $+3
         INC R6       ; R6:== *10000.html">10000
;                       R6:R5:R7
;-----------------------------
       MOV A, R2      ; BIT 9, BIT 8, BIT 7 TO BIT 0
       MOV C, B.0
       RRC A
       MOV C, B.1
       RRC A
       MOV B, #25
       DIV AB
       MOV R4, A ; * 100

       MOV A, R2
       ANL A, #3
       XCH A, B
       RL A
       RL A
       ORL A, B
       MOV B, #10
       DIV AB
       SWAP A
       ORL A, B
       
       ADD A, R7
       DA A
       XCH A, R4

       ADDC A, R5
       DA A
       MOV R5, A
       JNC $ + 3
         INC R6
       RET




11樓: >>參與討論
hotpower
鄧苗的思路太怪異~~~服倒了~~~
節(jié)日快樂(lè)~~~

12樓: >>參與討論
dengm
時(shí)間(指令周期)是重要的資源, 有時(shí)只能用怪異的算法,請(qǐng)LZ TEST
節(jié)日快樂(lè)!

13樓: >>參與討論
liyuanju
re:
謝謝!終于搞懂了,我按conwh 所說(shuō)調(diào)試運(yùn)行后為13330,這是書上的一個(gè)例題,我沒(méi)有懷疑程序有問(wèn)題,水平較差看不出來(lái).

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
各位誰(shuí)能提供些最新的單片機(jī)實(shí)用接口資料
有沒(méi)有“單片機(jī)匯編語(yǔ)言互相轉(zhuǎn)換”的軟件?
問(wèn)一個(gè)很基礎(chǔ)的問(wèn)題
關(guān)于定時(shí)器碰到的奇怪問(wèn)題
串口調(diào)試助手能發(fā)送數(shù)據(jù)包嗎?象5a 22 33 44 55 a5
免費(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)