Você disse "microcontrolador pequeno e não tinha interface, computador, depurador, compilador ou montador". Bem, você pode sobreviver sem o computador, depurador, compilador ou montador, mas você precisa ter algum tipo de interface para conectar-se ao microcontrolador para carregar o programa.
Antes de tudo, esqueça as linguagens de alto nível como C. Em seguida, a maneira mais fácil é escrever seu programa em linguagem assembly, mas não use o assembler para traduzi-lo para o código da máquina. Em vez disso, procure cada uma das instruções de montagem no manual de programação, encontre a codificação hexadecimal equivalente e anote-a.
Você terá que alocar suas próprias variáveis, para poder preencher os endereços apropriados na parte do operando das instruções. Também esqueça de usar a pilha e pilha, muito trabalho. Quando terminar, você terá um programa de máquina que pode ser carregado diretamente na memória flash do microcontrolador - também não é necessário vinculador.
Devido à falta de barramentos de endereço e dados externos em quase todos os microcontroladores (já que ocupariam muitos pinos necessários para portas e periféricos de E / S), praticamente todos os microcontroladores são programados por meio de uma interface especial como esta:
Normalmente, o "programador" à esquerda seria conectado a um PC, que faria o download de um arquivo de máquina gerado por um compilador / vinculador.
No entanto, se o programador tiver um teclado, como o abaixo:
então, é possível inserir os códigos hexadecimais de um programa gerado manualmente diretamente no programador e programar o dispositivo sem a necessidade de um compilador, vinculador ou PC que era o que você estava perguntando. (O teclado também é usado para editar arquivos hexadecimais e gerar somas de verificação.)
Concedidos muito poucos programadores têm teclados como este. Este não seria adequado para um hobby, pois provavelmente custa alguns milhares de dólares.
Esse programador em particular programa as peças antes de serem colocadas em uma placa; interfaces e soquetes estão disponíveis para vários PICs e também para Atmel AVRs, entre outros.