菜農的51超級反彙編disasm51是在1993年編寫的,在DOS上用命令列執行的。
當時發現萬利的模擬器自帶的intel編寫的61反彙編不錯,但是程式碼和資料的分離做的不太好,但優點是可以手工指定從某區域開始反彙編。
菜農是受到還反彙編的啟發產生了編寫反彙編的念頭。
當時需要許多資料格式的轉換,所以想練手,故編寫了許多轉換程式,如hex2bin,bin2hex的這些已經有的命令列程式。
反彙編的要點就是“資料和程式碼的分離”!
菜農的原則是哪怕反彙編出來的全部是資料區,也能透過編譯器再次編譯。
由於51開始必須是從“復位中斷向量”開始執行的,它執行過的,就是“程式區”,未執行到的地方就叫“資料區”。
51還有其他中斷向量,如外部中斷向量,定時器中斷向量,串列埠中斷向量等,但並非一定執行,即可能不存在,如果強行執行,反彙編的程式碼肯定不對。
因為程式中存在“散轉程式”或函式指標,故指令中隱藏了程式的入口地址,而真的入口地址在“變數”或“陣列中隱藏著。
故需要使用者自己新增這些“隱藏向量”,即“強制入口地址表”。
disasm51只支援64K以內的程式的反彙編,故地址為兩個位元組4個16進位制數字。
由於現在是windows時代,故命令列已經沒人使用也非常不方便,故菜農將其嵌入到HotISP軟體內,HotISP的本來工作是用ISP下載程式。
在HotISP,可以選擇主選單“HotWC3”,子選單“MCS51反彙編”,就會出現disasm51視窗介面。
它需要提供disasm51.exe的安裝路徑(已經預設安裝),使用者必須提供BIN格式的檔案!
如果是HEX格式,需要在“檔案轉換”裡進行HEX和BIN的自動轉換。
disasm51可以和keil檔案或keil工程聯動。
使用者可以包含keil內的晶片INC標頭檔案,但必須先轉換為“使用者定義”DEF檔案並儲存。
其輸出為A51檔案,可以在disasm51內的“A51檔案”視窗內檢視,也可以用keil檢視,或其他編輯軟體檢視。
菜農的51超級反彙編disasm51是在1993年編寫的,在DOS上用命令列執行的。
當時發現萬利的模擬器自帶的intel編寫的61反彙編不錯,但是程式碼和資料的分離做的不太好,但優點是可以手工指定從某區域開始反彙編。
菜農是受到還反彙編的啟發產生了編寫反彙編的念頭。
當時需要許多資料格式的轉換,所以想練手,故編寫了許多轉換程式,如hex2bin,bin2hex的這些已經有的命令列程式。
反彙編的要點就是“資料和程式碼的分離”!
菜農的原則是哪怕反彙編出來的全部是資料區,也能透過編譯器再次編譯。
由於51開始必須是從“復位中斷向量”開始執行的,它執行過的,就是“程式區”,未執行到的地方就叫“資料區”。
51還有其他中斷向量,如外部中斷向量,定時器中斷向量,串列埠中斷向量等,但並非一定執行,即可能不存在,如果強行執行,反彙編的程式碼肯定不對。
因為程式中存在“散轉程式”或函式指標,故指令中隱藏了程式的入口地址,而真的入口地址在“變數”或“陣列中隱藏著。
故需要使用者自己新增這些“隱藏向量”,即“強制入口地址表”。
disasm51只支援64K以內的程式的反彙編,故地址為兩個位元組4個16進位制數字。
由於現在是windows時代,故命令列已經沒人使用也非常不方便,故菜農將其嵌入到HotISP軟體內,HotISP的本來工作是用ISP下載程式。
在HotISP,可以選擇主選單“HotWC3”,子選單“MCS51反彙編”,就會出現disasm51視窗介面。
它需要提供disasm51.exe的安裝路徑(已經預設安裝),使用者必須提供BIN格式的檔案!
如果是HEX格式,需要在“檔案轉換”裡進行HEX和BIN的自動轉換。
disasm51可以和keil檔案或keil工程聯動。
使用者可以包含keil內的晶片INC標頭檔案,但必須先轉換為“使用者定義”DEF檔案並儲存。
其輸出為A51檔案,可以在disasm51內的“A51檔案”視窗內檢視,也可以用keil檢視,或其他編輯軟體檢視。