

Piston X86-64 Assembler working in web browser and Node.js - Sami_Lehtinen
http://pasm.pis.to/

======
ANTSANTS
That's pretty neat, how you can select a mnemonic and the corresponding bytes
are highlighted.

I have to say, though, I had a bit of a confused chuckle at the "marketing
copy." This is (presumably) a hobby project, not a product landing page; the
serious tone seems very out of place. "Sleek. Fast. Clean. Responsive. Line by
line opcode explanation." sounds like something out of an Apple ad. Are you
trying to sell me something here?

I liked it when programmer websites were butt-ugly text dumps and proud of it.

~~~
midas007
Yeah, all I had back in the day were those quick refs that came with Turbo
Assembler and MASM. Occasionally some BBS would have a half-done cheat sheet
from an Intel manual.

------
k4st
Would be really cool if this gave more explanation for the encodings. For
example, showing the opcode, mod/reg/rm, and displacement components is really
cool. What would be even cooler is to say _why_ some bit or combination of
bits makes this opcode use, for example, the rax register. This would be more
an effort of exposing some tables, referencing manuals, etc. but I think it
would give people more of an intuition for the encoding. Another thing to
consider would be breaking the encoding down into octal digits instead of hex
or binary (or maybe mix when appropriate) to give the most clear presentation
of the encoding format. I could see this as a great way to lazily learn.

~~~
userbinator
+1 for octal encoding; although some of the 64-bit extension stuff - notably
REX prefices - has strayed from that, it's far easier to mentally
assemble/disassemble x86 in octal form. Odd that the vast majority of x86
opcode references are exclusively in hex, since presenting the tables in octal
makes the encoding look far more regular.

[http://tnovelli.net/ref/opx86.html](http://tnovelli.net/ref/opx86.html)

------
bglazer
No snark, just curious. What's the point of this? Is it for teaching? It's a
not a performance thing like asm.js right?

~~~
midas007
Probably more for learning and some work too. It's closer to an IDE like TASM
/ Turbo Profiler was.

------
kosinus
Now wire this up with Native Client. :-o

------
kyberias
Instead of writing "working in web browser", I would write "written in
CoffeeScript (or Javascript))".

The demo with live opcode display in the editor is pretty cool!

------
rplnt
Am I missing a joke here?

~~~
henrikm85
Actually, this is pretty cool for teaching students!

~~~
pjmlp
I rather have them use something like this,

[http://badsector.github.io/dcpustud/](http://badsector.github.io/dcpustud/)

------
acqq
The demo is in 8086 16-bit code though. It would be nice to be able to see
32-bit and 64-bit codes in the demo too. At least 64-bit is the most
interesting to me, as the older ones are the most covered on the internet.

------
vivek_st
Awesome! This can come in handy while teaching my Shellcoding class:
[http://www.pentesteracademy.com/course?id=7](http://www.pentesteracademy.com/course?id=7)

------
mrsaint
Neat! So, who is going to write Softice for Node.js next? ;)

------
xhrpost
Pretty cool. Now, how long until I can take the compiled byte code and run it
in an emulated PC that outputs to a canvas screen? :)

~~~
userbinator
I suppose this is pretty close: an emulated PC in your browser:
[http://bellard.org/jslinux/index.html](http://bellard.org/jslinux/index.html)

------
pconner
Does Atwood's Law apply to Node.js?

