Just curious, if open a hex editor and type opcodes manually and save it. Such as move 1 to register 1 move 2 to register 2 then call add, would that give me working program? Or does some how automating this gives me crappy compiler?
EDIT: Forgot about OS, I have Mac OS X and Linux at my disposal, x86's as the CPU.
As I noted in the comments, the OS/platform is important here. Most platforms will expect some sort of structure to an executable (if only a header etc.). e.g. see the a.out format as used by older versions of Unix.
As you've indicated you have Mac OS X, check out the Mach-O format.
Beware that typing
'A0 A1'...
etc. is different from putting the actual bytes (in this case 160/161) in the file.