1. 獲取工具
Windows和Mac都下載這個,僅Dos環境有區別,彙編時用到的文件是通用的
鏈接: https://pan.baidu.com/s/1KWMNPnrbNGPytZ9FZNM8GA 密碼: 0mp7
2. 安裝Dos環境
下載完成後,Windows根據dosbox安裝及dosbox下masm的使用.doc
安裝
Mac直接點擊Boxer.app
即可運行Dos環境(後文將Boxer和dosbox統稱爲dosbox),不推薦用mac版的dosbox,版本過於久,且不能粘貼(不可忍)
注意,其他文件後面需要用到(特別留意MASM
文件夾,裏面有MASM.EXE和LINK.EXE彙編時用),妥善保存
3. 嘗試
3.1 編寫代碼
用任意編輯器寫完代碼,將後綴名改爲.asm
把源代碼文件放到MASM
文件夾中,使得源代碼文件與MASM.EXE、LINK.EXE兩程序在同一層
3.2 掛載目錄
掛載
Dosbox是虛擬機環境,想要在其中訪問本機的文件,需要將本機的文件夾掛載到dosbox中
例mounnt c d:\MASM5\MASM
是將本機D盤中的\MASM5\MASM掛載到dosbox的C盤
切換虛擬磁盤
Dosbox雙擊打開默認是在Z盤中,執行完上面的掛載操作後,鍵入命令c:
切換到doxbox的C盤中,此時操作C盤中的文件,(例)即是操作本機中d:\MASM5\MASM中的文件
簡單指令
更多命令請查DOS命令
切換磁盤:盤符:
。例,c:
切換到C盤
掛載:mount 盤符 本機文件夾
。例,mount c d:\MASM5\
將本機中d:\MASM5\掛載到dosbox的C盤中
卸載:unmount 盤符
。例,先離開想要卸載的磁盤(切換到其他磁盤),再執行unmount c
卸載掛載在C盤上的文件夾
切換目錄:cd 目標路徑
,.
是當前文件夾,..
是上一文件夾。例,cd ./MASM
切換到當前你文件夾中的MASM文件夾
列出所有文件:dir
。例,當前在C:\MASM5\中年,輸入dir
將列出當前文件夾中的所有文件和文件夾
3.3 開始彙編
確保環境
確保編寫的彙編源代碼文件在MASM文件夾中,即與DEBUG.EXE、MASM.EXE、LINK.EXE在同一文件夾內。若沒有,快把源文件拿過來放一起
彙編和鏈接
作爲初學者,先不關係具體發生了什麼
兩條命令
masm 文件名;
link 文件名;
這就是要求把源代碼文件和這些工具放在同一個文件夾內的原因,可以不用寫全路徑,直接輸名字即可使用
第一行,運行結果得到中間文件XXX.OBJ。注意1.不加擴展名,2.加分號(爲了快速處理)。不加分號需要手動配置一些參數
第二行,運行結果得到可執行文件XXX.EXE。注意1.不加擴展名,2.加分號(爲了快速處理)。不加分號需要手動配置一些參數
3.4 使用DEBUG工具
使用DEBUG,可以查看程序運行時的內存和寄存器的數據
啓動
命令:debug XXX.EXE
,注意加上.exe
擴展名
常用命令
更多命令請點擊
查看內存:d
,在後面加十六進制偏移地址值,可以查看相應地址的內存
查看寄存器:r
單步執行:t
,輸入一次執行一步,並顯示寄存器值
快速執行:g
,不打斷執行之後的代碼
退出:q
,到達程序最後後,需手動退出。繼續單步調試會執行後面的代碼
4. 示例
代碼
code segment
assume cs:code
start:
; 給ax寄存器傳值,十六進制數b
mov ax, 0bh
mov ax, 4c00h ; 4c00h表示程序退出,並返回00,傳遞退出信息
int 21h
code ends
end start
截圖
-
掛載成功後,切換到c盤,並列出當前文件夾內容
-
彙編,兩步
鏈接時有無棧段警告,可忽略
- 使用DEBUG示例
執行到第5行時,AX值被修改爲BH,緊接着又被修改成4C00H