全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1671
推到 Plurk!
推到 Facebook!

SUBB的指令在C51的用法?

缺席
hys0608
一般會員


發表:4
回覆:3
積分:1
註冊:2005-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-11 19:58:38 IP:61.66.xxx.xxx 未訂閱
Hi All 我有一小段組合語言程式如下: . . MOV A,#10H SUBB A,#20H INC A MOV xbuffer,A . . 請問Keil C寫法為何才會在complier後會有相同的功能? C51如下的這樣的寫法是對的嗎? xbuffer=(0x10-0x20) 1;

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-11 21:25:06 IP:220.134.xxx.xxx 未訂閱
這樣的寫法是SUB的寫法. SUBB是帶借位的減法, 你還沒有減去借位旗標CY. c=CY; xbuffer=(0x10-c-0x20) 1; 改成這樣應該就ok了. 其中CY為借位旗標. c為變數.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
hys0608
一般會員


發表:4
回覆:3
積分:1
註冊:2005-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-12 08:07:14 IP:218.175.xxx.xxx 未訂閱
"CY為借位旗標. c為變數." 那我直接宣告 char c; c=CY; xbuffer=(0x10-c-0x20) 1; PSW是暫存器,而CY是此暫存器內其中的1bit嗎?所以在C51入可以直接減CY嗎?還是前面需要有關於PSW的相關宣告。

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-12 08:18:25 IP:220.134.xxx.xxx 未訂閱
引言: "CY為借位旗標. c為變數." 那我直接宣告 char c; c=CY; xbuffer=(0x10-c-0x20) 1; PSW是暫存器,而CY是此暫存器內其中的1bit嗎?所以在C51入可以直接減CY嗎?還是前面需要有關於PSW的相關宣告。
這要看你相關的IO51.h有沒有設定到囉. 有的話就不用宣告了. 有沒有宣告 compiler完就知道了. 再跑個模擬測試一下, 就知道了. 不知道你用的是IAR C or Keil C,我用的是Keil C. 測試過了.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
hys0608
一般會員


發表:4
回覆:3
積分:1
註冊:2005-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-21 18:12:33 IP:61.66.xxx.xxx 未訂閱
OK!
系統時間:2024-09-09 16:55:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!