線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2754
推到 Plurk!
推到 Facebook!

組合語言 二進制轉BCD碼

尚未結案
gabrielle
一般會員


發表:3
回覆:2
積分:1
註冊:2012-01-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-01-05 21:36:34 IP:125.227.xxx.xxx 訂閱
        add     a,#5
BinBcd:
mov r6,CMBuffer
mov r5,#08
clr a
mov r3,a
mov r4,a
Bloop:
mov a,r6
rlc a
mov r6,a
mov a,r3
addc a,r3
da a
mov r3,a
mov a,r4
addc a,r4
da a
mov r4,a
djnz r5,Bloop
ret
這段二進制轉BCD碼有人會說明嗎?
ScottWang
版主


發表:32
回覆:486
積分:688
註冊:2009-04-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-01-05 21:42:55 IP:59.115.xxx.xxx 訂閱
學習asm就是要去trace每一行程式,把數值代入運算,而不是要別人來講解所有程式,你可以參考以下asm使用說明,有疑問的部份,再提出來大家一起討論:
http://elearning.stut.edu.tw/control/Micro/chap4/0.htm
gabrielle
一般會員


發表:3
回覆:2
積分:1
註冊:2012-01-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-01-05 21:47:21 IP:125.227.xxx.xxx 訂閱
每一行指令我都翻書找過了也代過數字,就是不懂才會來發問!!
kib72377
高階會員


發表:1
回覆:217
積分:238
註冊:2004-11-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-01-05 22:07:24 IP:219.69.xxx.xxx 未訂閱
 

適合51的8bit BIN轉BCD演算法- 這是我的部落格 ... - 登入- Yahoo!

上面連結是別人部落格,
關於255是我誤解,
那2次DAA只能處理2位數BCD

以下有另一種 Binary to BCD 演算法:
http://www.ece.msstate.edu/courses/ece4743/fall2007/Shift_add_3.pdf
編輯記錄
kib72377 重新編輯於 2012-01-05 07:09:25, 註解 無‧
kib72377 重新編輯於 2012-01-05 07:11:01, 註解 無‧
kib72377 重新編輯於 2012-01-05 07:12:16, 註解 無‧
kib72377 重新編輯於 2012-01-05 07:14:13, 註解 無‧
kib72377 重新編輯於 2012-01-05 07:14:43, 註解 無‧
kib72377 重新編輯於 2012-01-05 07:32:53, 註解 無‧
kib72377 重新編輯於 2012-01-05 07:34:03, 註解 無‧
kib72377 重新編輯於 2012-01-05 07:35:11, 註解 無‧
kib72377 重新編輯於 2012-01-05 07:35:50, 註解 無‧
gabrielle
一般會員


發表:3
回覆:2
積分:1
註冊:2012-01-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2012-01-05 22:25:08 IP:59.112.xxx.xxx 訂閱
請問從哪邊看出來可以顯示0到255
ScottWang
版主


發表:32
回覆:486
積分:688
註冊:2009-04-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2012-01-05 22:50:41 IP:59.115.xxx.xxx 訂閱
你會想要說明,表示是別人的或網路找來的程式,那些程式沒有驗證過的不一定對.
另外你並沒有貼出你代入的情形,這樣也不知你的問題在那裡?
jxchen
一般會員


發表:5
回覆:13
積分:3
註冊:2007-02-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2012-11-07 09:08:25 IP:220.135.xxx.xxx 訂閱

===================引 用 gabrielle 文 章===================

CMBuffer EQU 30H

MOV CMBuffer,#0FFH ;欲轉換的值
CALL BinBcd
;;-----------------------------------------------
; 8 bit binary 轉換 3位數 BCD
;;INPUT: CMBuffer
;;OUTUT: R3,R4
; R6 =FF,Convert R3=02; R4=55
;-------------------------------------------------
BinBcd:
mov r6,CMBuffer
mov r5,#08 ;Count= 8,因為你只轉換 1 Byte,所以設成 8
clr a
mov r3,a ;將 R3, R4 清除為 =0
mov r4,a ;
Bloop:
mov a,r6
rlc a
mov r6,a
mov a,r3
addc a,r3
da a
mov r3,a
mov a,r4
addc a,r4
da a
mov r4,a
djnz r5,Bloop
ret
這段二進制轉BCD碼有人會說明嗎?
taishyang
站務副站長


發表:377
回覆:5486
積分:4552
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2012-11-07 10:21:51 IP:114.32.xxx.xxx 訂閱
下次再發問前請將您的狀況描述清楚,不然一開始的發問方式會讓人覺得
這是自己沒研究過就直接PO出來發問的作業文^^


===================引 用 gabrielle 文 章===================
每一行指令我都翻書找過了也代過數字,就是不懂才會來發問!!
mymj
版主


發表:132
回覆:486
積分:608
註冊:2002-10-25

發送簡訊給我
#9 引用回覆 回覆 發表時間:2012-12-18 11:02:00 IP:203.67.xxx.xxx 訂閱

===================引 用 jxchen 文 章===================

===================引 用 gabrielle 文 章===================

CMBuffer EQU 30H

MOV CMBuffer,#0FFH ;欲轉換的值
CALL BinBcd
;;-----------------------------------------------
; 8 bit binary 轉換 3位數 BCD
;;INPUT: CMBuffer
;;OUTUT: R3,R4
; R6 =FF,Convert R3=02; R4=55
;-------------------------------------------------
BinBcd:
mov r6,CMBuffer
mov r5,#08 ;Count= 8,因為你只轉換 1 Byte,所以設成 8
clr a
mov r3,a ;將 R3, R4 清除為 =0
mov r4,a ;
Bloop:
mov a,r6
rlc a
mov r6,a
mov a,r3
addc a,r3
da a
mov r3,a
mov a,r4
addc a,r4
da a
mov r4,a
djnz r5,Bloop
ret
這段二進制轉BCD碼有人會說明嗎?

不管學什麼語言的程式設計剛開始應該從流程圖,思考法,或資料結構等基本功
先練會
程式註解或說明對初學很重要
但是程式流程要如何走,邏輯如何判斷才是入門的第一步
就像建橋梁一定是先有構思再來畫圖計算最後才是實作

MYMJ


系統時間:2017-12-13 13:37:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!