Trên trang wikpedia về các tệp .COM https://en.wikipedia.org/wiki/COM_file nó đọc:
Các tệp .COM trong DOS đặt tất cả các thanh ghi phân đoạn x86 về cùng một giá trị và thanh ghi SP (con trỏ ngăn xếp) thành 0xFFFE, do đó ngăn xếp bắt đầu ở đầu phân đoạn bộ nhớ và hoạt động từ đó.
Nhưng điều này thực sự đặt ngăn xếp để bắt đầu một từ bên dưới đầu phân khúc. Khi đẩy một giá trị trên ngăn xếp, CPU sẽ giảm SP xuống 0xFFFC và lưu trữ giá trị ở đó, do đó làm lãng phí từ trên cùng của phân đoạn. Lý do nào khiến DOS không đặt SP thành 0 thay vào đó?
int 20h
lệnh ở đó để bạn có thể thoát khỏi chương trình của mình bằng cách phátret
lệnh.