На 8086 инструкция PUSH или неявное добавление в стек уменьшит регистр SP на два и сохранит соответствующее количество в SS: SP (т.е. 16 * SS + SP).Если регистр SP был $ 0000, данные перейдут к SS: $ FFFE.Если регистр SP был $ 0001, MSB данных перейдет к SS: $ 0000, а LSB перейдет к SS: $ FFFF.Процессор не будет обращать какого-либо особого внимания на обход стека.Хотя оборачивание стека, как правило, было бы плохо, в 8086-м существуют ситуации, когда его можно игнорировать, и это никак не повлияет.Например, если SS указал на 64 КБ ОЗУ, который не был нужен ни для чего другого, и программа, которая никогда не собиралась выходить, иногда перезапускалась, просто вызывая «main ()» без сброса стека, стек мог бы обернуться безвлияет на работу программы, поскольку все вычисления с эффективным адресом будут выполняться одинаково.
Обратите внимание, что на 80386 и более поздних процессорах поведение переполнения стека изменяется.PUSH, POP, CALL, RET и т. Д. Используют ESP, а не SP, а ESP переносится в $ FFFFFFFF, а не в $ FFFF.