Ну наконец-то ты соизволил почитать матчасть. В этом свете посмотри на свое предыдущее сообщение и найди, где ты ошибался.
Успокойся, не надо паники. Команда PRINT AT x,y;c$ не производит запись в переменные x и y и c$. Она производит считывание из этих переменных. Адресация (любая) применяется ведь не только для записи, но и для считывания, правильно? В ассемблере для этих целей используются команды вида LD A,(VarX).
Что же касается собственно печати на экран - то для программиста на бейсике неважно, как она реализуется. Печать может проходить не путем записи в экранную область, а путем вывода символов на принтер или на терминал. Программисту на бейсике не нужно заботиться о таких деталях реализации. Его изолирует от этих деталей слой абстракции, предоставляемый бейсиком.
В случае неправильных значений во всех трех указанных переменных максимум что может произойти плохого - это порча содержимого экрана. Но уж никак не порча программы или содержимого переменных.
Ты сейчас углубляешься в реализацию команды PRINT AT самим бейсиком. Но с точки зрения программиста на бейсике вся эта команда выполняется как одно целое. И последствия ее выполнения вполне четко ограничены, что никак не могут испортить программу или ее переменные. Мы с тобой знаем, что печать производится путем записи в экранную область, но начиная программировать на бейсике, нет необходимости даже понимать, что такое экранная область, как она устроена и где находится.
Если проводить аналогию с ассемблером - то допустим, мы выполняем команду LD (VarX),A. Эта команда использует прямую адресацию, поэтому не может изменить содержимое памяти где-либо, кроме адреса VarX. Но это только с точки зрения программиста данная команда выполняется как одно целое и имеет конкретные последствия. С точки зрения разработчика процессора, эта команда выполняется за много шагов. Сначала адрес VarX считывается из памяти и помещается во внутренний буферный регистр Z80 (MEMPTR), а потом во время записи в память процессор ставит на шину адреса содержимое этого регистра. То есть внутри процессора имеет место нечто, подобное косвенной адресации. Но для программиста это неважно до тех пор, пока процессор не вышел из строя.
Я надеюсь, ты не предлагаешь начинающим программистам на ассемблере изучать, как устроен процессор и как он выполняет "элементарные" команды?





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