Usted dijo "pequeño microcontrolador y no tenía interfaz, ni computadora, ni depurador, compilador ni ensamblador". Bueno, puedes arreglártelas sin la computadora, el depurador, el compilador o el ensamblador, pero debes tener algún tipo de interfaz para conectarte con el microcontrolador para cargar el programa.
Primero que nada, olvídate de cualquier lenguaje de alto nivel como C. Luego, la forma más fácil es escribir tu programa en lenguaje ensamblador, pero no uses el ensamblador para traducirlo al código de máquina. En su lugar, busque cada una de las instrucciones de ensamblaje en el manual de programación, encuentre su código hexadecimal equivalente y escríbalo.
Tendrá que asignar sus propias variables, de modo que pueda completar las direcciones apropiadas en la parte del operando de las instrucciones. También olvídate de usar la pila y el montón, demasiado trabajo. Cuando termine, tendrá un programa de máquina que se puede cargar directamente en la memoria flash del microcontrolador, sin que sea necesario un enlazador.
Debido a la falta de direcciones externas y buses de datos en casi todos los microcontroladores (ya que ocuparían demasiados pines que necesitan los puertos de E / S y los periféricos), prácticamente todos los microcontroladores están programados a través de una interfaz especial como esta:
Normalmente,el"programador" de la izquierda se conectaría a una PC, que descargaría un archivo de máquina generado por un compilador / enlazador.
Sin embargo, si el programador tiene un teclado, como el de abajo:
luego, uno puede ingresar los códigos hexadecimales para un programa generado manualmente en el programador, y programar el dispositivo sin necesidad de un compilador, enlazador o PC, que era lo que estaba preguntando. (El teclado también se usa para editar archivos hexadecimales y generar sumas de comprobación).
Por supuesto, muy pocos programadores tienen teclados como este. Este no sería adecuado para un aficionado, ya que probablemente cuesta unos dos mil dólares.
Este programador en particular programa partes antes de colocarlas en un tablero; Las interfaces y los sockets están disponibles para varios PIC y también para AVR Atmel, entre otros.