具体过程如下所示:

一 首先使用visual studio新建一个空项目.

使用visual studio新建一个空项目步骤一. 使用visual studio新建一个空项目步骤二

二 勾选msam

 右键菜单,点击生成依赖项,生成自定义,勾选masm
勾选msam步骤一 勾选msam步骤二

三 给源文件新建一个后缀名位.asm文件,例如:first_assembly_x64.asm

鼠标右键源文件,点击添加新建文件改名为first_assembly_x64.asm,具体过程如图所示:

给源文件新建一个后缀名位.asm文件步骤一 给源文件新建一个后缀名位.asm文件步骤二

四 单独一个汇编程序需要将函数入口点设为main

右键项目属性,点击,选择链接器高级入口点~输入main,具体过程如图所示:

将函数入口点设为main步骤一 将函数入口点设为main步骤二

五 汇编程序的代码部分

assembly.asm

1
2
3
4
5
6
7
8
9
;assembly.asm
.code
main proc
sub rsp,28h
mov rax,0FFFFFFFFFFFFFFFFh
add rsp,28h
ret
main endp
end

补充零散知识点:

汇编程序中字母开头的16进制数字需要加0。

函数调用约定:
1.x86汇编中有四种 _cdecl, stdcall ,thiscall ,fastcall。
2.x64汇编中 _fastcall 使用的前4个寄存器rcx rdx r8 r9,后面的寄存器需要使用堆栈传参 ,程序从rsp+0x20+8开始执行.

32位的寄存器eax,ebx,ecx,edx,esi,edi,esp,ebp升级到64位rax rbx rcx rdx rsi rdi rsp rbp,扩展了几个通用寄存器r8 r9 r10 r11 r12 r13 r14 r15

32位汇编eflags升级到64位汇编rflags(只使用了32位)。

操作内存地址时:dw配16位寄存器(如dx),dq配64位寄存器rax