Visual Studio-X64汇编编写方法

 更新时间:2024年09月30日 10:00:47   作者:向你扔鸡爪  
本文介绍了在Visual Studio中配置64位汇编环境和C++与汇编的混合编程的方法,详细说明了设置平台工具集、生成依赖项、链接器等步骤,并提供了解决可能出现的编译错误的方案,感兴趣的朋友跟随小编一起看看吧

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

到此这篇关于Visual Studio-X64汇编编写的文章就介绍到这了,更多相关Visual Studio-X64汇编内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • 汇编语言 跳转指令与C语言的条件分支

    汇编语言 跳转指令与C语言的条件分支

    这篇文章主要介绍了汇编语言 跳转指令与C语言的条件分支,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 汇编基础程序编写教程示例

    汇编基础程序编写教程示例

    这篇文章主要为大家介绍了汇编基础,程序编写教程示例,文中附含详细的图文示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • 利用DOSBox运行汇编的详细步骤

    利用DOSBox运行汇编的详细步骤

    本文分步骤给大家介绍了利用DOSBox运行汇编,起初是利用VS2017进行配置,但后面运行好像有些问题,就想到用DOSBox,本文分步骤给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2022-03-03
  • 汇编语言显示功能实现教程详解

    汇编语言显示功能实现教程详解

    这篇文章主要为大家介绍了汇编语言显示功能的实现过程,文中通过问题实例分析来为大家进行详细的描述讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • 浅析ARMv8汇编指令adrp和adr

    浅析ARMv8汇编指令adrp和adr

    这篇文章给大家介绍ARMv8汇编指令adrp和adr的相关知识,暂时不介绍alpha生成的指令,因此先来主要分析一下,arm架构之所以少生成汇编指令的原因——adrp指令,感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • 汇编语言MUL指令无符号数乘法的使用

    汇编语言MUL指令无符号数乘法的使用

    这篇文章主要介绍了汇编语言MUL指令无符号数乘法的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Visual Studio-X64汇编编写方法

    Visual Studio-X64汇编编写方法

    本文介绍了在Visual Studio中配置64位汇编环境和C++与汇编的混合编程的方法,详细说明了设置平台工具集、生成依赖项、链接器等步骤,并提供了解决可能出现的编译错误的方案,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • 汇编语言lea指令使用方法解析

    汇编语言lea指令使用方法解析

    这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 使用汇编语言编写一条简单的贪吃蛇的实现

    使用汇编语言编写一条简单的贪吃蛇的实现

    这篇文章主要介绍了使用汇编语言编写一条简单的贪吃蛇的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编语言中XLAT查表指令的使用

    汇编语言中XLAT查表指令的使用

    XLAT指令是汇编语言查表指令,本文主要介绍了汇编语言中XLAT查表指令的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03

最新评论