新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 淺談基于51單片機的反匯編要點

        淺談基于51單片機的反匯編要點

        作者: 時間:2012-10-09 來源:網絡 收藏

          從一個現有的單片機應用系統中讀出目標代碼進行,可以分析原程序的設計思想,然后加以改進和創新,這是單片機愛好者學習單片機、開發新產品的一個重要途徑。但是,很多單片機愛好者在時常會失敗,怎樣才能正確進行呢?下面就以為例,談談反匯編的要點。

          1.怎樣正確獲取程序的目標代碼

          要正確獲取程序的目標代碼,首先要明確程序代碼的存放地點。的程序存儲器最大空間為64KB,在一個實際的應用系統中,程序存儲器的分布情況可能有以下幾種:

          (1)只使用了片內程序空間。而沒有使用片外的程序空間。

          其硬件特征為:/EA引腳接VCC;/PSEN引腳為空腳。

          這種情況比較簡單,全部應用程序都在單片機內部的程序存儲器中,我們只要使用編程器將程序代碼讀出來,保存為一個目標代碼文件就可以了。要注意的是,有一些新型的單片機具有加密功能,如果進行了加密,其中的程序代碼就是不能讀出。

          (2)沒有使用片內程序空間,片外程序空間由單個存儲芯片構成。

          其硬件特征為:/EA引腳接GND;/PSEN引腳接到一個存儲芯片上。

          這種情況下,全部應用程序都在單片機外部的程序存儲器中,原則上我們只要使用編程器將程序代碼讀出來,保存為一個目標代碼文件就可以了。但要注意的是,這樣得到的并不一定是真正的目標代碼,因為,為了防止程序代碼被讀取、反匯編,很多設計人員都采取跳接線的方法,將某些地址線跳接或將某些數據線跳接或將地址線、數據線都進行跳接,從而保護自己的程序不被反匯編(參見下面四圖)。這樣一來,我們從存儲器中讀取的就不是真正的程序目標代碼,必須進行某種變換,將其轉換為真正的程序目標代碼,才能進行反匯編。


        上一頁 1 2 3 下一頁

        關鍵詞: 51單片機 反匯編

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乌兰浩特市| 黎川县| 天峻县| 金阳县| 恩平市| 襄垣县| 柳河县| 平江县| 关岭| 怀仁县| 尚志市| 长春市| 新蔡县| 滕州市| 莱芜市| 池州市| 建阳市| 锦州市| 河东区| 凤翔县| 萨嘎县| 祁东县| 微山县| 库尔勒市| 曲水县| 遂川县| 元氏县| 湘潭市| 唐海县| 嘉祥县| 和田市| 东港市| 巴东县| 嵩明县| 崇礼县| 鞍山市| 贵定县| 伊通| 赤峰市| 新民市| 包头市|