Yasm 1.3.0 Release Notes

http://yasm.tortall.net/releases/Release1.3.0.html

Target Audience

Welcome to the 1.3.0 release of the Yasm Modular Assembler. Its target audience includes people who want to:

  • use a mature NASM-syntax x86 and AMD64 assembler that can target Win32, Win64, MacOS X, and Unix derivatives;
  • use a GAS-syntax assembler other than GAS;
  • have assembly source-level debugging using either DWARF2 or CodeView 8.0 (Visual Studio 2005 and later);
  • have a free software assembler that supports Win32/Win64 structured exception handling (SEH) and ELF32/ELF64 thread local storage (TLS);
  • target the latest AMD or Intel instruction sets;
  • have a free assembler highly integrated into the Visual Studio 2010 IDE;
  • keep track of Yasm’s progress in terms of stability and feature set;
  • contribute to Yasm development from a new release.

Download Yasm 1.3.0

A number of download formats are available. For Windows and DOS users, we recommend downloading the prebuilt binaries. The source tarball contains all sources needed to build Yasm on UNIX-compatible systems, Windows, and DOS. If you use Visual Studio 2010 or later, we highly recommend downloading the appropriate vsyasm zip file and following its readme.txt directions for integration of yasm into the Visual Studio IDE.

A TASM-like frontend is also available. It defaults to the “tasm” parser and provides TASM-like command line options.

Features

Changes from 1.2.0 to 1.3.0:

  • Add AMD TBM instructions.
  • Add HSW TSX instructions.
  • Fix “pmulhrw”, “vphaddudq”, and “vpbroadcastq” instructions.
  • Add Intel SHA, ADX, RDSEED, and SMAP instructions.
  • Use a larger hash table size in NASM macro handling.
  • Add support for x32 ABI (called “elfx32”).
  • Add support for “function” decorator in win32/win64 object files.
  • In Mach-O, only warn on repeated flags if the new flags are different.

Features also include:

Object and debugging format support:

  • Full support for ELF, including support for both AMD64 and 32-bit x86 static and shared objects and thread local storage.
  • Support for Mach-O object format used in MacOS X, including both the 32-bit (x86) and 64-bit (AMD64) versions.
  • Full support for COFF (DJGPP) and Win32 (PE32) and Win64 (PE32+) object formats.
  • Support for structured exception handling on Win64 and Win32.
  • Support for RDOFF2 (.rdf) object format.
  • XDF object format (64-bit basic format, similar in spirit to NASM’s RDF).
  • Multi-section binary support (compatible but slightly more advanced than NASM’s).

  • STABS, DWARF2, and CodeView 8 debugging formats (enable with “-g …”).

Assembler syntax support:

  • Full NASM-compatible parser, including the “real” NASM preprocessor (imported from NASM tree).
  • GAS parser and preprocessor.
  • Basic support for TASM syntax, based on the NASM parser and preprocessor.

Architecture support:

  • Support for AMD64 instruction set, registers, and addressing modes. This is enabled in one of three ways: using the [BITS 64] directive, using a 64-bit object format such as win64 or elf64, or setting the machine to “amd64”. Only the last two will actually generate a 64-bit object file.
  • Full support for AMD64 RIP-relative addressing; the forms supported in NASM syntax are [rip+val] (direct index) and [sym wrt rip] or [rel sym] (relocated relative).

Other features:

  • Fast and efficient “virtual multi-pass” optimizer that automatically generates much smaller code for jumps and immediates.
  • Full warnings for integer overflow.
  • NASM-like list format.
  • Most code licensed under 2-clause BSD license, although some portions are still LGPL-licensed (NASM preprocessor module).
  • Support for the -I option to specify include directories, with a search pattern essentially identical to most C compilers.
  • Support for CALL/JMP FAR, including proper handling of location EQU seg:offjmp far location.
  • Man pages: yasm(1), yasm_objfmts(7), yasm_dbgfmts(7), and yasm_arch(7).

Important Differences from NASM

  • A number of command line options are different. Run “yasm –help” for a quick command line option summary, or read the full yasm(1) manpage for detailed descriptions of all command line options.
  • Include files with relative paths are not searched in the same way. Yasm’s search behavior is essentially that of most C compilers.

Known Issues

As Yasm is still under development, there are some caveats and features that do not yet work or are not yet fully functional. See the Tickets area of Yasm’s website for a list of active issues.

Compiling Yasm from source

On UNIX-compatible operating systems, Yasm builds using the standard “./configure; make; make install” commands. GNU make is not required. While Yasm development requires a larger toolchain (see the HACKING file), building Yasm should not require more than just a C compiler.

For Windows systems, we recommend simply downloading the prebuilt executables. However, for those that want to build YASM directly using DJGPPCygWin, or Visual Studio, Makefiles and all required specialized files are provided in the Mkfiles/ directory of the distribution tarball. CMake-compatible build files are also provided.

Running Yasm

Version Information:

yasm --version

Command Line Option Help:

yasm --help

Assemble test.asm to Win32 object file test.obj with CodeView 8.0 (VS2005) source debug info:

yasm -f win32 -g cv8 test.asm

Assemble test2.asm to Win64 object file test.obj with CodeView 8.0 source debug info:

