Sha256: 35a4c5c1b177f955b40f4ebf5e5f3e917cd71229ebe4d397ee4bb80014c25e10

Contents?: true

Size: 1.51 KB

Versions: 1

Compression:

Stored size: 1.51 KB

Contents

# ruby-yasm

* [Source](https://github.com/sophsec/ruby-yasm/)
* [Issues](https://github.com/sophsec/ruby-yasm/issues)
* [Documentation](https://rubydoc.info/gems/ruby-yasm)

## Description

A Ruby interface to [YASM][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:

```ruby
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:

```ruby
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

```shell
$ gem install ruby-yasm
```

### yasm

* Debian / Ubuntu:

```shell
$ sudo apt install yasm
```

* RedHat / Fedora:

```shell
$ sudo dnf install yasm
```

* Homebrew:

```shell
$ brew install yasm
```

## License

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

[yasm]: https://www.tortall.net/projects/yasm/
[command_mapper]: https://github.com/postmodern/command_mapper.rb#readme

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby-yasm-0.3.1 README.md