Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/streamich/ass-js
Assembler.js — X86_64 and Ethereum
https://github.com/streamich/ass-js
asm assembler ethereum x86-64
Last synced: about 1 month ago
JSON representation
Assembler.js — X86_64 and Ethereum
- Host: GitHub
- URL: https://github.com/streamich/ass-js
- Owner: streamich
- License: unlicense
- Created: 2016-06-11T13:30:04.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-09T01:53:19.000Z (about 1 month ago)
- Last Synced: 2024-10-11T12:02:54.565Z (about 1 month ago)
- Topics: asm, assembler, ethereum, x86-64
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/ass-js
- Size: 1.18 MB
- Stars: 135
- Watchers: 12
- Forks: 14
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
(‿*‿)
Assembler.js[![][npm-badge]][npm-url] [![][travis-badge]][travis-url]
Assembler implemented in JavaScript:
- Pluggable design
- X64 and Ethereum assembler
- See [supported X64 mnemonics](./mnemonics/x64/)
- Standalone, use it in browser or Node.js## Install
```shell
npm i ass-js
```## Getting Started
Store `0xBABE` in `RAX` register
```js
import {X64} from 'ass-js';const asm = X64();
asm._('mov', ['rax', 0xBABE]);
```Compile to machine code
```js
console.log(code.compile()); //
```Show text representation
```js
console.log(String(code));
// 000 main:
// 001 movq rax, 0x0000BABE ; 000000|000000 0x48, 0xC7, 0xC0, 0xBE, 0xBA, 0x00, 0x00 7 bytes
```Use templates
```js
const template = _ => {
_('mov', ['rdx', 0xC001]);
_('mov', ['rax', 0xBABE]);
};asm.code(template);
```## Docs
- [Plugins](./docs/plugins.md)
- X64
- [Getting started](./docs/x64/getting-started.md)
- [Operands](./docs/x64/operands.md)
- [Expressions](./docs/x64/expressions.md)
- [Ethereum](./docs/ethereum/ethereum.md)
- Data
- `d*` - [add binary data](./docs/data/db.md)
- `res*` - [add uninitialized data](./docs/data/resb.md)
- `incbin` - [include binary file](./docs/data/incbin.md)
- Util
- `label` - [insert a label using `label` and `lbl`](./docs/util/label.md)
- `align` - [align code to some factor boundary](./docs/util/align.md)
- Reference
- `Asm`
- `Expression`
- `Compilation`
- Examples
- [Hello world](./docs/examples/hello_world.md)
- [`cpuid`](./docs/examples/cpuid.md)## License
[Unlicense](./LICENSE) — public domain.
[npm-url]: https://www.npmjs.com/package/ass-js
[npm-badge]: https://img.shields.io/npm/v/ass-js.svg
[travis-url]: https://travis-ci.org/streamich/ass-js
[travis-badge]: https://travis-ci.org/streamich/ass-js.svg?branch=master