熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2019-3-3 08:33
正文摘要:如圖為什么要先乘以10, XCH A,R3 R3此時(shí)是零 零與高字節(jié)交換 MUL AB 0乘以10是不是零 ADD&nbs ... |
zjjhtony 發(fā)表于 2019-3-5 08:58 還是不懂啊,比如 a3=0101 a2=0100 a1=1000 a0=1001,求大俠解讀這個(gè)計(jì)算過程 |
zjjhtony 發(fā)表于 2019-3-5 08:58 我想看的就是你這樣的解答,真棒 |
1、4位的BCD碼轉(zhuǎn)二進(jìn)制數(shù)計(jì)算公式: a3,a2,a1,a0四位BCD碼,轉(zhuǎn)成的二進(jìn)制數(shù)=a3*1000+a2*100+a1*10+a0 2、這段程序就是完成這個(gè)轉(zhuǎn)換的過程的。 3、怎么完成這個(gè)呢? 分成3個(gè)步驟: NO1: (a3)*10+a2 NO2: ((a3)*10+a2)*10+a1 NO3: (((a3)*10+a2)*10+a1)*10+a0 =a3*1000+a2*100+a1*10+a0 要進(jìn)過3個(gè)循環(huán)。每個(gè)循環(huán)都是16位數(shù)乘以10(8位數(shù)),再加上另外一個(gè)數(shù)。中間需要考慮進(jìn)位。 怎么完成這個(gè)循環(huán)呢? 十六位數(shù)AB(A代表高8位,B代表低8位)乘以10(8位數(shù))再加上另外一個(gè)數(shù)D的計(jì)算方法: 高位字節(jié)=A*10+(B*10+D)的進(jìn)位(有進(jìn)位加1,無進(jìn)位加0) 低位字節(jié)=B*10+D 4、在第一個(gè)循環(huán)中,要將A3看出16位數(shù),高位字節(jié)是0,所以R3=0. |
yzwzfyz 發(fā)表于 2019-3-3 20:25 還是不懂,取出來的不是BCD碼嗎?它乘以10是什么啊,求指導(dǎo)一下。 |
1、先取的是千位,3次循環(huán),每次*10,合計(jì)*1000 2、次取的是百位,2次循環(huán),每次*10,合計(jì)*100 3、再次取的是十位,1次循環(huán),每次*10,合計(jì)*10 每次都將合計(jì)的結(jié)果放在R4R3中,最后加a0,不就OK了嗎。 |
Powered by 單片機(jī)教程網(wǎng)