README.md

# Asm

This is aimed at implementing an inline assembler.

Currently, it provides the following:

* `is_int64` macro that can be used in `when` clauses to judge that a value is within INT64.

* `max_int` is the constant value of maxium of INT64.

* `min_int` is the constant value of minimum of INT64.

* `max_uint` is the constant value of maxium of UINT64.

* `min_uint` is the constant value of minimum of UINT64.

`BigNum` module is also provided. This module is used for passing an integer by BigNum from/to NIF.

## Installation

The package can be installed
by adding `asm` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:asm, "~> 0.0.8"}
  ]
end
```

## Usage

```elixir
defmodule Foo do
	require Asm
	import Asm
	def add(a, b) when is_int64(a) and is_int64(b) do
		a + b
	end
end
```

Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/asm](https://hexdocs.pm/asm).