Hacker News new | comments | show | ask | jobs | submit login
Piston X86-64 Assembler working in web browser and Node.js (pis.to)
63 points by Sami_Lehtinen on Apr 17, 2014 | hide | past | web | favorite | 20 comments

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.

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.

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.

+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.


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?

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

Now wire this up with Native Client. :-o

Am I missing a joke here?

Why? It seems pretty useful e.g. for writing shellcode.

Yeap, it's very handy to see the binary live. If it had editable hex and disassembly (just spew asm into the context), that would rock^3.

Actually, this is pretty cool for teaching students!

I rather have them use something like this,


I see. Haven't thought about that. Otherwise it seemed like a pointless (but interesting nevertheless) hobby project.

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!

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.

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

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

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? :)

I suppose this is pretty close: an emulated PC in your browser: http://bellard.org/jslinux/index.html

Does Atwood's Law apply to Node.js?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact