ass-js
ass-js copied to clipboard
Assembler.js — X86_64 and Ethereum
(‿*‿)
Assembler.js
Assembler implemented in JavaScript:
- Pluggable design
- X64 and Ethereum assembler
- See supported X64 mnemonics
- Standalone, use it in browser or Node.js
Install
npm i ass-js
Getting Started
Store 0xBABE
in RAX
register
import {X64} from 'ass-js';
const asm = X64();
asm._('mov', ['rax', 0xBABE]);
Compile to machine code
console.log(code.compile()); // <Buffer 48 c7 c0 be ba 00 00>
Show text representation
console.log(String(code));
// 000 main:
// 001 movq rax, 0x0000BABE ; 000000|000000 0x48, 0xC7, 0xC0, 0xBE, 0xBA, 0x00, 0x00 7 bytes
Use templates
const template = _ => {
_('mov', ['rdx', 0xC001]);
_('mov', ['rax', 0xBABE]);
};
asm.code(template);
Docs
-
Plugins
- X64
- Getting started
- Operands
- Expressions
- Ethereum
- Data
-
d*
- add binary data -
res*
- add uninitialized data -
incbin
- include binary file
-
- Util
-
label
- insert a label usinglabel
andlbl
-
align
- align code to some factor boundary
-
- X64
- Reference
-
Asm
-
Expression
-
Compilation
-
- Examples
- Hello world
-
cpuid
License
Unlicense — public domain.