轉載:https://blog.csdn.net/infoworld/article/details/45085415
轉載:https://blog.csdn.net/u014792304/article/details/53373430
轉載:https://www.cnblogs.com/sunylat/p/6242141.html
轉載:https://www.cnblogs.com/del/archive/2010/04/03/1703689.html
轉載:https://www.cnblogs.com/iBinary/p/7508144.html(基本概念介紹)
轉載:https://arthurchiao.github.io/blog/x86-asm-guide-trans-cn-zh/(翻譯國外一篇文章)
轉載:http://www.ruanyifeng.com/blog/2018/01/assembly-language-primer.html(入門教程)
使用vs編譯x86匯編語言無需安裝MASM,因為所有的vs版本都集成了MASM12.0(All versions of Visual Studio include the Microsoft Assembler (MASM) version 12.0.)。
其安裝目錄(C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin)都會有一個ml.exe,這是MASM匯編器和鏈接器。
一、設定“開始執行(不調試)”(Start Without Debugging command)
設定這個的目的是:使得匯編程序執行不需要經過調試階段
1.進入“工具”->“自定義”
2.選擇 “命令”選項卡,並單擊“添加命令”
3.在添加“添加命令”對話框里找到“調試”類別,並在右側命令欄中找到“開始調試(不執行)”,最后單擊確定按鈕
4.最后關閉“自定義”對話框
二 、開始編寫自己的x86匯編程序了
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
;程序模板 .386 .model flat,stdcall .stack 4096 ExitProcess PROTO, dwExitCode:DWORD;函數聲明 .data ;在這里聲明變量 .code main PROC ;在這里編寫自己的代碼 INVOKE ExitProcess,0 main ENDP END main
7.輸出,調試時選擇菜單 調試-》窗口-》寄存器 就能看到寄存器值。
三、匯編代碼高亮
首先要下載usertype.dat,放到C:\Microsoft Visual Studio 12.0\Common7\IDE 下(我安裝的是vs2013)。
然后執行“工具-選項”,照下圖的做法,點擊“添加”,然后確定。
重啟vs.現在已經支持匯編語法高亮了
點擊下載:usertype.dat