Sur la page wikpedia sur les fichiers .COM https://en.wikipedia.org/wiki/COM_file, il indique:
Les fichiers .COM sous DOS définissent tous les registres de segments x86 à la même valeur et le registre SP (pointeur de pile) à 0xFFFE, ainsi la pile commence tout en haut du segment de mémoire et fonctionne à partir de là.
Mais cela définit en fait la pile pour commencer un mot sous le haut du segment. Lorsque vous poussez une valeur sur la pile, le CPU décrémente SP à 0xFFFC et y stocke la valeur, gaspillant ainsi le mot supérieur du segment. Quelle est la raison pour laquelle DOS ne définit pas SP à 0 à la place?
int 20h
instruction afin que vous puissiez quitter votre programme en émettant uneret
instruction.