yasm -f win64 -g cv8 test2.asm

Assemble test3.asm to AMD64 ELF object file test3.o with DWARF2 debugging information:

yasm -f elf64 -g dwarf2 test3.asm

Alternative to above:

yasm -f elf -m amd64 -g dwarf2 test3.asm

Assemble test4.s (GAS syntax file) to 32-bit x86 ELF object file testo.o with DWARF2 debugging information:

yasm -p gas -f elf32 -g dwarf2 -o testo.o test4.s

Yasm 1.3.0 Release Notes的更多相关文章

  1. ASP.NET Core 1.1.0 Release Notes

    ASP.NET Core 1.1.0 Release Notes We are pleased to announce the release of ASP.NET Core 1.1.0! Antif ...

  2. Git for Windows v2.11.0 Release Notes

    homepage faq contribute bugs questions Git for Windows v2.11.0 Release Notes Latest update: December ...

  3. WeihanLi.Npoi 1.11.0/1.12.0 Release Notes

    WeihanLi.Npoi 1.11.0/1.12.0 Release Notes Intro 最近 NPOI 扩展新更新了两个版本,感谢 shaka chow 的帮忙和支持,这两个 Feature ...

  4. WeihanLi.Npoi 1.14.0 Release Notes

    WeihanLi.Npoi 1.14.0 Release Notes Intro 周末更新了一下项目,开始使用可空引用类型,并且移除了 net45 的支持,仅支持 netstandard2.0 Cha ...

  5. WeihanLi.Npoi 1.16.0 Release Notes

    WeihanLi.Npoi 1.16.0 Release Notes Intro 最近有网友咨询如何设置单元格样式,在之前的版本中是不支持的,之前主要考虑的是数据,对于导出的样式并没有支持,这个 is ...

  6. MongoDB 3.0 Release Notes

    MongoDB 3.0支持WiredTiger存储引擎,提供可插拔存储引擎API,新增SCRAM-SHA-1认证机制,改进explain功能. 可插拔存储引擎API 允许第三方为MongoDB开发存储 ...

  7. Apache Hadoop 3.0.0 Release Notes

    http://hadoop.apache.org/docs/r3.0.0/hadoop-project-dist/hadoop-common/release/3.0.0/RELEASENOTES.3. ...

  8. Redis 5.0.0 releases notes

    Redis 5.0 release notes ======================= ---------------------------------------------------- ...

  9. MAGIC XPA最新版本Magic xpa 2.4c Release Notes

    New Features, Feature Enhancements and Behavior ChangesSubforms – Behavior Change for Unsupported Ta ...

随机推荐

  1. HashMap/Hashtable/ConcurrentHashMap区别

    HashMap:每个隔间都没锁门,有人想上厕所,管理员指给他一个隔间,里面没人的话正常用,里面有人的话把这个人赶出来然后用. 优点,每个人进来不耽误都能用:缺点,每一个上厕所的人都有被中途赶出来的危险 ...

  2. BZOJ 1432

    Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成.     #include<iostream> using ...

  3. 曹政:CTO这点事

    几乎整个互联网行业都缺 CTO,特别是一些草根背景的创业者,这个问题更加显著.从我自己的感受,身边各种朋友委托我找 CTO 的需求,嗯,算下来超过两位数了,光最近一个月就有 3 个,而且这三家都是刚拿 ...

  4. CF982 C Cut 'em all!【树/DFS/思维】

    [链接]:CF982C [题意]:有一颗树,你需要切掉一些边,使这颗树分拆成若干个节点为偶数的联通分量,最多能切掉几条边.若不能切,输出-1. [分析]: 1.若点数n为奇数,因为奇数不可能分为偶数, ...

  5. 【Java】Java划水练习

    bzoj1000 A+B Problem Scanner sc=new Scanner(new BufferedInputStream(System.in)); 声明读入器 nextInt 读入整数 ...

  6. 【计算几何】 Codeforces Beta Round #67 (Div. 2) E. Ship's Shortest Path

    读懂题意其实是模板题.就是细节略多. #include<cstdio> #include<cmath> #include<algorithm> using name ...

  7. 【计算几何】bzoj2338 [HNOI2011]数矩形

    对于两条线段,若其中点重合,且长度相等,那么它们一定是某个矩形的对角线. N*N地处理出所有线段,排序,对每一部分中点重合.长度相等的线段进行暴力枚举,更新答案. 用 long double 注意EP ...

  8. 【贪心】bzoj3709 [PA2014]Bohater

    把怪分成两类看: 一.回血>损血 则若先杀损血少的再杀损血多的,则为当前这一步提供了更高的可能性.因为血量是单增的,所以尽量用较少的血量去干♂耗血较少的怪物. 二.回血<损血 则若先杀回血 ...

  9. [HDU6252]Subway Chasing

    题目大意: 一条直线上有n个点,两个人在直线上走,保持x的距离. 告诉你m条信息,告诉你一个人在ab之间时,另一个人在cd之间. 问这些信息是否矛盾,如果不矛盾,求相邻两点之间的最小距离. 思路: m ...

  10. 检测密码 Exercise06_18

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:检测密码 * */ public class Exercise06_18 ...