>>36
CPU の種類ごとにコンパイラがある
x86 用の C 言語コンパイラは、 C 言語のソースをコンパイルして x86 の機械語コードを吐く
ARM 用の C 言語コンパイラは、 C 言語のソースをコンパイルして ARM の機械語コードを吐く
従って、あなたのマシンの CPU に対応したコンパイラを使えば、 C 言語はあなたのマシンで動く

>>38
同じメーカーなら、新しい CPU を作るときに、以前のプログラムがそのまま動くよう、過去の CPU と互換性のある仕様にしたりする
わざわざ互換性を取って、同じプログラムが動くようにしているのだから、当然動く