作者iamtops (Tops)
看板ASM
標題[問題] _cror_有bug還是我的問題呢?
時間Wed Jun 27 18:00:45 2012
板上高手好 小弟有個程式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
1F:推 WolfLord:CALL過程中CFLAG會發生變化 06/27 19:19
2F:→ iamtops:狼大,看不懂!可否明示! 06/27 22:52
3F:→ WolfLord:CROR會連C FLAG一起轉,當你在DO WHILE時CFLAG會變化,所 06/28 20:43
4F:→ WolfLord:以你在CALL時會把MAIN 的FLAG帶進去。你應該先儲存C再離 06/28 20:44
5F:→ WolfLord:開副程式 06/28 20:44