O "tempo de execução C" requer certas condições, que são fornecidas pelo assembly. A linguagem c requer principalmente uma pilha ao executar
A relação entre a linguagem C e a pilha: As variáveis locais em linguagem C são todas implementadas utilizando a pilha. Se a nossa parte de montagem não predefinir um endereço de pilha razoável e legal para a parte C, então as variáveis locais definidas no código C falharão e todo o programa morrerá.
Normalmente não configuramos a pilha quando escrevemos programas de microcontroladores (como o microcontrolador 51) ou escrevemos aplicações, mas o programa C pode ser executado na mesma. A razão é: uma pilha disponível por defeito é fornecida durante a inicialização do hardware no microcontrolador. De facto, nem todos os programas C que escrevemos no programa de aplicação. O compilador (gcc) adiciona-os automaticamente, um a um, durante a ligação. Este cabeçalho é um pedaço de código assembly que orienta o nosso programa C a ser executado. Este código ajuda o nosso programa C a configurar a pilha e outras necessidades do tempo de execução.