MASM 64汇编

这篇具有很好参考价值的文章主要介绍了MASM 64汇编。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

微软宏编译器 MASM 有32位版本(ml)以及64版本(ml64)。

其中相关路径如下:

“C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\bin\Hostx86\x64\ml64.exe”

当然你可以用VS自带的命令行工具打开使用:
masm64,汇编,microsoft,c++,开发语言

命令行进行编译

这里给出一个Demo程序


extern MessageBoxA:proc
includelib   user32.lib

NULL EQU 0
MB_OK EQU 0


.const
    msg   BYTE  "Hello x64 World!", 13, 10, 0
.CODE

    main PROC
        sub rsp,8
        sub rsp,20h
        mov rcx,NULL
        mov rdx,offset msg
        mov r8,offset msg
        mov r9d,MB_OK
        call MessageBoxA
        xor ecx, ecx        ; exit code = 0
        ret
    main ENDP

END

相关编译命令

//汇编器编译生成progx.obj
ml64 /c progx.asm
//设置入口为main函数生成可执行二进制
link /ENTRY:main progx.obj

使用VS进行汇编

Tip:64程序不支持内联汇编

masm64,汇编,microsoft,c++,开发语言
masm64,汇编,microsoft,c++,开发语言

masm64,汇编,microsoft,c++,开发语言

//main.cpp
#include<iostream>
using namespace std;

extern "C" int calcFun();

int main() {


	int ret = calcFun();


	cout << ret << endl;


	return EXIT_SUCCESS;
}
;masm.asm
.code

calcFun proc

	mov rax,123
	ret

calcFun endp 


end

参考

Modern x64 Assembly 1: Beginning Assembly Programming

Microsoft Macro Assembler reference
文章来源地址https://www.toymoban.com/news/detail-521783.html

到了这里,关于MASM 64汇编的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MASM32连接程序时error A2006: undefined symbol : u

    为了检测Windows操作系统是32位还是64位的,用MASM32编写了一个调用Windows API函数GetNativeSystemInfo的程序(完整代码附后),GetNativeSystemInfo函数会将指向SYSTEM_INFO结构体的地址存到GetNativeSystemInfo传递的参数中。 微软官网中的STEM_INFO定义为: SYSTEM_INFO中的wProcessorArchitecture存储了已

    2024年02月07日
    浏览(31)
  • 微机原理与接口技术课内实验-NUAA-Masm for Windows

    目录 1、软件下载:  Masm for Windows 2015(友好的文本编辑器,但是运行和调试仍会调出dosbox。) 2、 做亿点点说明 3、命令行方式运行汇编:(实验四会用到,终究逃不过) 4.实验报告  安装包:   https://sm.myapp.com/original/Office/wasm2015.rar 上来先 下一步 然后 选择安装目录(非c盘就行!)  

    2023年04月18日
    浏览(25)
  • HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具

    公文一键排版系统基本完成,准备继续完善SysInfo,增加用户帐户信息,其中涉及到Win32_Account结构,其C++定义如下:  由于WMI使用的是UniCode(WCHAR),所以我们在MASM32中要将以上成员属性AccountType、Caption……按DW UniCode(WCHAR)来定义,如下: 虽然MASM32 在QEDITOR 的 Conversions里提

    2024年02月13日
    浏览(30)
  • 64位AT&T汇编语言学习第一课:汇编和链接

    源文件 exitTest.s 内容如下: 源文件里边放的就是源代码,而我这里源代码是使用汇编语言写的,都是一些人类都可以阅读的字符。之后需要经过汇编器的汇编,变成目标文件(里边存放的是机器语言)。我这里使用的汇编器是GAS汇编器,命令是 as ,命令格式是 as 源文件名

    2024年01月17日
    浏览(39)
  • Linux x86_64 汇编语言的编写

    这段汇编代码是在标准输出上输出 “Hello, World!”,然后退出程序。 首先,在 .data 段中定义了一个名为 message 的字符串,内容为 “Hello, World!n”。.data 段用于定义程序中的静态数据,这些数据在程序运行期间不会被修改。 接下来,在 .text 段中定义了一个全局标号 _start,这

    2024年02月12日
    浏览(30)
  • C语言代码的x86-64汇编指令分析过程记录

    先通过Xcode创建一个terminal APP,语言选择C。代码如下: 在return 0处打上断点,并且Xcode菜单里选择Debug|Debug Workflow|Always Show Disassembly,点击运行。这时候断点会跳到汇编代码里,得到汇编代码如下: 首先介绍下面会用到的几个寄存器: rip : 程序计数寄存器 rsp : 栈指针寄存器

    2024年02月14日
    浏览(27)
  • 64位AT&T汇编语言as汇编ld链接,执行报错Segmentation fault

    absCallAndPrintAbsAsLd.s 里边的内容如下: as -g absCallAndPrintAbsAsLd.s -o absCallAndPrintAbsAsLd.o 进行汇编。 ld -g absCallAndPrintAbsAsLd.o -o absCallAndPrintAbsAsLd -lc -I /usr/lib64/ld-linux-x86-64.so.2 进行链接。 ./absCallAndPrintAbsAsLd 执行报错 Segmentation fault 。 我把 rsp 中的地址加上8之后,就不报错了,因为这

    2024年01月24日
    浏览(34)
  • C++64位游戏软件安全汇编与反汇编反调试 x64驱动开发进程保护进程隐藏驱动读写过保护 视频教程

    ├─课程1 x32dbgx64dbg驱动调试器反反调试器驱动调试环境搭载 │ 1.为什么要搭载驱动调试环境.mp4 │ 2.驱动调试环境搭载1.mp4 │ 3.三种过PG的方法.mp4 │ 4.驱动调试环境搭载2.mp4 │ 5.驱动调试与驱动进程保护对抗.mp4 │ ├─课程2 C++64位游戏软件安全汇编与反汇编反调试2021年新

    2024年02月02日
    浏览(32)
  • Keil MDK配置ARM汇编/C语言混合开发环境

    1. 安装Keil MDK 安装方法这里不再说明,懂得都懂!🐶 2. 安装ARM开发包 在Keil MDK5之后,不再原生支持ARM7/9,需要自行安装软件包,链接在这,注意安装与自己MDK版本对应的那个包 我的版本是5.18,下载之后傻瓜式安装,因为它会自动检测你MDK所在的位置。 3. 新建工程 注意:选

    2024年02月02日
    浏览(51)
  • 汇编基础(2) -- ARM64

    ARM架构中,ARM64(也称为AArch64)是一种64位处理器架构,它是ARMv8指令集的一部分。与之前的32位ARM架构相比,ARM64提供了更大的寄存器容量、更广阔的地址空间和更高的计算能力。 64位版本的指令集和32位版本的指令集有一些区别,这些区别主要涉及到以下几个方面: 寄存器

    2024年02月07日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包