看板 ASM 關於我們 聯絡資訊
板上高手好 小弟有個程式debug很久了總是無解 而且當我開始使用_cror_ 與_crol_這兩個funciton以來 總是會有莫名奇妙出錯的問題 所以在這邊想要請各位高手幫我看一下 以下是跑馬燈的程式 #include <at89x51.h> #include <intrins.h> typedef unsigned char uchar; uchar x; sfr Data=0x80; uchar LEDON() //Led on { data uchar tmp; tmp=Data; tmp=_crol_(tmp,1); return tmp; } void main() { Data=0x01; while(1) { Data=LEDON(); } } bug是 不知道為什麼到了某一段 tmp總會自己變成零 但是 _cror_與 不就是一直 rotate嗎? 怎麼會有我這樣的狀況出現呢? 請高手幫我解答一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.230.227
WolfLord:CALL過程中CFLAG會發生變化 06/27 19:19
iamtops:狼大,看不懂!可否明示! 06/27 22:52
WolfLord:CROR會連C FLAG一起轉,當你在DO WHILE時CFLAG會變化,所 06/28 20:43
WolfLord:以你在CALL時會把MAIN 的FLAG帶進去。你應該先儲存C再離 06/28 20:44
WolfLord:開副程式 06/28 20:44