新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Cortex—M0單片機(jī)二-十進(jìn)制整數(shù)轉(zhuǎn)換的快速算法

Cortex—M0單片機(jī)二-十進(jìn)制整數(shù)轉(zhuǎn)換的快速算法

作者: 時(shí)間:2013-08-31 來源:網(wǎng)絡(luò) 收藏
4 算法中除法運(yùn)算的匯編代碼實(shí)現(xiàn)
Cortex—M0系列采用Thumb指令集,式(4)中各數(shù)據(jù)項(xiàng)中的分?jǐn)?shù)項(xiàng)都可以利用該指令集中的右移指令來實(shí)現(xiàn),并且采用多次累加的辦法來完成運(yùn)算。下面給出具體的匯編語言源程序:
d.jpg
b.JPG

結(jié)語
Cortex—M0系列的開發(fā)一般采用集成開發(fā)環(huán)境,為方便使用,可以將上面的子程序封裝成符合集成開發(fā)環(huán)境調(diào)用規(guī)則的函數(shù),封裝時(shí)最好包含有將單字節(jié)、雙字節(jié)、三字節(jié)和四字節(jié)數(shù)據(jù)轉(zhuǎn)化為BCD碼的多個(gè)函數(shù)。為測試該函數(shù)的性能,在IAR集成開發(fā)環(huán)境下,將General options→Library Options選項(xiàng)卡中的Printf formatter設(shè)置成Tiny模式,以便盡量減小Sprintf函數(shù)的代碼長度和運(yùn)行時(shí)間。為敘述方便,這里假定封裝好的函數(shù)名為Hex2Bcd,表1給出其與系統(tǒng)函數(shù)sprintf的指令運(yùn)行周期數(shù)(CCSTEP)的對比數(shù)據(jù)。

c.JPG


由表1可以看出,Hex2Bcd函數(shù)的平均運(yùn)行時(shí)間不足sprintf函數(shù)的5%,速度優(yōu)勢極其明顯。另外Hex2Bcd函數(shù)的程序代碼僅有100字節(jié)左右,遠(yuǎn)少于sprintf函數(shù)的1.5 KB,極大地節(jié)省了存儲(chǔ)空間。因此,本文中的具有很強(qiáng)的實(shí)用性,值得推廣應(yīng)用。

單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理



上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