.COM 파일 https://en.wikipedia.org/wiki/COM_file 에 대한 Wikpedia 페이지에서 다음을 읽습니다.
DOS의 .COM 파일은 모든 x86 세그먼트 레지스터를 동일한 값으로 설정하고 SP (스택 포인터) 레지스터를 0xFFFE로 설정하므로 스택은 메모리 세그먼트의 맨 위에서 시작하여 거기서부터 내려옵니다.
그러나 이것은 실제로 스택을 세그먼트 상단의 한 단어 아래에서 시작하도록 설정합니다. 스택에서 값을 푸시하면 CPU가 SP를 0xFFFC로 줄이고 거기에 값을 저장하여 세그먼트의 최상위 단어를 낭비합니다. DOS가 대신 SP를 0으로 설정하지 않은 이유는 무엇입니까?
int 20h
명령에 대한 포인터를 저장 하므로 명령을 실행하여 프로그램을 종료 할 수 있습니다ret
.