Awesome
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.run 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
- yasm >= 0.8.0
- command_mapper ~> 0.1
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.