VS2022汇编环境搭建
- 使用VS2022搭建汇编语言运行环境
- Step 1 安装VS2022
- Step 2 创建项目
使用VS2022搭建汇编语言运行环境
使用Visual Studio 2022 搭建汇编语言项目,运行汇编语言代码。
Step 1 安装VS2022
自行到官网下载安装,选择C++编程环境。
Step 2 创建项目
- 点击初始框右下方的 Create a new project
- 点击Empty Project 项目,设置项目名和项目位置
- 右键 Source File ,点击 add ,再点击New Item,创建资源文件
- 点击 C++ File(.cpp) 创建文件,这里将文件后缀名改成 asm,作为汇编语言源文件,汇编代码写在这里。
- 右键左边项目名的小三角,点击 Build Dependencies,再点击 Build Customizations… ,设置依赖
- 点击 masm 中的那一项,然后点击OK
- 如图,点击 Local Windows Debugger 的小三角,再点击最后一项 XXX Debug Properties
- 点击 linker 项,再找到 Advenced 项,设置 Entry Point 为 main ,点击 确认
- 在创建的.asm文件中输入以下代码:
EXTERN GetStdHandle : PROC
EXTERN WriteFile : PROC
EXTERN ExitProcess : PROC
.DATA?
hFile QWORD ?
BytesWritten DWORD ?
.DATA
hello BYTE 'Hello world!', 13, 10
.CODE
main PROC
; https://blogs.msdn.microsoft.com/oldnewthing/20160623-00/?p=93735
sub rsp, 40 ; Shadow space (4 * 8) & 1 parameter (8 bytes)
; https://docs.microsoft.com/en-us/cpp/build/stack-allocation
and spl, -16 ; Align to 16
; https://msdn.microsoft.com/library/windows/desktop/ms683231.aspx
mov ecx, -11 ; DWORD nStdHandle = STD_OUTPUT_HANDLE
call GetStdHandle ; Call WinApi
mov hFile, rax ; Save returned handle
; https://msdn.microsoft.com/library/windows/desktop/aa365747.aspx
mov rcx, hFile ; HANDLE hFile (here: Stdout)
lea rdx, hello ; LPCVOID lpBuffer
lea r9, BytesWritten ; LPDWORD lpNumberOfBytesWritten
mov r8d, LENGTHOF hello ; DWORD nNumberOfBytesToWrite
mov qword ptr [rsp+32], 0 ; LPOVERLAPPED lpOverlapped = NULL
call WriteFile ; Call WinAPI
exit:
; https://msdn.microsoft.com/library/windows/desktop/ms682658.aspx
xor ecx, ecx ; Set RCX to null for return value
call ExitProcess ; Call WinAPI to exit
main ENDP
END
- 点击 Local Windows Debugger,运行
接下来开始汇编之旅吧!