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即可。

相关推荐
李火火的安全圈7 小时前
【系统安全】Windows文件资源管理器欺骗漏(CVE-2025-24054、CVE-2025-50154)
windows
小陈phd14 小时前
高级RAG策略学习(一)——自适应检索系统
人工智能·windows·语言模型
初学小白...14 小时前
泛型的通配符
windows
Pocker_Spades_A19 小时前
Python快速入门专业版(一):Windows/macOS/Linux 系统环境搭建(附常见报错解决)
windows·python·macos
一心09220 小时前
SQL(window)日志在linux 下查看
linux·数据库·windows·sql·日志
私人珍藏库20 小时前
[Windows] PDF工具箱 PDF24 Creator 11.28.0
windows·pdf
勤劳打代码1 天前
独辟蹊径 —— NSIS 自定义 EXE 应用名称
windows·flutter
深兰科技1 天前
深兰科技AI问诊助手走访打浦桥街道社区卫生服务中心
人工智能·windows·github·postman·visual studio·深兰科技·ai问诊
ajassi20001 天前
开源 C++ QT Widget 开发(十一)进程间通信--Windows 窗口通信
linux·c++·windows·qt·开源
PEI042 天前
Java集合遍历的方法有哪些
java·windows·python