Piston Assembler
JavaScript Assembly CoffeeScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
browser
extras
lib
source
tests
LICENSE
README.md
makefile
opcodes.txt
package.json
pasm.js
simple.asm

README.md

Piston X86-64 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. Test live demo

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

Todo

  • It works <-- We are here
  • Floating point instructions, rep, segment prefixes, MMX, macros, ...

Download and install

Releases are available for download from GitHub.

Alternatively, you can install using Node Package Manager (npm):

npm install pasm

Usage:

pasm simple.asm

In the Browser

So far its been tested in FF12, Chrome 23 and Safari 6. Usage:

<script type="text/javascript" src="pasm.min.js"></script>
<script type="text/javascript">

    // Define where to show errors
    myError = function(err, line) {
      console.log('Error:' + err + ' in line ' + line);
    };
    window.Opcode.error = myError;
    pasm.parseError = myError;

    // Parse assembler code
    var hexString = pasm.parse('mov ax, 0x4c00');
    console.log(hexString.data);

</script>