ruby-yasm

Description

A Ruby interface to YASM.

YASM is a complete rewrite of the NASM assembler, YASM currently supports the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes, outputs binary, ELF32, ELF64, 32 and 64-bit Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, and generates source debugging information in STABS, DWARF 2, and CodeView 8 formats.

Features

  • Supports all of the yasm command-line options.

Examples

Assemble a binary file:

YASM::Program.assemble do |yasm|
  yasm.syntax = :gas
  yasm.file   = 'hello_world.S'
  yasm.output = 'hello_world.o'
end

Assemble amd64 assembly, in GAS syntax, into an ELF64 file with debugging information:

YASM::Program.assemble do |yasm|
  yasm.target! :amd64

  yasm.syntax = :gas
  yasm.file   = 'hello_world.S'

  yasm.output        = 'hello_world.o'
  yasm.output_format = :elf64
  yasm.debug_format  = :stabs
end

Requirements

Install

$ sudo gem install ruby-yasm

License

Copyright (c) 2009-2017 Postmodern

See LICENSE for license information.