我們需要安裝兩個東西,NASM 和 GCC,用來將 .asm 程式編譯成 Object file,並連結成可執行檔案
NASM
到 NASM 網站上下載並安裝 NASM
將 NASM 的路徑加入系統環境變數Path (預設應該是安裝在 C:\Users\用戶名\AppData\Local\bin\NASM
)
加入後可以在 CMD 輸入
nasm -v
來查看是否設定成功
如果設定成功應該如下
GCC
下載並安裝 MSYS2
進入 MSYS2 MINGW64
輸入
pacman -Syu
pacman -S mingw-w64-i686-gcc
然後將 mingw32 加入系統環境變數Path(預設是安裝在 C:\msys64\mingw32\bin
)
加入後重啟電腦
然後在 CMD 輸入
gcc --version
成功安裝應該顯示如下
VSCode
進入 VSCode 並新增一個資料夾(路徑不要有中文)
按 Ctrl+Shift+B
選擇 設定建置工作 >> 從範本建立 task.json 檔案 >> Others
將 task.json
更改為如下
// task.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Build, Link and Run (NASM + GCC)",
"type": "shell",
"command": "cmd",
"args": [
"/c",
"nasm -f win32 ${file} -o ${fileDirname}/${fileBasenameNoExtension}.o && gcc \"${fileDirname}/${fileBasenameNoExtension}.o\" -o \"${fileDirname}/${fileBasenameNoExtension}.exe\" -m32 -nostartfiles -lmsvcrt && \"${fileDirname}/${fileBasenameNoExtension}.exe\""
],
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
執行
我們創建一個 hello.asm
檔案
; hello.asm
section .data
msg db "Hello World!", 0xd, 0xa, 0
section .text
global _main
extern _printf
_main:
push msg
call _printf
add esp, 4
xor eax, eax
ret
按下 Ctrl+Shift+B
他就會自動編譯並執行了