標(biāo)題:
關(guān)于MPLAB X IDE 反編譯的問(wèn)題
[打印本頁(yè)]
作者:
HISAUC
時(shí)間:
2021-7-20 18:03
標(biāo)題:
關(guān)于MPLAB X IDE 反編譯的問(wèn)題
請(qǐng)教一下各位大佬,我使用MPLAB X IDE反編譯了PIC16F636的代碼,我大概看了一下,除了一些寄存器不在BANK0中,反編譯出來(lái)的寄存器變到了BANK0相對(duì)應(yīng)地址的寄存器,其他的邏輯應(yīng)該正確。但是有一段代碼感覺(jué)沒(méi)有被調(diào)用到,就有些疑惑。首先,MPLAB X IDE反編譯的正確率如何?其次,hex文件中會(huì)包含無(wú)效代碼嗎?
作者:
Y_G_G
時(shí)間:
2021-7-21 00:13
STATUS 寄存器的 RP<1:0> 為存儲(chǔ)區(qū)選擇位:這個(gè)很重要的!
它決定了你操作的是哪個(gè)BANK,并不是你看到操作了06H它就是操作了PORTB 的,它還要看兩個(gè)RP位才能知道它操作的是哪個(gè)BANK的
作者:
HISAUC
時(shí)間:
2021-7-21 08:36
是的,我知道,因?yàn)橛肵 IDE編譯出來(lái)的直接是個(gè)寄存器而不是一個(gè)地址。所以我才說(shuō)有點(diǎn)錯(cuò)誤,不然地址還是相對(duì)應(yīng)的
作者:
HISAUC
時(shí)間:
2021-7-21 11:08
使用反編譯的代碼,添加了幾句不被調(diào)用的代碼,編譯后再次反編譯,不被調(diào)用的代碼依舊存在,代碼與原代碼基本一致
作者:
Y_G_G
時(shí)間:
2021-7-21 17:21
HISAUC 發(fā)表于 2021-7-21 11:08
使用反編譯的代碼,添加了幾句不被調(diào)用的代碼,編譯后再次反編譯,不被調(diào)用的代碼依舊存在,代碼與原代碼基 ...
編譯器把C編譯成匯編,有時(shí)候是會(huì)一些無(wú)用的代碼,要不然,就不會(huì)有"C的效率"這一說(shuō)法了,所以,有的外部器件會(huì)在數(shù)據(jù)手冊(cè)中推薦用匯編寫(xiě)讀寫(xiě)程序,
像Keil C51中的位移,實(shí)際上并沒(méi)有位移,它是通過(guò)加法實(shí)現(xiàn)的
有的人會(huì)覺(jué)得a=a<<8要比a=a*256好,實(shí)際上它們是一樣的,都是通過(guò)加法實(shí)現(xiàn)的
但是,編譯器不會(huì)有錯(cuò)誤的,或者是說(shuō)極少極少,特別是PIC16F系列,幾乎是不會(huì)有錯(cuò)誤的,PIC16F沒(méi)有自家的編譯器,都是其它廠商做的編譯器,以前有比較多,最后就剩下那幾效率高的,不行的,基本被淘汰了
你想學(xué)反匯編,匯編一定要玩得6,一定不能仿真!沒(méi)有燒錄個(gè)上千次的,你PIC匯編是玩不好的
作者:
yzwzfyz
時(shí)間:
2021-7-22 09:44
贊同5#的說(shuō)法。
要想反編譯,你的匯編必需強(qiáng)。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1