C'est effectivement possible, en effectuant le travail du compilateur à la main. Il va sans dire que cela devient vite très fastidieux, mais ça s'est fait à une époque. Moi-même, j'ai programmé mon premier PIC en écrivant le programme sur papier, en l'assemblant à la main avec la liste des codes à côté, et en transposant le tout dans un fichier hexadécimal avant de l'envoyer au programmateur.
À chaque micro-processeur correspond sa table des instructions, lequelles sont déclinées dans toutes les versions possibles en fonction des modes d'adressage. Tu n'as qu'à relever (parfois calculer) les bonnes valeur et les aligner les unes après les autres.
Ça, c'est dans le principe. Après, pour faire un programme qui s'épanouisse pleinement au sein d'un système d'exploitation moderne, il faut qu'il puisse interagir avec et connaître à un moment
t tous les points d'entrées relève de la gageure. Ensuite, le format *.exe sous Windows est assez compliqué en lui-même. C'est en soi un travail à temps plein que de vouloir le définir à la main, presque autant que la compilation proprement dite.
Cela dit, les programmes *.COM étaient faits, eux, pour être une image stricte, monolithique et sans aucune structure d'un petit programme. Ils se prêtaient assez bien à ce genre d'exercice. En convertissant les codes hexadécimaux obtenus en codes ASCII, on arrivait à créer un programme exécutable avec le bloc-notes.
Par exemple, pour faire facilement un programme qui se contentait de ressortir, on pouvait utiliser l'instruction « INT 20h » sur PC. Une fois assemblé, on obtenait CD 20. Traduit en décimal, ça faisait 205 32. Après avoir ouvert un bloc-notes, 205 s'obtenait avec Alt+2+0+5, et 32, c'était l'espace, tout simplement. Une fois saisi ces deux caractères, on sauvait le tout sous « prog.com » et on avait un exécutable en bonne et due forme.
0 |
0 |