Skip to content

Repository files navigation

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::Command.run(syntax: :gas,file: 'hello_world.S',output: 'hello_world.o')

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

YASM::Command.rundo |yasm|
yasm.target=:amd64yasm.syntax=:gasyasm.file='hello_world.S'yasm.output='hello_world.o'yasm.output_format=:elf64yasm.debug_format=:stabsend

Requirements

Install

$ gem install ruby-yasm

yasm

  • Debian / Ubuntu:
$ sudo apt install yasm
  • RedHat / Fedora:
$ sudo dnf install yasm
  • Homebrew:
$ brew install yasm

License

See {file:LICENSE.txt} for license information.

About

A Ruby interface to YASM.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages