.COMファイルに関するwikpediaページhttps://en.wikipedia.org/wiki/COM_fileには次のように記載されています。
DOSの.COMファイルは、すべてのx86セグメントレジスタを同じ値に設定し、SP(スタックポインタ)レジスタを0xFFFEに設定するため、スタックはメモリセグメントの最上部から始まり、そこから下に向かって動作します。
しかし、これは実際にはスタックをセグメントの先頭の1ワード下から開始するように設定します。スタックに値をプッシュすると、CPUはSPを0xFFFCにデクリメントしてそこに値を格納するため、セグメントのトップワードが無駄になります。DOSがSPを代わりに0に設定しない理由は何ですか?
int 20h
そこに命令へのポインタを格納しているため、命令を発行してプログラムを終了できますret
。