|
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
我寫的32為二進(jìn)制碼轉(zhuǎn)10位BCD碼的匯編子程序! |
作者:hujiahua 欄目:單片機(jī) |
調(diào)用一次要2千多個指令周期。 第一次用AVR,芯片是ATMEGA8L-8PI,大家交流一下,歡迎拍磚! .equ bin4_0 =$20c ; LSB .equ bin4_1 =$20d .equ bin4_2 =$20e .equ bin4_3 =$20f ; MSB .equ bcd10_0 =$210 ; LSB .equ bcd10_1 =$211 .equ bcd10_2 =$212 .equ bcd10_3 =$213 .equ bcd10_4 =$214 .equ bcd10_5 =$215 .equ bcd10_6 =$216 .equ bcd10_7 =$217 .equ bcd10_8 =$218 .equ bcd10_9 =$219 ; MSB ;****************************************************** ; function: bin2bcd32 ; input: bin4_0, bin4_1, bin4_2, bin4_3 ; OUTPUT: bcd10_0, bcd10_1, bcd10_2, bcd10_3, bcd10_4 ; OUTPUT: bcd10_5, bcd10_6, bcd10_7, bcd10_8, bcd10_9 ;****************************************************** bin2bcd32: PUSH r16 PUSH r17 PUSH XL PUSH XH PUSH YL PUSH YH PUSH ZL PUSH ZH ldi XL, bcd10_0 ldi XH, bcd10_0>>8 clr r16 st X+, r16 ; 0 st X+, r16 ; 1 st X+, r16 ; 2 st X+, r16 ; 3 st X+, r16 ; 4 st X+, r16 ; 5 st X+, r16 ; 6 st X+, r16 ; 7 st X+, r16 ; 8 st X+, r16 ; 9 ldi XL, bin4_3+1 ldi XH, (bin4_3+1)>>8 bit31: ld r16, -X sbrs r16, 7 rjmp bit30 ldi ZL, bin2bcd_bit31<<1 ldi ZH, (bin2bcd_bit31)>>7 rcall add_bcd_10 bit30: sbrs r16, 6 rjmp bit29 ldi ZL, bin2bcd_bit30<<1 ldi ZH, (bin2bcd_bit30)>>7 rcall add_bcd_10 bit29: sbrs r16, 5 rjmp bit28 ldi ZL, bin2bcd_bit29<<1 ldi ZH, (bin2bcd_bit29)>>7 rcall add_bcd_10 bit28: sbrs r16, 4 rjmp bit27 ldi ZL, bin2bcd_bit28<<1 ldi ZH, (bin2bcd_bit28)>>7 rcall add_bcd_10 bit27: sbrs r16, 3 rjmp bit26 ldi ZL, bin2bcd_bit27<<1 ldi&nb |
2樓: | >>參與討論 |
作者: 宇宙飛船 于 2004/10/7 19:57:00 發(fā)布:
二進(jìn)制轉(zhuǎn)BCD碼的主要是算法,沒有什么好說! 看這種代碼會浪費(fèi)我很多時間!知道算法的話這東西是很簡單的。我沒興趣看代碼。 這等于1+1=2的道理這么簡單。 |
|
|
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號 |