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

Windows 环境上安装 NASM 和 YASM 教程

NASM 和 YASM

NASM

  • NASM(Netwide Assembler)是一个开源的、可移植的汇编器,它支持多种平台和操作系统。它可以用来编写16位、32位以及64位的代码,并且支持多种输出格式,包括ELF、COFF、OMF、a.out、Mach-O等。NASM使用Intel语法,与AT&T语法的汇编器(如GNU汇编器)不同。它不生成段覆盖,也不使用MASM和TASM的自动生成段覆盖功能。

  • NASM的安装相对简单,无论是在DOS、Windows还是Unix-like系统下,都有相应的安装方法。在DOS或Windows下,可以将NASM的压缩包解压到一个目录中,然后就可以使用其中的可执行文件了。在Unix-like系统下,可以通过源代码包来编译和安装NASM。

  • NASM的命令行语法允许用户指定输出文件的格式(使用-f选项),指定输出文件的文件名(使用-o选项),以及其他多种选项,如产生列表文件(使用-l选项)、预包含文件(使用-p选项)、预定义宏(使用-d选项)等。NASM还提供了一些特殊的功能,比如TASM兼容模式(使用-t选项)、多遍优化(使用-O选项)等。

  • NASM的语法简洁,它区分大小写,需要使用方括号来引用内存地址,并且不存储变量的类型。NASM不支持ASSUME操作符,也不支持内存模型,程序员需要自己管理这些方面。

YASM

  • YASM(Yet Another Static Macro Assembler)是一个开源、模块化、可移植的x86汇编器,它旨在提供与NASM(NetwideAssembler)兼容的功能,并增加一些新的特性。YASM支持x86和AMD64架构,但不支持ARM架构。它可以接受NASM和GAS(GNU Assembler)汇编器的语法,输出多种格式的对象文件,包括二进制文件、ELF32、ELF64、32位和64位Mach-O、RDOFF2、COFF、Win32和Win64对象格式。YASM还能够生成STABS、DWARF
    2和CodeView 8格式的源代码调试信息。

NASM和YASM区别

NASM(Netwide Assembler)和YASM(Yet Another Assembler)都是流行的开源汇编器,它们都支持x86架构的汇编语言编程。尽管它们在很多方面都很相似,但也有一些关键的区别:

  1. 架构支持

    • NASM:主要专注于Intel x86架构,支持16位、32位和64位代码的汇编。
    • YASM:除了支持x86和AMD64架构外,还旨在提供与NASM兼容的功能,并增加一些新的特性。
  2. 语法支持

    • NASM:使用自己的语法,虽然它也支持一些AT&T语法的特性。
    • YASM:支持NASM语法以及GAS(GNU Assembler)语法,这使得从GNU工具链迁移到YASM更为容易。
  3. 宏处理器

    • NASM:拥有一个功能强大的宏处理器。
    • YASM:提供了一个更加强大的宏处理器,能够处理更复杂的任务,如条件汇编、多行宏定义和循环等。
  4. 输出格式

    • NASM:支持多种输出格式,包括ELF、COFF和Mach-O。
    • YASM:也支持多种输出格式,并且可以生成STABS、DWARF 2和CodeView 8格式的调试信息。
  5. 扩展性

    • YASM:由于其模块化设计,YASM在扩展性方面更胜一筹,更容易添加对新架构或指令集的支持。
  6. 项目活跃度

    • NASM:通常更新更频繁,社区活跃度较高。
    • YASM:虽然功能强大,但开发似乎已经停滞,不如NASM活跃。
  7. 集成和兼容性

    • YASM:可以更容易地集成到Visual Studio中,支持NASM或GAS语法代码的汇编。
  8. Python绑定

    • YASM:提供了Python API绑定,允许在Python程序中直接调用YASM。
  9. 安装和使用

    • NASM:安装和使用相对简单,社区支持良好。
    • YASM:安装过程也相对简单,但可能不如NASM那样广泛地被系统包管理器所支持。

Windows安装 NASM 步骤

  1. 官网下载:https://www.nasm.us/
    在这里插入图片描述
  2. 点击 DOWNLOAD,跳转到如下界面;
    在这里插入图片描述
  3. 选择最新版本2.16.03/版本后跳转到如下界面;
    在这里插入图片描述
  4. 根据自己电脑系统位数,选择wind64/后跳转到如下界面;
    在这里插入图片描述
  5. 直接选择可执行程序下载,如下zip文件,并解压,内部如下图;
    在这里插入图片描述
    在这里插入图片描述
  6. 在c盘的Program Files文件夹中新建NASM文件夹,将nasm解压出来的文件拷贝进去;
    在这里插入图片描述
  7. 将nasm的路径添加到系统环境变量中,按照1-2-3的步骤操作;
    在这里插入图片描述
  8. PowerShell中验证,输入命令 nasm -v,返回如下图即表示安装配置NASM成功✅。
    在这里插入图片描述

Windows安装 YASM 步骤

  1. 官网下载:https://yasm.tortall.net/
    在这里插入图片描述
  2. 点击 Download,跳转到如下界面;
    在这里插入图片描述
  3. 点击Wind64.exe下载如下可执行程序;
    在这里插入图片描述
  4. 在c盘的Program Files文件夹中新建YASM文件夹,将yasm拷贝进去,并改名为yasm;
    在这里插入图片描述
  5. 将yasm的路径添加到系统环境变量中,按照1-2-3的步骤操作;
    在这里插入图片描述
  6. 验证是否安装配置成功,PowerShell中输入命令 yasm --version,如果返回如下图,则表示安装配置成功✅。
    在这里插入图片描述

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

相关文章:

  • unix中实际用户ID、有效用户ID、保存的设置用户ID的区别和作用
  • 风扇模块(直流5V STM32)
  • 怎么将bash(sh)的所有输出保存到log/txt中?
  • Shell脚本基础——实训项目任务
  • AI学习指南深度学习篇-批标准化的实现机制
  • 解决pycharm中matplotlab画图不能显示中文的错误
  • MeterSphere压测配置说明
  • Vue CLI项目创建指南:选择预设与包管理器(PNPM vs NPM)
  • 平面电磁波(解麦克斯韦方程)
  • JS基础练习|动态创建多个input,并且支持删除功能
  • 【C++】模拟实现红黑树
  • JDBC原生事务管理,类比超市购物来讲解(不常用,但作为基础还是要了解一下)
  • django搭建一个AI博客进行YouTube视频自动生成文字博客
  • 14-函数返回指针
  • electron出现乱码和使用cmd出现乱码
  • 主流前端框架的详细对比和选择建议
  • express,MySQL 实现登录接口
  • 2024.9.28更换启辰R30汽车火花塞
  • 如何给一张图像判断失真类型?
  • vscode安装及c++配置编译