You need an initial compiler for the boostrapping process.
Obvious question: how did the first C compiler exist, then? Answer: it was implemented in assembly. And the first assembler was written in machine code.
Obvious question: how did the first C compiler exist, then? Answer: it was implemented in assembly. And the first assembler was written in machine code.
Anyway, writing a C-- compiler in x86 ASM isn't really that bad. It'd probably be even easier to run the compiler in an interpreter.