A Ruby interface to YASM.
Ruby Assembly
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.document
.gemtest
.gitignore
.rspec
.specopts
.yardopts
ChangeLog.md
LICENSE.txt
README.md
Rakefile
gemspec.yml
ruby-yasm.gemspec

README.md

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 {file:LICENSE.txt} for license information.