如何使用visualstudio写一个64位汇编程序
具体过程如下所示:
一 首先使用visual studio新建一个空项目.
二 勾选msam
右键菜单,点击生成依赖项,生成自定义,勾选masm
三 给源文件新建一个后缀名位.asm文件,例如:first_assembly_x64.asm
鼠标右键源文件,点击添加新建文件改名为first_assembly_x64.asm,具体过程如图所示:
四 单独一个汇编程序需要将函数入口点设为main
右键项目属性,点击,选择链接器高级入口点~输入main,具体过程如图所示:
五 汇编程序的代码部分
assembly.asm
1 | ;assembly.asm |
补充零散知识点:
汇编程序中字母开头的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
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
