利用狀態(tài)機(jī)來(lái)遍歷FLASH取出指定數(shù)據(jù)

參考資料:
http://blog.csdn.net/v__king__/article/details/71740492 [狀態(tài)機(jī)實(shí)現(xiàn)的三種方法-C語(yǔ)言]
http://blog.csdn.net/findaway123/article/details/16870927有限狀態(tài)機(jī)在程序設(shè)計(jì)中作用和意義

為什么要用狀態(tài)機(jī),狀態(tài)機(jī)常用于哪里

1.過(guò)多的if else帶來(lái)結(jié)構(gòu)的過(guò)于復(fù)雜
2.改變傳統(tǒng)的'遵循事先設(shè)定的邏輯,從頭到尾地執(zhí)行',可以處理任何順序的事件,并能提供有意義的響應(yīng)——即使這些事件發(fā)生的順序和預(yù)計(jì)的不同。有限狀態(tài)機(jī)正是為了滿足這方面的要求而設(shè)計(jì)的菜枷。
3.各種通信協(xié)議發(fā)送方和接受方傳遞數(shù)據(jù)時(shí),一個(gè)字節(jié)一個(gè)字節(jié)接收比對(duì)(下例類似)
4.自底向上解析語(yǔ)法的parser
5.飲料機(jī)(數(shù)電課本)
6.正則中關(guān)鍵字過(guò)濾,可以用有限自動(dòng)機(jī)推導(dǎo)正則表達(dá)式

說(shuō)了這么多迁筛,看看實(shí)例吧
實(shí)例:從FLAG中取出想要的那一幀數(shù)據(jù)

void found()
{  unsigned char myptr=0;
 int mypage=256;
 unsigned char i =0;
 unsigned char my_tx_buffer[170];
 unsigned char want_day[6];//年
 unsigned char address[6];
 unsigned char cur_state=0;
 unsigned char nxt_state=0;
   for(unsigned i=0;i<170;i++)
     my_tx_buffer[i]=0;
 //如果我要找2018年1月31日12點(diǎn)24分24秒的信息  
     want_day[0]=0x19;
     want_day[1]=0x01;
     want_day[2]=0x31;
     want_day[3]=0x12;
     want_day[4]=0x24;
     want_day[5]=0x24;
     //
     mypage=256;  //數(shù)據(jù)存于256頁(yè)至1024頁(yè)
     while(1)
  {   
        ReadMemory(address,6,mypage,myptr);  //于mypage頁(yè)myptr字節(jié)處讀取至address
        cur_state = nxt_state;   
 switch(cur_state) //狀態(tài)0,剛進(jìn)入查詢
     {            
       case 0: //在s0狀態(tài)   
       if(address[0]==want_day[0]) //如果年份一樣耕挨,那么就執(zhí)行a1動(dòng)作细卧,并將狀態(tài)轉(zhuǎn)移到s1態(tài); 
       { nxt_state = 1; }
         else
         break; 
      case 1: //在s1狀態(tài)
       if(address[1]==want_day[1]) //如果月份符合 
       { nxt_state = 2; }           
        else
          break;       
      case 2: //在s2狀態(tài)
       if(address[2]==want_day[2]) //如果日符合            
       {nxt_state = 3;}     
       else
         break;
       
       case 3: //在s3狀態(tài)  符合數(shù)據(jù) 取出并保存
       for( i=0;i<6;i++)
         my_tx_buffer[i]=address[i];
         nxt_state = 0 ;
         goto solve;
       
       default:break;
}
myptr+=73;
if(myptr>73)
{myptr=0;
mypage++;
}   
if(mypage>1024)
{
 mypage=256;
 goto solve;
}
}   
solve:  //后續(xù)處理     

     myptr=0;

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筒占,一起剝皮案震驚了整個(gè)濱河市贪庙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翰苫,老刑警劉巖止邮,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異奏窑,居然都是意外死亡导披,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)埃唯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)撩匕,“玉大人,你說(shuō)我怎么就攤上這事墨叛≈贡希” “怎么了模蜡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)扁凛。 經(jīng)常有香客問(wèn)我忍疾,道長(zhǎng),這世上最難降的妖魔是什么谨朝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任膝昆,我火速辦了婚禮,結(jié)果婚禮上叠必,老公的妹妹穿的比我還像新娘荚孵。我一直安慰自己,他們只是感情好纬朝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布收叶。 她就那樣靜靜地躺著,像睡著了一般共苛。 火紅的嫁衣襯著肌膚如雪判没。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天隅茎,我揣著相機(jī)與錄音澄峰,去河邊找鬼。 笑死辟犀,一個(gè)胖子當(dāng)著我的面吹牛俏竞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播堂竟,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼魂毁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了出嘹?” 一聲冷哼從身側(cè)響起席楚,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎税稼,沒(méi)想到半個(gè)月后烦秩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡郎仆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年只祠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丸升。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铆农,死狀恐怖牺氨,靈堂內(nèi)的尸體忽然破棺而出狡耻,到底是詐尸還是另有隱情墩剖,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布夷狰,位于F島的核電站岭皂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沼头。R本人自食惡果不足惜爷绘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望进倍。 院中可真熱鬧土至,春花似錦、人聲如沸猾昆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)垂蜗。三九已至楷扬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贴见,已是汗流浹背烘苹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留片部,地道東北人镣衡。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像档悠,于是被迫代替她去往敵國(guó)和親捆探。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容