標(biāo)題: 關(guān)于4位BCD碼轉(zhuǎn)二進(jìn)制的問題 [打印本頁]

作者: zhangzhao2423    時(shí)間: 2019-3-3 08:33
標(biāo)題: 關(guān)于4位BCD碼轉(zhuǎn)二進(jìn)制的問題
如圖為什么要先乘以10,
XCH  A,R3      R3此時(shí)是零  零與高字節(jié)交換
MUL  AB           0乘以10是不是零
ADD  A,R3       R3加零是不是
XCH  A,R4       高字節(jié)與低字節(jié)交換
INC  R0               指向,,a2什么作用

Screenshot_20190303-082155.jpg (170.88 KB, 下載次數(shù): 49)

Screenshot_20190303-082155.jpg

作者: yzwzfyz    時(shí)間: 2019-3-3 20:25
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了嗎。
作者: zhangzhao2423    時(shí)間: 2019-3-4 13:57
yzwzfyz 發(fā)表于 2019-3-3 20:25
1、先取的是千位,3次循環(huán),每次*10,合計(jì)*1000
2、次取的是百位,2次循環(huán),每次*10,合計(jì)*100
3、再次取 ...

還是不懂,取出來的不是BCD碼嗎?它乘以10是什么啊,求指導(dǎo)一下。
作者: zjjhtony    時(shí)間: 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.
作者: zhangzhao2423    時(shí)間: 2019-3-6 15:54
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
...

我想看的就是你這樣的解答,真棒
作者: zhangzhao2423    時(shí)間: 2019-3-6 16:16
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
...

還是不懂啊,比如  a3=0101   a2=0100   a1=1000  a0=1001,求大俠解讀這個(gè)計(jì)算過程




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1