Visual Studio-X64汇编编写

纯64位汇编:

复制代码
includelib ucrt.lib
includelib legacy_stdio_definitions.lib
includelib user32.lib

extern printf:proc
extern MessageBoxA:proc

.data
szFormat db "%s",0
szHello db "HelloWorld",0
szRk db "123",0

.code
start proc
	sub rsp,28h
	mov rdx,offset szHello
	mov rcx,offset szFormat
	call printf
	mov r9,0
	mov r8,offset szHello
	mov rdx,offset szRk
	mov rcx,0
	call MessageBoxA
	add rsp,28h
	ret
start endp
end 

注意:

1.平台工具集要选VS2015

2.属性->生成依赖项->masm

3.链接器->高级->入口点


64位混合编程(C++/Asm):一定要严格执行代码规范,不然各种报错

1.asm:
复制代码
includelib legacy_stdio_definitions.lib
includelib user32.lib

extern printf:proc

.data
	szformat db "%s\n",0

.code
Myadd proc
	sub rsp,28h
	add rcx,rdx
	mov	rax,rcx
	add rsp,28h
	ret
Myadd endp

Myprintf proc
	sub rsp,28h
	mov rdx,rcx
	lea rcx,szformat
	call printf
	add rsp,28h
	ret
Myprintf endp
end 
main.cpp:
复制代码
#include <iostream>
#include <windows.h>

EXTERN_C UINT64 Myadd(UINT64 a, UINT64 b); 
EXTERN_C void Myprintf(const char* szbuffer);

int main()
{
	UINT64 num = Myadd(1, 2);
	printf("%lld\r\n", num);
	Myprintf("hello word");
	system("pause");
	return 0;
}

注意:

如果生成报错,并且没有属性里面没有**Microsoft Macro Assembler,**换成VS2015也没有的话,

就在源文件里面找到.asm后缀的文件右键属性->常规->项类型->Microsoft Macro Assembler即可。

相关推荐
AI袋鼠帝21 小时前
Claude4.5+Gemini3 接管电脑桌面,这回是真无敌了..
人工智能·windows·aigc
獨枭1 天前
Windows 下安装与使用 Miniconda 完整指南
windows
命里有定数1 天前
保姆级教程:在 Windows (WSL2) 下本地部署 Qwen3-ASR
windows
lucky67071 天前
Windows 上彻底卸载 Node.js
windows·node.js
编程小白20261 天前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习
万法若空1 天前
8086/8088实模式的内存布局
汇编
凯子坚持 c1 天前
CANN 性能剖析实战:从原始事件到交互式火焰图
windows·microsoft
开开心心就好1 天前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
獨枭1 天前
PyCharm 跑通 SAM 全流程实战
windows
仙剑魔尊重楼1 天前
音乐制作电子软件FL Studio2025.2.4.5242中文版新功能介绍
windows·音频·录屏·音乐·fl studio