vs2010彙編開發環境搭建
阿新 • • 發佈:2019-02-15
1. 雖然使用MASM32也可以編譯執行彙編程式,但是既然裝了VS2010,它也能支援編譯執行彙編吧.不然微軟的開發人員難道還不用vs寫彙編程式了?
2. x64程式是大勢所趨,win32(只能支援4G記憶體)逐漸退出舞臺了,所以x64編譯彙編也是必然要知道的.
win32專案步驟:
1.建一個空專案,必須先建空專案,改現成的C++專案為assembler專案可能會造成編譯不過.
2.選中專案右鍵 “生成自定義”,選擇MASM生成規則.
3.選中原始檔右鍵-》新增-》新建項
4.選中專案右鍵-》屬性-》連結器-》系統-》 子系統選 “控制檯(SUBSYSTEM:CONSOLE)”
5.選中專案右鍵-》屬性-》連結器-》高階-》 入口點 填 "main"
6.測試程式碼編譯執行:
- TITLE Add and Subtract (AddSub.asm)
- ; This program adds and subtracts 32-bit integers.
- ; Last update: 2/1/02
- INCLUDELIB kernel32.lib
- .MODEL flat,stdcall
- ;.code
- ExitProcess PROTO, ; exit program
-
dwExitCode:DWORD ; return code
- .data
- .code
- main PROC
- mov eax,10000h ; EAX = 10000h
- add eax,40000h ; EAX = 50000h
- sub eax,20000h ; EAX = 30000h
- push 0h
- call ExitProcess
- main ENDP
- END main
x64彙編例子:
1. 建立過程和win32一樣,之後轉換為x64配置. 在活動解決方案平臺新建 選擇x64.
2. 測試程式碼,x64和win32的一些Directive不一樣了,使用的64位暫存器名也不一樣,RAX?,詳細不同請參考微軟說明文件
- TITLE Add and Subtract (AddSub.asm)
- ; This program adds and subtracts 32-bit integers.
- ; Last update: 2/1/02
- ;.MODEL flat,stdcall x64 not support
- .code
- EXTERN ExitProcess:PROC
- INCLUDELIB kernel32.lib
- .data
- .code
- main PROC
- mov eax,10000h ; EAX = 10000h
- add eax,40000h ; EAX = 50000h
- sub eax,20000h ; EAX = 30000h
- push 0h
- call ExitProcess
- main ENDP
- END
- ;END main,donot use main
3.除錯