|
在遙遠(yuǎn)的80年代,8051以內(nèi)部晶體振蕩器、定時(shí)器,串行口,準(zhǔn)雙向IO等特色一舉戰(zhàn)勝了Z80,而后者需要外置PIO、CTC、SIO等40腳的芯片。
8051只用了一片外置地址鎖存器解決了外部存儲(chǔ)器的訪問(wèn)。
Z80構(gòu)成需要“單板”,而8051構(gòu)成只需一片,故“單片機(jī)”的美名一直延續(xù)了30年之久,真可謂“單片龜”。。
幾十年來(lái)大學(xué)一直以8051為模版教授“單片機(jī)”,估計(jì)還會(huì)延續(xù)數(shù)年。
隨著時(shí)間的推移與技術(shù)的進(jìn)步,8051“單片機(jī)”之父的美名早已不復(fù)存在,AVR,PIC等眾多“單片機(jī)”都曾嘗試挑戰(zhàn)8051的霸主地位,但都無(wú)功而返……
“失敗”原因很多,菜農(nóng)認(rèn)為其中一個(gè)環(huán)節(jié)常常被大家忽略:專用廠家專用指令。
各廠家為了簡(jiǎn)化匯編指令集,都在指令集中嵌入了IO及訪問(wèn)地址等,故每學(xué)習(xí)一種MCU就必須熟悉或了解其指令集。而8051由于教育的普及,故提到“匯編語(yǔ)言”就會(huì)首先想到8051指令集。
隨著ARM介入MCU領(lǐng)域,上述問(wèn)題徹底改觀。
首先ARM不是MCU廠家,故其指令集不可能包含各廠家的外圍模塊,并且32位或16位指令集中不可能包含32位的立即數(shù)(如GPIO和分支地址),故對(duì)應(yīng)操作必須間接尋址即指針操作。
對(duì)于反匯編而言,首要問(wèn)題是解決數(shù)據(jù)和代碼的分離,其次是從指令中得到GPIO信息從而證實(shí)硬件管腳的作用。
故專用廠家的MCU廠家的指令代碼最容易反匯編,至少理論上可以100%被反匯編。
據(jù)解密界業(yè)內(nèi)人士透露,這些MCU都可以被芯片解密!特別是8051。再結(jié)合菜農(nóng)的超級(jí)反匯編,幾乎從未失手過(guò)……
而ARM系列則不同,即使給你機(jī)器代碼,理論上也無(wú)法反匯編!
因?yàn)楦墒裁炊际侵羔槻僮鳎史磪R編出來(lái)也是一堆亂碼!
ARM的出現(xiàn),特別是Cotex-M系列的出現(xiàn),其價(jià)位早已逼近MCU,特別是各廠家眾多的外圍模塊,其性價(jià)比遠(yuǎn)遠(yuǎn)超越8051,而8051必須擴(kuò)展其外圍模塊或用模擬IO軟件實(shí)現(xiàn)。
故菜農(nóng)強(qiáng)烈呼吁:遠(yuǎn)離51珍惜腦漿!
|
|