聲明:本文使用32位masm,代碼與16位,64位不同
---------------------------------------------------------------------------------------------------------------------------
遇到問題:
1、LINK 1104:
在網上找了很久,並沒有解決問題。
解決方法:
點擊visual studio編譯后的錯誤提示:LINK 1104,查看官方文檔
其中一條原因:路徑過長!(= =,沒錯,就是這個)
我遇到的情況是:在路徑下創建項目,第一個編寫的文件正常運行,修改文件名或創建新文件后編譯報錯:LINK 1104
我的路徑是:D:\project\Git\Assembly\Assembly Language For x86 Processors\chapter1
修改路徑:D:\project\Git\
沒有問題!
---------------------------------------------------------------------------------------------------------------------------------
1、官方下載安裝器,安裝社區版
2、選擇:使用C++的桌面開發(或者選擇:使用C++的游戲開發)
選擇安裝位置,共需要8G左右,占用我C盤2.多G(我的強迫症在吼)
3、克隆或簽出代碼
登錄
and then,如果沒有遠程庫需要先創建一個,不創建也沒關系
3、安裝擴展
再順便安裝個匯編的代碼高亮
4、創建第一個匯編項目:AddTwo.asm(這不是我想要的Helloworld!)
OK,上圖
雙擊或者點擊“下一步”
關鍵來了———生成自定義:
鈎選masm(.targets,.props)
來創建.asm文件,或者右鍵“源文件”--“添加”--“新建項”
畫重點:不要用“Add New File”擴展
用插件快速創建的文件報錯:
then,回到正道:(為什么不用:ctrl+shift+A創建)
Irvine 大佬的代碼(學匯編可以看Assembly Language for x86 Processors的中文看版:《匯編語言 基於x86處理器》):
; AddTwo.asm - adds two 32-bit integers. ; Chapter 3 example .386 .model flat,stdcall .stack 4096 ExitProcess proto,dwExitCode:dword .code main proc mov eax,5 add eax,6 invoke ExitProcess,0 main endp end main
OK!ctrl+F5,運行,走你!
nice!
F5調試:
先打個斷點
來深入了解寄存器吧!
如果沒有寄存器窗口
開啟匯編二進制之旅!
wait! 還有一個 列表文件
沒有.lst后綴的列表文件
配置:
1、右鍵項目,屬性
2、配置
3、重新運行(如果出現LNK 1104的錯誤,並且確定路徑沒問題,可以多嘗試幾次重新創建項目)
查看項目目錄下:
有了!它可以幫助更好的理解匯編代碼。