說明
最近因為想寫一套自己的作業系統,所以又開始使用組合語言(Assembly Language)。
小時候爸爸媽媽有買一套MASM 6.0給我,不過那已經是十幾年前的事了,想當然耳目前的作業系統應該是不能用了。
上網研究一下才發現,原來,Visual Studio中還是有內建MASM,而且新版還可以組譯x64的程式碼。下面介紹一下我Google到的結果。
解決方法
1. 開啟VS2012,並建立空白的VC++專案。
2. 右點專案,並選擇「Build Customizations」。
3. 勾選「masm」。
4. 加入一個新的文字檔案,取名為「test.asm」 (或其他您想要的名稱)。
5. 右點專案,選「Property」,如果您都成功按照之前的步驟的話,這邊會出現「Microsoft Macro Assembler」的標籤頁 。
6. 接下來須設定Linker,以便正確進行連結。在前一個畫面中選取「Linker / System / SubSystem」,並設定「Windows」之設定值 (直接下拉選單選取即可)。
7. 同一個畫面,選取「Linker / Advanced / EntryPoint」以設定程式進入點。
8. 同一個畫面,選取「Linker / Advanced / Image Has Safe Exception Handlers」,設定為「No」。
9. 安裝asmHighlighter,請點選連結進入網站下載並安裝,這樣.asm的檔案,才會根據語法顯示不同顏色。
(安裝後,在編輯畫面中,若是你的程式碼後面有註解之時,按下「[Ctrl + K] + [Ctrl + D]」,則asmHighlighter會幫你計算程式碼指令大小,非常有用)。
10. 在VS2012(或VS2010)中,若asmHighlighter沒作用時,請刪除以下機碼:
「HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\FontAndColors\Cache」 (清除字型及顏色快取)。
參考
MASM Assembly in Visual Studio 2010
Assembly Programming with Visual Studio 2010/2012