
Сообщение от
SegaBoy
F809 это вывод одиночного символа из регистра C. Там не требуется никаких стоп-кодов.
0E это не управляющий код - это символ стрелка вправо. Можно заменить 0E 21, на 0E 0E и убедиться в этом.
В эмуляторе вывод портится из-за последней команды C9 - ret. После неё стек налазит на экран, но программа переходит на адрес 0000 и выполняет новый цикл. С каждым разом всё дальше наезжая стеком на экран. Если в эмуляторе нажать ресет, то программа будет исполняться как и на реале - выведет один символ ‘!’ На экран и повиснет - улетит куда-то в неизвестность.
Непонятно что хотел топикпастер. Если вывести символ ‘!’ в бесконечном цикле на экран, то последняя команда должна быть не C9 (ret), а C3 0000 (jmp 0000). Если же вывести один раз символ и вернутся в монитор, то C3 F86C - переход к приглашению командной строки.