彙編執行環境搭建及編譯環境搭建
宿主機:ThinkPad E431 Windows10專業版
作者:不笑貓喲
參考資料:
https://blog.csdn.net/doniexun/article/details/45438457
https://blog.csdn.net/xiang_shao344/article/details/77941353
分享資料:
連結:https://pan.baidu.com/s/1UogLNoyrFp0oM1_QJY2FAQ密碼:xjua
執行環境搭建:
下載DOSBOX
工具介紹:DOSBox 是一個 DOS 模擬程式,由於它採用的是 SDL 庫,所以可以很方便的移植到其他的平臺。目前,DOSBox 已經支援在 Windows、Linux、MacOS X、BeOS 、palmOS、Android 、webOS、os/2等系統中執行。不少DOS下的遊戲都可以直接在該平臺上執行。
工具官網:http://www.dosbox.com/
專案主頁:http://sourceforge.net/projects/dosbox/
下載連結:http://sourceforge.net/projects/dosbox/files/dosbox/0.74/DOSBox0.74-win32-installer.exe/download(32位)
說明:由於專案已經停更,目前官網上指出,DOSBOX可以運行於32位和64位的Windows Vista和Windows 7之上,親測windows10專業版亦可執行
安裝DOSBox
安裝下載到的DOSBox0.74-win32-installer.exe,直接一路Next完成安裝。
配置DOSBOX
執行DOSbox會彈出兩個視窗,如下圖,我們需要用到的是較小的那個視窗
用記事本開啟C:\Users\xiaof\AppData\Local\DOSBox\dosbox-0.74.conf 路徑中中xiaof是使用者名稱,改成自己的使用者名稱即可,若檔案不存在,執行一下DOSbox即可
開啟dosbox-0.74.conf後,如下圖,找到[autoexec],在[autoexec]下方新增下面兩行,掛在路徑可以自己自定義,但路徑必須存在
MOUNT C D:\DOSBox-0.74\mount # 將目錄D:\DOSBox-0.74\mount掛載為DOSBOX下的C:
set PATH=$PATH$;D:\DOSBox-0.74\mount # 將D:\DEBUG寫入環境變數PATH中
測試DOSbox
1、 在掛載路徑新建資料夾或檔案
2、 開啟DOSbox
3、 輸入C:進入DOSbox的C盤
4、 輸入dir檢視是否有自己新建的資料夾或檔案
5、 3、4步若是成功則說明掛載成功,否則不成功
6、 執行環境搭建完畢
編譯環境搭建
方式一:
1、 解壓網友分享的masm.rar解壓到掛載路徑路徑下
2、 執行DOSBOX,在命令符C:\>下輸入命令:EDIT 檔名.asm,啟動EDIT.EXE進入程式碼編輯狀態,並輸入如下樣例程式:
code segment
assume cs:code
start:
mov ax,5h
mov bx,6h
add ax,bx
mov ah,4ch ; 呼叫DOS的4C號功能
int 21h ; 退出DEBUG狀態,返回DOS
code ends
end start
3、 當進入DOSBOX編輯介面,隨意可以按Windows鍵退出DOSBOX編輯介面;EDIT及以下命令的拼寫忽略大小寫。
4、 儲存檔案後返回DOSBOX的命令列,輸入命令:MASM 檔名.asm,生成目標檔案檔名.OBJ(生成過程中可以修改目標檔名,直接回車可保持預設目標檔名)。
5、 此時可能生成三個檔案:*.obj、*.lst和*.crf檔案(Windows10 x64系統可能只會生成*.obj檔案)。其中,列表檔案*.lst和交叉引用檔案非必選,前者是組合語言彙編的機器語言與組合語言對照表,可用於除錯;後者給出了使用者定義的所有符號和對每個符號定義、引用的行號。
6、 輸入命令:LINK 檔名.OBJ,連結生成可執行檔案檔名.EXE。
7、 由於在上述程式碼中未定義堆疊段,故在連結時會提示:LINK : warning L4021: no stack segment,因不會影響執行檔案的生成,故暫時忽略。
8、 此時可能生成兩個檔案:*.exe和*.map檔案(Windows10 x64系統可能只會生成*.exe檔案)。其中,地址對映檔案*.map給出記憶體地址分配的有關資訊。
輸入命令:DEBUG 檔名.EXE,在DEBUG的命令提示符“-”出現後開始除錯,以下是部分除錯命令及截圖:
輸入命令:R,檢視程式執行前的暫存器組初始值;
輸入命令:U,檢視程式反彙編程式碼。從反彙編程式碼中可看出,變數會被彙編為直接定址方式,使用變數在資料段內的有效地址表示。
輸入命令:T,單步除錯;
輸入命令:D,觀察記憶體變化(D後不帶地址或範圍,預設顯示上一個D命令之後的80位元組內容);
輸入命令:G 地址,程式從當前位置直接執行到指定地址處停下。
輸入命令:E 地址修改記憶體中的內容,如:E DS:0100,輸入空格可逐個位元組修改,回車停止修改。
方式二:
1. MASM32
2. 右鍵此電腦→屬性→高階系統設定→環境變數
3. 在系統變數中找到Path變數
4. 雙擊Path變數→新建→如下圖,貼上masm32安裝路徑下的bin路徑
5. 一路確定即可
6. 開啟masm編輯程式(一般會在桌面產生一個masm的快捷方式)
7. 儲存檔案後,點選下圖的紅框圖示進入編譯介面
8. 在彈出來的dos介面進入彙編檔案所在的路徑ml /c 檔名.asm
9. 完成後上步後會在原始檔所在目錄下生成對應的檔名.obj
10. link16 TEST.obj即可,出現的什麼選項不用管直接回車
11. 完成上步後會生成exe檔案
12. 生成的exe檔案可以在DOSbox中執行
編譯環境搭建完成