1. 程式人生 > >彙編執行環境搭建及編譯環境搭建

彙編執行環境搭建及編譯環境搭建

宿主機: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中執行

編譯環境搭建完成