組合語言二三事(遇到的各種問題,bug)——不斷更新中
一、上機環境
DOSbox -0.74(64位) 編輯程式:EDIT.COM或其他文字編輯工具軟體,用於編輯源程式。 彙編程式:MASM.EXE,用於彙編源程式,得到目標程式。 連線程式:LINK.EXE,用於連線目標程式,得到可執行程式。 除錯程式:DEBUG.EXE,用於除錯可執行程式。
二、上機過程
組合語言程式上機操作包括:編輯、彙編、連線和除錯幾個階段。 1.編輯源程式 用文字編輯軟體建立、編輯彙編源程式。常用編輯工具有:EDIT.COM、記事本、Word等,此處大蘇蘇也建議sublime text 3,比較舒服。 無論採用何種編輯工具,生成的檔案必須是純文字檔案,所有字元為半形,且副檔名為.asm(檔名不分大小寫,由1~8個字元組成)。
2.彙編 用匯編工具對上述源程式檔案(.asm)進行彙編,產生目標檔案(.obj)等檔案。
彙編過程如下: 在DOS狀態下,輸入命令:MASM MYFILE.ASM(回車),即啟動了彙編程式。 此命令執行後,會出現下面的3行資訊,依次按回車鍵(即選擇預設值)即可建立3個輸出檔案,其副檔名分別為:.OBJ(目標檔案),.LST(列表檔案)和.CRF(交叉引用檔案)。 Object Filename [MYFILE.OBJ]: Source Listing [Nul.LST]: Cross Reference [Nul.CRF]: 如此進行,直至彙編無錯誤,得到目標檔案為止。
3.連線 彙編產生的目標檔案(.obj)並不是可執行的程式,還要用連線程式把它轉換為可執行的EXE檔案。連線過程如下: 在DOS狀態下,輸入命令:LINK MYFILE.OBJ(回車)
4.程式執行 在DOS提示符下輸入可執行程式的檔名或者名字.exe即可執行程式。若程式能夠執行但不能得到預期結果,則就需要檢查源程式,改錯後再彙編、連線、執行。 成功後列表:
出現的問題一:
start報出undefined symbol START 然後我把start改成START,Start,又查詢start和main的區別,,均無效。 後來驚喜的發現是start後面的冒號不是半形符號,不是半形符號!!!!