Просто, если при эмуляции следовать некоторым описаниям команды MARK - новое значение SP должно получаться из старого значения SP, а на самом деле - старое значение SP выбрасывается, а новое значение SP получается из значения PC в момент выполнения команды MARK.
Когда команда MARK лежит в стеке - значения SP и PC в момент выполнения команды MARK совпадают, поэтому неправильная эмуляция MARK ( на основе неправильного описания ) даёт корректный результат. Но когда команда MARK не в стеке - неправильная эмуляция даёт неправильный результат.





Ответить с цитированием