Техника - молодёжи 1986-03, страница 56

Техника - молодёжи 1986-03, страница 56

ны были бы располагаться С-ЕГГОГ-оборотни (числа с порядками между 600 и 700), с которыми мы познакомимся в следующем выпуске. Отдайте, например, такую команду (в ПМК введена последняя из приведенных программ, завершающаяся К7): В/О 1 ВП 58 С/П. На индикаторе — сообщение ЕГГОГ, под ним скрывается ОС-оборотень, равный 10464. Нажимаем КНОП, на индикаторе ноль. ИПС — индикатор гаснет, Тьма...

Казалось бы, Тьму можно использовать лишь в электронных играх со «смертельным исходом»: записав ее в регистр, нетрудно добиться того, чтобы при ошибке со стороны играющего пришлось бы вводить программу заново. Однако это далеко не так, практические применения Тьмы гораздо шире. Они связаны с «тайными адресами» программной памяти «Электроники».

В прошлом выпуске рассказывалось о 160-шаговом цикле, которым характеризуется работа ПМК. В этот цикл входят все адреса, заканчивающиеся на ка-кую-либо цифру. А куда передастся управление при команде перехода на адрес, завершающийся буквенным символом?

Отдайте в режиме АВТ, например, команду БП OA и посмотрите, куда передалось управление. F ПРГ. Знакомая картина, индикатор гаснет, мы столкнулись с Тьмой... Отключите «Электронику» на несколько секунд, включите ее снова и повторите эксперимент: БП OA. Только теперь перед F ПРГ нажмите ШГ влево и ШГ вправо. Казалось бы, ничто не должно измениться... F ПРГ. Справа горит 10, следовательно, управление передалось на этот адрес! Таким образом, «явному» адресу 10 соответствует «тайный» адрес OA; самое важное — при работе по программе команды переходов по ним дают совершенно тождественные результаты.

«Тайные» двойники есть у многих адресов главной и побочных ветвей 160-шагового цикла. Адресу 11 соответствует ОВ, 12—ОС, 13—ОД, 14—ОЕ, 20—1 А, 21 —1В и так далее (рекомендуем составить для себя табличку «тайных» и «явных» адресов всех ветвей 160-шагового цикла). Это позволяет, в частности, использовать хранящиеся в регистрах буквенные сообщения в качестве адресов перехода при косвенной адресации. (Несколько слов о косвенных обращениях вообще: в регистры ПМК можно записывать не только числа, с которыми нужно работать, но и номера регистров, с содержимым которых мы собираемся что-то делать, или адреса переходов.)

Сформируйте, например, символ Е и зашлите его в регистры 9 и 0:1 К7 (ЕГГОГ) ВП П9 ПО. Отдайте теперь команду К БП 9. Управление должно перейти на адрес, хранящийся в регистре 9, а там у нас находится символ Е! Куда перейдет управление? Логично предположить, что на «тайный» адрес ОЕ, которому, как мы уже знаем, соответствует «явный» адрес 14 основной

ветви программы. Действительно, если сделать ШГ влево, ШГ вправо, F ПРГ, убедимся, что это так. А что произойдет при команде К БП 0? Адрес, хранящийся в регистре 0, модифицируется (уменьшится на единичку), и управление перейдет на модифицированный адрес. Легко убедиться, что «модификация» в данном случае — это преобразование символа Е в Г, а управление передается на «тайный» адрес ОД, которому соответствует «явный» 13... (К слову сказать, буквенные символы могут использоваться и при командах косвенного вызова и косвенной записи. Если сейчас, например, отдать команду КИПО, Г преобразуется в L, а на индикаторе появится содержимое регистра В.)

«Тайные» адреса, как и «явные», можно использовать и в качестве кодов команд. Читатели А. Морев из Устинова, М. Точин из Вологды и другие обратили, например, внимание на блок выдачи видеосообщений в программе «Лу-нолет-3» («ТМ» № 9 за 1985 год): 60.Fx<0 61.61 62.Fx>0 63.63 64.С/П. Как он работает? «Мой внук Артем Горин, ученик пятого класса, утверждает, что здесь используется то обстоятельство, что коды операций ИП1 и ИПЗ совпадают с адресацией соответствующих условных переходов»,— пишет читатель Е. Григорьев из Москвы. Что ж, Артем совершенно прав. Находящееся в регистре X число сравнивается с нулем и, если условие по адресу 60 не выполняется, управление вторично передается на адрес 61. Эта комбинация цифр воспринимается теперь как код команды ИП1, и вызывается одно из двух видеосообщений. Оно, в свою очередь, сравнивается с нулем, благополучно проходит эту проверку (оба видеосообщения воспринимаются как положительные числа), и управление передается на команду останова С/П. Если же входное число меньше нуля, то оно переправляется на вторую проверку, естественно, не выдерживает ее, управление передается на адрес 63, эта комбинация воспринимается как код команды ИПЗ, вызывается второе сообщение и происходит программный останов. В результате экономятся две ячейки программной памяти: оба адреса перехода служат одновременно и командами вызова. Достаточно очевидно, что наличие «тайных» адресов расширяет возможности использования рассмотренного приема.

Как видим, охота на Тьму завершилась успешно: трофеи взяты немалые. Займемся очередным заданием — повторить маневры «Кон-Тики» в окрестностях Земли. Программа «Атмосфера-1», комплект исходных данных: 2200 П5 3660 П6 6371 ВП 3 П7 Fx2 9,81 ХП4 5 П1 17500 ПЗ, регистры А, В, С, Д, 0 заполнить в соответствии с результатами выполнения предыдущего задания. Комбинируя ракетное и аэродинамическое торможение, обеспечить переход корабля на тормозной эллипс с апогеем 2000 км, после чего

отработать оба варианта: 1) выполнить планировавшуюся операцию (выход на круговую орбиту высотой 2000 км) и 2) подготовиться к повторному входу в атмосферу по эллипсу с высотой в перигее 70 км (из-за вычислительных ошибок орбита, если оставить все как есть, пройдет в перигее вне атмосферы). Зафиксировать свои координаты и скорости на высоте 100 км и ждать следующего — судя по всему, последнего — выпуска. Посмотреть, как мог выглядеть финиш «Кон-Тики», если бы А. Перепелкин в свое время включил в заявку требование насчет парашютов^.

Михаил ПУХОВ

53

Обсуждение
Понравилось?
Войдите чтобы оставить комментарий
Предыдущая страница
Следующая страница
Информация, связанная с этой страницей:
  1. Отдам бесплатно технику

Близкие к этой страницы
Понравилось?