E que tal responder à pergunta? Ainda não ajudaste em nada o dicas3d. É desaconselhado porquê e por quem?
Bem, primeiro vais ter de aprender o formato dos executáveis e objectos em Windows, que se chama PE-COFF. Este formato tem básicamente um monte de tabelas e é dividido em diferentes sections. A maior parte do ficheiro vai conter código x86/x64/ARM/.NET, e uma tabela de "relocations" no caso de object files (COFF). Estas relocations são usadas pelo linker (link.exe no Windows) para juntar várias bibliotecas.
Dependendo da tool que gerou o ficheiro, pode ter ainda secções para constructores estáticos de C++, ou tabelas usadas pelo Windows para fazer 64-bit exception handling, ou recursos como tabelas de texto (para internacionalização), icons, bitmaps, etc.
Em Linux o formato utilizado é o ELF, e a sua estrutura é semelhante nos conceitos.
Spec oficial:
http://msdn.microsoft.com/en-us/library/windows/hardware/gg463119.aspx
Resumo:
http://www.delorie.com/djgpp/doc/coff/
Quanto ao código em si, o melhor é veres nos manuais de Intel para x86.
Agora, ninguém programa este tipo de ficheiros à mão. Podes usar o hex editor para confirmar a estrutura dos ficheiros, ou usa a tool objdump que vem com as tools do GCC/LLVM que faz o mesmo mas faz um print todo bonito para a consola.
Se quiseres gerar estes ficheiros, usa um assembler para gerar os vários object files (COFF) e depois o linker para os combinar em um executável (PE).