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

8051加了DA A指令後無法正常計數!!

答題得分者是:kib72377
DIOR_CASTOR
一般會員


發表:2
回覆:2
積分:0
註冊:2013-04-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-04-13 20:48:15 IP:1.175.xxx.xxx 訂閱
因為想要顯示成10進位
第10行的DA A指令加了之後卻計數不正常
計數到10之後就開始亂跳了!!
若不加DA A指令卻又可以正常計數16進位
請各位大哥指點~謝謝!!
(附圖)

ORG 00H
JMP START
START:
MOV A,#00H
LOOP:
MOV P1,A
MOV R5,#10
CALL DELAY
INC A
DA A
JMP LOOP
DELAY:
MOV R6,#40
K1:
MOV R7,#249
DJNZ R7,$
DJNZ R6,K1
DJNZ R5,DELAY
RET
END
kib72377
高階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-04-15 08:32:24 IP:111.252.xxx.xxx 未訂閱
DAA 前要用 加法
DIOR_CASTOR
一般會員


發表:2
回覆:2
積分:0
註冊:2013-04-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-04-19 19:57:33 IP:114.47.xxx.xxx 訂閱
 不懂!!
INC不能用嗎??
小弟還只是各新手!!
還請大哥多指教!!

編輯記錄
DIOR_CASTOR 重新編輯於 2013-04-19 19:58:02, 註解 無‧
DIOR_CASTOR
一般會員


發表:2
回覆:2
積分:0
註冊:2013-04-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2013-04-21 22:42:52 IP:114.40.xxx.xxx 訂閱
 同樣是做+1的動作!!
為什麼用INC A會無法正常顯示
用ADD A,#1卻可以正常計數!!
請各位大哥指導~謝謝!!
kib72377
高階會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2013-04-22 10:20:03 IP:114.38.xxx.xxx 未訂閱
 影響的flag不一樣.
請參考指令表
The INC instruction increments the specified operand by 1. An original value of 0FFh or 0FFFFh overflows to 00h or 0000h.
No flags are affected by this instruction.

The ADDC instruction adds a byte value and the value of the carry flag to the accumulator. The results of the addition are stored back in the accumulator.
Several of the flag registers are affected.

The ADD instruction adds a byte value to the accumulator and stores the results back in the accumulator.
Several of the flag registers are affected.


其他自己看吧
http://www.keil.com/support/man/docs/is51/is51_da.htm
編輯記錄
kib72377 重新編輯於 2013-04-23 12:05:16, 註解 無‧
系統時間:2017-12-14 23:15:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!