欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3698|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

4位16進(jìn)制數(shù)轉(zhuǎn)換為10進(jìn)制數(shù)(8421BCD)求思路

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
如題,在做一道十進(jìn)制1+2+3+4+……+100的單片機(jī)匯編題目,最后要求結(jié)果轉(zhuǎn)換為BCD碼形式,也就是輸出為5050。
我現(xiàn)在是高位低位分開存,利用進(jìn)位標(biāo)志符來做的累加(ADDC),最后得到了十六進(jìn)制輸出13BA。現(xiàn)在遇到的問題是,高位和低位是分開的,怎么轉(zhuǎn)換為BCD呢?
我嘗試了下直接在累加過程中對(duì)高位和低位分別使用DA A進(jìn)行BCD修正,結(jié)果不對(duì)。希望有大佬能夠提供下思路!!感謝!
下面是我用keil寫的匯編代碼,提供參考。

111111.png (316.63 KB, 下載次數(shù): 33)

匯編代碼截圖

匯編代碼截圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:235200 發(fā)表于 2020-3-30 18:30 | 只看該作者
入口條件:待轉(zhuǎn)換的雙字節(jié)十六進(jìn)制整數(shù)在R6、R7中。
出口信息:轉(zhuǎn)換后的三字節(jié)BCD碼整數(shù)在R3、R4、R5中。
影響資源:PSW、A、R2~R7 堆棧需求: 2字節(jié)
HB2: CLR A ;BCD碼初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;轉(zhuǎn)換雙字節(jié)十六進(jìn)制整數(shù)
HB3: MOV A,R7 ;從高端移出待轉(zhuǎn)換數(shù)的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD碼帶進(jìn)位自身相加,相當(dāng)于乘2
ADDC A,R5
DA A ;十進(jìn)制調(diào)整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;雙字節(jié)十六進(jìn)制數(shù)的萬位數(shù)不超過6,不用調(diào)整
DJNZ R2,HB3 ;處理完16bit
RET
回復(fù)

使用道具 舉報(bào)

板凳
ID:401564 發(fā)表于 2020-3-30 20:44 | 只看該作者
不知道是誰想出來的扯蛋題目
用匯編去轉(zhuǎn)換BCD碼干嘛呢?完成運(yùn)算之后,拆分出來直接顯示不就可以了嗎?
你這個(gè)加法是超過了256的,要用兩個(gè)地址來存放一個(gè)16進(jìn)制數(shù)的
一個(gè)16進(jìn)制數(shù)最大數(shù)是:65535
在進(jìn)行BCD碼運(yùn)算中,你要用到三個(gè)地址的,結(jié)果應(yīng)該是005050才是,而不是5050
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表