[筆記] 如何在 Visual Studio 上撰寫組合語言 Assembly
因為作業需要所以來筆記一下
既然是使用 Visual Studio(之後簡稱 VS)所來開發了,自然就需要 Visual Studio 了,底下截圖呢,我使用的是 Visual Studio 2013,當然其他版都是可以的,各版本大同小異不會差太多...
另外呢就是組合語言(之後簡稱 ASM)Intel 函式庫 Irvine 的安裝檔(選自己的 VS 版本):http://kipirvine.com/asm/examples/
專案設定:
在 Visual C++ 中建立一個空專案,自己取一個名字(如果之後懶惰不想重複設定也可以一個專案重複使用)
之後對著專案按右鍵,然後移到「組建相依性」選擇「組建自訂」
勾選「masm」之後按確定
再對專案按右鍵,這次選最底下的「屬性」
這時候如果左邊底下有出現 「Microsoft Macro Assembler」就已經成功設置一半了!
點選「Microsoft Macro Assembler」次目錄的「General」之後中間有一個「Inckude Paths」在後面直接輸入「C:\Irvine」(預設位置,如果你把函式庫安裝在別的地方請自行替換)
再來到上面的「連結器」選擇底下的次目錄「一般」裡的「其他函式庫目錄」一樣也是輸入「C:\Irvine」
底下的目錄「輸入」裡面,然後直接在「其他相依性」最前面加上「Irvine32.lib;」
底下的目錄「系統」裡面「子系統」改成「主控台 (/SUBSYSTEM:CONSOLE)」右邊箭頭按下去有選項,不用自行輸入
可選設定(Optional):
有些老師會要求作業要繳交或檢視 lst 檔,那要生成這個檔案要在「Microsoft Macro Assembler」次目錄的「Listing File」裡設定
在「Assembled Code Listing File」後面加上「$(ProjectName).lst」
這樣就會在資料夾裡出現一個跟你專案名稱一樣的 .lst 檔案了
建立檔案:
之後就很簡單了,建立一個檔案,把檔名取好,副檔名改 .asm 即可
範例程式:
那大概就是這樣囉
是說這個筆記居然是在學期快結束才出現,到底是拖了多久ww
既然是使用 Visual Studio(之後簡稱 VS)所來開發了,自然就需要 Visual Studio 了,底下截圖呢,我使用的是 Visual Studio 2013,當然其他版都是可以的,各版本大同小異不會差太多...
另外呢就是組合語言(之後簡稱 ASM)Intel 函式庫 Irvine 的安裝檔(選自己的 VS 版本):http://kipirvine.com/asm/examples/
專案設定:
在 Visual C++ 中建立一個空專案,自己取一個名字(如果之後懶惰不想重複設定也可以一個專案重複使用)
之後對著專案按右鍵,然後移到「組建相依性」選擇「組建自訂」
勾選「masm」之後按確定
再對專案按右鍵,這次選最底下的「屬性」
這時候如果左邊底下有出現 「Microsoft Macro Assembler」就已經成功設置一半了!
點選「Microsoft Macro Assembler」次目錄的「General」之後中間有一個「Inckude Paths」在後面直接輸入「C:\Irvine」(預設位置,如果你把函式庫安裝在別的地方請自行替換)
再來到上面的「連結器」選擇底下的次目錄「一般」裡的「其他函式庫目錄」一樣也是輸入「C:\Irvine」
底下的目錄「輸入」裡面,然後直接在「其他相依性」最前面加上「Irvine32.lib;」
底下的目錄「系統」裡面「子系統」改成「主控台 (/SUBSYSTEM:CONSOLE)」右邊箭頭按下去有選項,不用自行輸入
可選設定(Optional):
有些老師會要求作業要繳交或檢視 lst 檔,那要生成這個檔案要在「Microsoft Macro Assembler」次目錄的「Listing File」裡設定
在「Assembled Code Listing File」後面加上「$(ProjectName).lst」
這樣就會在資料夾裡出現一個跟你專案名稱一樣的 .lst 檔案了
建立檔案:
之後就很簡單了,建立一個檔案,把檔名取好,副檔名改 .asm 即可
範例程式:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
INCLUDE Irvine32.inc | |
.data | |
buffer BYTE "Hello ASM!", 0 | |
.code | |
main PROC | |
mov edx, OFFSET buffer | |
call WriteString | |
call Crlf | |
call WaitMsg | |
exit | |
main ENDP | |
END main |
那大概就是這樣囉
是說這個筆記居然是在學期快結束才出現,到底是拖了多久ww
留言
張貼留言