欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
4位16進制數轉換為10進制數(8421BCD)求思路
[打印本頁]
作者:
cjh1939767444
時間:
2020-3-30 16:03
標題:
4位16進制數轉換為10進制數(8421BCD)求思路
如題,在做一道十進制1+2+3+4+……+100的單片機匯編題目,最后要求結果轉換為BCD碼形式,也就是輸出為5050。
我現在是高位低位分開存,利用進位標志符來做的累加(ADDC),最后得到了十六進制輸出13BA,F在遇到的問題是,高位和低位是分開的,怎么轉換為BCD呢?
我嘗試了下直接在累加過程中對高位和低位分別使用DA A進行BCD修正,結果不對。希望有大佬能夠提供下思路!!感謝!
下面是我用keil寫的匯編代碼,提供參考。
111111.png
(316.63 KB, 下載次數: 33)
下載附件
2020-3-30 16:03 上傳
匯編代碼截圖
作者:
csmyldl
時間:
2020-3-30 18:30
入口條件:待轉換的雙字節十六進制整數在R6、R7中。
出口信息:轉換后的三字節BCD碼整數在R3、R4、R5中。
影響資源:PSW、A、R2~R7 堆棧需求: 2字節
HB2: CLR A ;BCD碼初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;轉換雙字節十六進制整數
HB3: MOV A,R7 ;從高端移出待轉換數的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD碼帶進位自身相加,相當于乘2
ADDC A,R5
DA A ;十進制調整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;雙字節十六進制數的萬位數不超過6,不用調整
DJNZ R2,HB3 ;處理完16bit
RET
作者:
Y_G_G
時間:
2020-3-30 20:44
不知道是誰想出來的扯蛋題目
用匯編去轉換BCD碼干嘛呢?完成運算之后,拆分出來直接顯示不就可以了嗎?
你這個加法是超過了256的,要用兩個地址來存放一個16進制數的
一個16進制數最大數是:65535
在進行BCD碼運算中,你要用到三個地址的,結果應該是005050才是,而不是5050
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1