Редактирование: К ИПРГ
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
Команда '''К ИПРГ''' ('''K PRGM''') «Считывание байта из памяти программ» с кодом 28 записывает в [[X|регистр X]] содержимое ячейки памяти программ с адресом, равным значению, содержащемуся в [[X|регистре X]] до выполнения команды. Содержимое ячейки памяти программ, один байт, записывается в [[X|регистр X]] в виде целого числа от 0 до 255. Число, находившееся до выполнения операции в [[X|регистре X]], передаётся в [[X1|регистр предыдущего результата X1]]. | |||
Команда '''К ИПРГ''' ('''K PRGM''') «Считывание байта из памяти программ» с кодом 28 записывает в [[ | |||
== Чтение памяти программ через регистры функций == | == Чтение памяти программ через регистры функций == | ||
Строка 22: | Строка 5: | ||
Кроме команды [[К ИПРГ]] в ЭКВМ предусмотрена другая возможность чтения содержимого [[память программ|памяти программ]] - с использованием [[R9042|индексного регистра]]. | Кроме команды [[К ИПРГ]] в ЭКВМ предусмотрена другая возможность чтения содержимого [[память программ|памяти программ]] - с использованием [[R9042|индексного регистра]]. | ||
Запись и чтение значений [[R9042|индексного регистра]] производится при обращении к [[R9042|регистру памяти с адресом 9042]], при этом число в [[ | Запись и чтение значений [[R9042|индексного регистра]] производится при обращении к [[R9042|регистру памяти с адресом 9042]], при этом число в [[X|регистре X]] [[стек]]а преобразуется в целое и ограничивается до значения 9999. | ||
Чтение содержимого [[память программ|памяти программ]] производится при выполнении команды чтения из [[регистр памяти|регистров памяти]] с адресами [[R9043|9043]], и [[R9044|9044]]. При этом, при обращении к [[R9043|регистру с адресом 9043]] [[ | Чтение содержимого [[память программ|памяти программ]] производится при выполнении команды чтения из [[регистр памяти|регистров памяти]] с адресами [[R9043|9043]], и [[R9044|9044]]. При этом, при обращении к [[R9043|регистру с адресом 9043]] [[стек]] поднимается, содержимое ячейки памяти программ, адрес которой записан в [[R9042|индексный регистр]], заносится в [[регистр X]] [[стек]]а. При обращении к [[R9044|регистру с адресом 9044]], после чтения содержимого ячейки [[память программ|памяти программ]], производится автоматическое увеличение содержимого [[R9042|индексного регистра]] на единицу. При достижении максимального значения, содержимое [[R9042|индексного регистра]] обнуляется. | ||
Операция записи по адресам [[R9043|9043]] и [[R9044|9044]] не изменяет [[ | Операция записи по адресам [[R9043|9043]] и [[R9044|9044]] не изменяет [[стек]] ЭКВМ, [[память программ]] и содержимое [[R9042|индексного регистра]]. | ||
== История == | == История == | ||
Команда советских ПМК К × с кодом 28 служила для вывода аварийного сообщения | Команда советских ПМК К × с кодом 28 служила для вывода аварийного сообщения "ERROR". Если в программе советского ПМК команда К × использована для выдачи сообщения об ошибке, её следует заменить на [[К -]] или [[К ÷]]. Эти команды в ЭКВМ, как и в советских ПМК, вызывают [[аварийный останов]] с выводом сообщения. Перед заменой следует внимательно изучить алгоритм работы программы, как и в других аналогичных случаях, поскольку код команды может быть использован одновременно и как адрес перехода. | ||
== Ссылки == | == Ссылки == | ||
* [http://mk.semico.ru/mk_d11.htm#p4 Команда К ИПРГ на сайте НПП «СЕМИКО», п. 4.4] | |||
* [http://mk.semico.ru/d1_p6.htm#d1_6_1_3 Чтение содержимого памяти программ на сайте НПП «СЕМИКО», п. 6.1.3] | |||
* См. также регистры функций [[R9042|9042]], [[R9043|9043]] и [[R9044|9044]] | * См. также регистры функций [[R9042|9042]], [[R9043|9043]] и [[R9044|9044]] | ||
[[Category:Все команды]] | [[Category:Все команды]] | ||
[[Category:Команды ЭКВМ]] | [[Category:Команды ЭКВМ]] |