![]() |
發(fā)布時間: 2019-3-3 08:33
正文摘要:如圖為什么要先乘以10, XCH A,R3 R3此時是零 零與高字節(jié)交換 MUL AB 0乘以10是不是零 ADD&nbs ... |
zjjhtony 發(fā)表于 2019-3-5 08:58 還是不懂啊,比如 a3=0101 a2=0100 a1=1000 a0=1001,求大俠解讀這個計算過程 |
zjjhtony 發(fā)表于 2019-3-5 08:58 我想看的就是你這樣的解答,真棒 |
1、4位的BCD碼轉(zhuǎn)二進(jìn)制數(shù)計算公式: a3,a2,a1,a0四位BCD碼,轉(zhuǎn)成的二進(jìn)制數(shù)=a3*1000+a2*100+a1*10+a0 2、這段程序就是完成這個轉(zhuǎn)換的過程的。 3、怎么完成這個呢? 分成3個步驟: 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個循環(huán)。每個循環(huán)都是16位數(shù)乘以10(8位數(shù)),再加上另外一個數(shù)。中間需要考慮進(jìn)位。 怎么完成這個循環(huán)呢? 十六位數(shù)AB(A代表高8位,B代表低8位)乘以10(8位數(shù))再加上另外一個數(shù)D的計算方法: 高位字節(jié)=A*10+(B*10+D)的進(jìn)位(有進(jìn)位加1,無進(jìn)位加0) 低位字節(jié)=B*10+D 4、在第一個循環(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,合計*1000 2、次取的是百位,2次循環(huán),每次*10,合計*100 3、再次取的是十位,1次循環(huán),每次*10,合計*10 每次都將合計的結(jié)果放在R4R3中,最后加a0,不就OK了嗎。 |
Powered by 單片機(jī)教程網(wǎng)