

Oddities in x86 Assembly - tristanj
https://code.google.com/p/corkami/wiki/x86oddities

======
kristiandupont
I was making a small x86 assembler once and I was frustrated that the encoding
seemed almost random and very hard to generate. Until I fell over a comment in
some google group stating that the key to understanding it is that all opcodes
are coded in _octal_. It's inherited all the way back from the 8080, but for
some reason this information was nowhere to be found, including the official
references from Intel that I had.

~~~
Scaevolus
Here's an analysis of x86 encoding in octal:
[http://reocities.com/SiliconValley/heights/7052/opcode.txt](http://reocities.com/SiliconValley/heights/7052/opcode.txt)

The author claims to know most 8086 instructions by memory alone!

~~~
kristiandupont
Well, that was the exact post I used back in the day :-) It helped me a lot,
it's a really good reference.

------
dangero
This is somewhat off topic, but this page has incredible visuals. One of the
hardest parts for me of writing technical information online is including the
accompanying visuals needed to make it digestible. I think it's hard for me to
do that because I'm forced to either context switch between writing and doing
screen captures/cropping, or go back after the fact and create visuals which
is very time consuming.

------
nekitamo
I recognize OllyDBG being used, but what is the debugger here?
[https://corkami.googlecode.com/svn/wiki/pics/x86_15bop_64b.g...](https://corkami.googlecode.com/svn/wiki/pics/x86_15bop_64b.gif)

~~~
cremno
WinDbg

------
Someone
Minor nitpick: I think the equivalent code in
[https://code.google.com/p/corkami/wiki/x86oddities#future_op...](https://code.google.com/p/corkami/wiki/x86oddities#future_opcodes)
has a copy-paste error. In

    
    
        89d8 mov eax, ebx
        f7d0 not eax
        21c8 and eax, ebx
    

there should be a ecx somewhere.

