簡(jiǎn)介 :
在學(xué)習(xí)王爽老師的匯編課程中
經(jīng)常需要使用 :
1. masm.exe 對(duì) .asm 進(jìn)行編譯
2. link.exe 對(duì) .obj 進(jìn)行鏈接
3. debug.exe 進(jìn)行可執(zhí)行程序的調(diào)試
而這三步都需要在命令行下進(jìn)行 ,
因此經(jīng)常需要使用 cd 命令先切換工作目錄...
因此寫(xiě)了這個(gè)比較方便的腳本
使用的時(shí)候直接將 .asm 文件拖放到腳本上即可一次性完成編譯鏈接 ,
并直接將可執(zhí)行文件用 debug 進(jìn)行裝載以便調(diào)試
環(huán)境要求 :
1. 需要根據(jù)使用方法配置 masm.exe 以及 link.exe 存放的目錄
代碼 :
:::::::::::::::::::::::::::::::::::::::::::::::
:: 8086匯編自動(dòng)編譯調(diào)試腳本 ::
:: 作者 : 王一航 ::
:: 使用方式 : 將 .asm 文件拖動(dòng)到腳本上即可 ::
:::::::::::::::::::::::::::::::::::::::::::::::
:: 獲取腳本所在目錄
echo %~dp0
:: 獲取被拖放的文件的完整路徑
set fullfilepath=%~dp1%~nx1
:: 將源碼文件復(fù)制到腳本所在目錄
copy "%fullfilepath%" "%~dp0"
:: 進(jìn)入工作目錄
cd %~dp0
:: 設(shè)置文件名
set filename_all=%~nx1
:: 截取文件名(去掉后綴名)
:: 由于后綴名為三位 , 因此硬編碼不會(huì)有影響
set filename=%filename_all:~0,-4%
:: 匯編
masm %filename%.asm; || echo "Complie error!" && pause
:: 鏈接
link %filename%.obj; || echo "Link error!" && pause
:: 將編譯獲取的 .obj .exe 文件復(fù)制回去
copy "%filename%.obj" "%~dp1"
copy "%filename%.exe" "%~dp1"
:: 將腳本目錄中的 .asm .obj .exe 進(jìn)行刪除
del "%filename%.asm"
del "%filename%.obj"
del "%filename%.exe"
:: 切換工作目錄
cd "%~dp1"
:: 載入 debug 進(jìn)行調(diào)試
debug %filename%.exe