PASM

World's first X86-64 (AMD64) Assembler
written in JavaScript!

Works fully in modern web browsers

View project on GitHub Download PASM (v0.0.1)

about

Author: Tommi Pisto, Version: 0.0.1

About Piston Assembler

Piston X86-64 Assembler (PASM) is NASM syntax based symbolic machine code compiler for X86-64 architecture - fully working in browser and in Node.js based environments.

Written in CoffeeScript (and compiled to JavaScript) during the rainy finnish summer holiday.

Current Features

  • X86-64 opcodes
  • NASM syntax
  • 16,32,64 bit modes
  • R8-R13 registers
  • SIB, MODR/M, RIP addressing
  • EQU, TIMES
  • labels, expressions
  • testing framework
  • ...

Thanks to

Karel Lejska, x86reference.xml, x86asm.net
Kenneth Falck, ASM code for testing
Vikas N. Kumar, ASM code for testing
Joni Salonen, toUTF8Array
Zachary Carter, Jison
John Tobey and Matthew Crumley, Javascript-biginteger
Jeremy Ashkenas, CoffeeScript

REAL-TIME Compiling

Sleek. Fast. Clean. Responsive. Line by line opcode explanation.

Prefix
REX prefix Byte
REXWRXB
0100 0 0 0 0
Opcode
modRM Byte
modregr/m
SIB Byte
scaleindexbase
Immediate
Displacement
Relative address

X86-64 ASM code

Compiled bytecode