精華區beta ASM 關於我們 聯絡資訊
※ 引述《CuckooBoy (阿書)》之銘言: : 請問想看變數的狀態 : 譬如i=i+1; : 我想看這列的 ......左邊i的值是多少,要怎麼做呢? 你的問題有點怪,左邊是指i=的i吧? 以c語言的語法,是指i+1-->i,也就是當該行執行完後的值。 因為各家的ICE對於斷點的處理不一定相同,所以比較保險的方式是: 260 i=i+1 261 nop 然後在261行前加上斷點,中斷時去檢查i的值就可以了 當然,如果你不是用ICE的話,那可能是在261行的地方換成輸出指令,將值在某個 port或rs232或其他的方式將資料輸出。 ps.說真的,這裡是asm版,你的問題大多是C的問題,雖然說是單晶片上面的問題,但 主要又不是單晶片的問題,我想會有一些人覺得是不必要的問題也是可以理解的。 又及:你的需求可以去相關的論壇得到更多的幫助,如雷兒電子論壇、51硬派論壇、 大鳥實驗室論壇(名稱可能有錯,但是我以前去過覺得不錯的論壇)。 另外,你在上一篇問說是否可以針對一個位元的存取,在51而且,只有一小個區段的 記憶體可以做位元存取,在keilC中以bdata做為標示。 xdata unsigned char abc; bdata unsigned char bitbuffer; bit bit7 = bitbuffer^7; bit bit6 = bitbuffer^6; bit bit5 = bitbuffer^5; bit bit4 = bitbuffer^4; bit bit3 = bitbuffer^3; bit bit2 = bitbuffer^2; bit bit1 = bitbuffer^1; bit bit0 = bitbuffer^0; abc = 0x55; bitbuffer = abc; P1.1 = bit2; 這樣也可以做到,事實上,你去看keilc對於51.h的宣告,會發現他P0~P3的各位元宣告 是相同的,但不是每種編譯器都是用這種方法宣告,像是arm的c編譯器就是用上幾篇的 結構式宣告完成的。 這主要是因為C原本沒有對位元處理的指令、符號的定義,因此各家編譯器會用一些方法 來支援這部份。 -- 我只是個想賺 P 幣的迷途小羔羊 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.228.75
CuckooBoy:推 針對一個位元的存取 ...感謝 09/08 20:58
CuckooBoy:一個位元的存取 一般書好像沒教,這...應該是經驗吧^^蘒 09/08 20:59