1/ l'interruption 21h est l'interruption DOS (comme le marqueur de fin de programme DOS), c'est une interruption logicielle mise en place par l'OS DOS et windows. Pour linux, les interruptions logicielles de l'OS sont mises à 80h.
L'interruption 16, c'est l'interruption de lecture de clavier.
En fait il y a une différence : int 21/fct 07 lit en fait le périphérique d'entrée standard. Comme on peut rediriger l'éntrée standard à partir d'un fichier, ça peut aussi lire le fichier.
int 16/fct 0 lit directement le clavier (d'ailleurs ça retourne les codes des touches).
Après, tu utilise celui que tu veux
2/ Que ce soit en assembleur ou autre langage il faut des commentaires expliquant en gros ce que ça fait. Les commentaires que tu as faits sont biens.
En assembleur c'est normal d'avoir un bouquin, surtout pour avoir la liste des fonctions et interruptions (ça sert à rien de les apprendre, car si tu changes de processeur, tu changes de jeux d'instructions). Et si professionellement, tu es amené à programmer en assembleur, ça ne sera probablement pas pour des processeurs intel
Personellement, j'utilise la bible du PC programmation système (pas la dernière édition), bien pratique
3/ Exécute ton programme en plein écran, pacre que c'est plus du DOS que du windows