<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM指令機器碼學(xué)習

ARM指令機器碼學(xué)習

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏
以前,死活看不懂這個(gè)DLL文件的16進(jìn)制(其實(shí)是二進(jìn)制,為了好看,以16進(jìn)制ASCII碼顯示),對一些高手使用IDA反匯編流口水,今天終于輪到俺上場(chǎng)了。
現在來(lái)看看這個(gè)指令通常的編碼格式


——————————————————————————————————————————————————————
這個(gè)貌似和英文原版不一樣,現在來(lái)看看ARM Architecture Reference Manual里面的格式


——————————————————————————————————————————————————
還是以這個(gè)為準安全點(diǎn)?,F在看看這個(gè)最高四位的con到底是怎么決定的。


————————————————————————————————————————————————


————————————————————————————————————————————————————
上面這些條件都是可選的,ARM都有固定的指令。下面看看無(wú)條件指令。


——————在A(yíng)RMv4架構中任何帶條件域0b1111的都是不可預測的。
看了那么多,現在來(lái)舉個(gè)例子吧。
——————————————以branch指令為例子——————————————
引用驅動(dòng)調試助手作者的成果,并解釋驗證
———————————————————

Foxit Reader V1.1 for WinCE6.0

今天終于整理清了PXA270上的WinCE6.0,為了方便給客戶(hù)演示W(wǎng)inCE6.0的強大,定制了一個(gè)增強型的操作系統。但WinCE6.0中已經(jīng)不支持PDF等閱讀器了。于是從網(wǎng)站上找了一個(gè)PPC版的Foxit Reader,把它放到WinCE6.0的設備上面運行,竟然提示OS不支持,只能在PPC上面跑??吹竭@個(gè)提示有些失望,但也有一絲希望。這個(gè)提示似乎是Foxit Reader運行時(shí)的提示框,與一般的“不是有效的Windows CE應用程序”是不一樣的。既然這樣,那說(shuō)明程序還是運行起來(lái)了,只是檢測OS時(shí)出錯,所以才會(huì )出現如下圖所示的提示。

想一想,如果讓程序跳過(guò)檢測OS,是不是就可以正常運行呢。滿(mǎn)懷著(zhù)希望,用IDA反匯編了這個(gè)程序,并找到了對應的函數調用。

顯而易見(jiàn),0x000182b4處是有條件的調用,如果改成絕對調用loc_0_182D0,按理就不會(huì )出現那個(gè)提示框了,修改方法就是將BEQ改為B。

用UltraEdit將上面的0A改為EA,即將BEQ改成B,再拷貝到設備上面去,果然可以運行
——————————————————————————————————————————————————————
現在我們解釋這個(gè)B和BEQ機器碼指令

這個(gè)本來(lái)這BEQ,這個(gè)con由EQ決定,按照上面的知識,應該是0b0000,所以高八位為0x0A,現在改成B——絕對跳轉,這樣con就變成了0b1110,所以0xEA 就是由此而來(lái)。OK完工。
———————————————————————
這個(gè)指令機器碼對驅動(dòng)開(kāi)發(fā)人員非常有幫助,有時(shí)候畫(huà)錯電路圖,如果不能反匯編修改代碼就會(huì )無(wú)計可施了,如果可以就可以輕松為企業(yè)節省時(shí)間和成本。
其實(shí)每個(gè)指令的機器碼都有差異,不過(guò)有規律,查閱手冊即可。我準備過(guò)段時(shí)間把eboot反匯編,把以前一些編譯疑惑全部解決。
參考書(shū)籍:ARM System Developers Guide: Designing and Optimizing System Software
——ARM System Developers Guide: Designing and Optimizing System Software——ARM嵌入式系統開(kāi)發(fā):軟件設計與優(yōu)化的英文原版——我個(gè)人感覺(jué)這是國內翻譯ARM書(shū)籍最好的一本之一,比杜XX的ARM體系結構與編程好千倍。 本書(shū)雖然說(shuō)軟件設計與優(yōu)化,但是講的硬件也很多,比如MMU和cache等,講的精彩紛呈
下載地址:http://download.csdn.net/source/904273

ARM920T Technical Reference Manual——不多說(shuō)了,想了解2440等的bootloader的人一定要看這個(gè)東西了,一些協(xié)處理器指令講的很詳細
下載地址:http://download.csdn.net/source/903240

ARM Architecture Reference Manual(2nd Edition) ——比較有價(jià)值的英文ARM書(shū)籍
下載地址http://download.csdn.net/source/901433


關(guān)鍵詞: ARM指令機器

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>