当前位置: 首页 > article >正文

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


http://www.kler.cn/news/327525.html

相关文章:

  • stm32单片机学习 - MDK仿真调试
  • Redis篇(缓存机制 - 多级缓存)(持续更新迭代)
  • MySQL—表优化
  • 平衡二叉搜索树删除的实现
  • Spring Cloud全解析:服务调用之OpenFeign集成OkHttp
  • 一次阿里云ECS免费试用实践
  • leetcode-链表篇4
  • MATLAB编写的RSSI在三维空间上的定位程序,锚点数量无限制(可自定义),带中文注释
  • 如何获取钉钉webhook
  • docker容器mysql数据备份 mysql容器无法启动备份数据
  • 【docker学习】Linux系统离线方式安装docker环境方法
  • 【Linux系列】CMA (Contiguous Memory Allocator) 简单介绍
  • IP地址与5G时代的万物互联
  • 享元模式
  • 【MATLAB源码-第178期】基于matlab的8PSK调制解调系统频偏估计及补偿算法仿真,对比补偿前后的星座图误码率。
  • 智慧农业案例 (一)- 自动化机械
  • vue2圆形标记(Marker)添加点击事件不弹出信息窗体(InfoWindow)的BUG解决
  • 05-函数传值VS传引用
  • 2.点位管理|前后端如何交互——帝可得后台管理系统
  • 基础漏洞——SSTI(服务器模板注入)
  • leetcode-134. 加油站-贪心策略
  • 数据结构与算法学习(2)
  • 汽车灯光系统详细介绍
  • 【机器学习】---深入探讨图神经网络(GNN)
  • 【STM32】 TCP/IP通信协议(3)--LwIP网络接口
  • 将 Intersection Observer 与自定义 React Hook 结合使用
  • 基于RPA+BERT的文档辅助“悦读”系统 | OPENAIGC开发者大赛高校组AI创作力奖
  • ruoyi-python 若依python版本部署及新增模块
  • 基于springboot+微信小程序社区超市管理系统(超市3)(源码+sql脚本+视频导入教程+文档)
  • 使用 CMake 构建 C 语言项目