RTN: различия между версиями
AtH (обсуждение | вклад) (На нулевой адрес — клавиша В/О, а команда В/О — на адрес страницы 01) |
AtH (обсуждение | вклад) (→Ссылки) |
||
Строка 29: | Строка 29: | ||
== Ссылки == | == Ссылки == | ||
{{Документация|mk_d11.htm#p14|Команда В/О на сайте НПП «СЕМИКО», п. 14.7}} | {{Документация|mk_d11.htm#p14|Команда В/О на сайте НПП «СЕМИКО», п. 14.7}} | ||
* См. также команды [[GSB|ПП]], [[РР В/О]] | * См. также команды [[GSB|ПП]], [[РР В/О]], команду ЭКВМ [[P GSB|Р ПП]] и [[Стек возвратов]] | ||
* См. также [[клавиша В/О|клавишу {{Чёрная клавиша|В/О}}]] | * См. также [[клавиша В/О|клавишу {{Чёрная клавиша|В/О}}]] | ||
* [https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0 Подпрограмма на Википедии] | * [https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0 Подпрограмма на Википедии] |
Текущая версия от 20:18, 31 октября 2020
Команда В/О | |
В/О | |
Код команды | 52 |
Русская мнемоника | В/О |
Латинская мнемоника | RTN |
Группа команд | команды вызова и возврата из подпрограмм |
Число операндов | — |
Нажимаемые клавиши | В/О |
Число шагов | 1 |
Признак перезаписи | сбрасывается |
Первое появление | Б3-21 |
Время выполнения | ? |
Скорость выполнения | ? команд/с |
Команда В/О (лат. RTN) «Возврат из подпрограммы или переход на адрес страницы 01» с кодом 52 вызывает возврат из подпрограммы.
Если команда В/О использована вне подпрограммы (адрес в стеке возвратов отсутствует), то происходит безусловный переход на адрес 01 в пределах текущей страницы. Эта недокументированная особенность широко использовалась в программах для ПМК и была документирована в ЭКВМ.
В режиме автоматической работы команда В/О очищает стек возвратов и сбрасывает содержимое счетчика адреса, что эквивалентно переходу на нулевой адрес. В советских ПМК не существовало документированного способа очистить стек возвратов — с другой стороны, при его переполнении сообщений об ошибке не выдавалось.
История[править]
Использование шестнадцатеричных адресов в ЭКВМ может привести к переходу на другую страницу памяти программ. Если в исходной программе советских ПМК в адресах 100–104 использовались команды переходов или команда В/О вне подпрограммы, вместо них в ЭКВМ можно использовать команды переходов с расширенным адресом.
Команда В/О штатным образом используется для возврата из подпрограмм. В советских ПМК эта команда часто использовалась в программах для перехода на адрес 01. В ЭКВМ эта возможность документирована, однако при использовании команды В/О вне подпрограммы переход производится на адрес 01 в пределах текущей страницы. При этом возврат из подпрограммы командой В/О в ЭКВМ выполняется корректно - по полному адресу.
В советских ПМК при полном заполнении стека возвратов из подпрограмм, а его глубина составляла всего 5 адресов, команда В/О вне подпрограммы начинала выполнять переход на адреса, зависящие от предыдущего содержимого стека (см. «Школа начинающего программиста. Занятие 26», В.А. Хмелюк, «Наука и жизнь» №11 - 1989 г.). В ЭКВМ переход в этом случае всегда выполняется по адресу 01 текущей страницы и от предыдущего содержимого стека не зависит. Глубина стека возвратов в ЭКВМ увеличена до 64 адресов, переполнение вызывает сообщение об ошибке.
Ссылки[править]
- Команда В/О на сайте НПП «СЕМИКО», п. 14.7
- См. также команды ПП, РР В/О, команду ЭКВМ Р ПП и Стек возвратов
- См. также клавишу В/О
- Подпрограмма на Википедии
- Return statement в английской Википедии (англ.)