Hi

Disassembling of compiled code into assembly language is nothing mysterious.
Assembler opcodes (text editor) are representatives of machine code (hex-editor),
eg
Code:
0F84h (a sequence of 0 and 1's) is jz  // "do     jump if "
0F85h (a sequence of 0 and 1's) is jnz // "do not jump if "
There is only one difficulty, namely when the executable is packed
and selfmodifying (besides a few tricks to hinder disassemblers).

Cheers.