К ИПРГ: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
м (Арви Хэкер переименовал страницу K PRGM в К ИПРГ поверх перенаправления)
Нет описания правки
Строка 1: Строка 1:
Команда '''К ИПРГ''' ('''K PRGM''') «Считывание байта из памяти программ» с кодом 28 записывает в [[RX|регистр X]] содержимое ячейки памяти программ с адресом, равным значению, содержащемуся в [[RX|регистре X]] до выполнения команды. Содержимое ячейки памяти программ, один байт, записывается в [[RX|регистр X]] в виде целого числа от 0 до 255. Число, находившееся до выполнения операции в [[RX|регистре X]], передаётся в [[X1|регистр предыдущего результата X1]].
Команда '''К ИПРГ''' ('''K PRGM''') «Считывание байта из памяти программ» с кодом 28 записывает в [[RX|регистр X]] содержимое ячейки памяти программ с адресом, равным значению, содержащемуся в [[RX|регистре X]] до выполнения команды. Содержимое ячейки памяти программ, один байт, записывается в [[RX|регистр X]] в виде целого числа от 0 до 255. Число, находившееся до выполнения операции в [[RX|регистре X]], передаётся в [[X1|регистр предыдущего результата X1]].
На МК-161 с прошивкой 1.20 (08.07.14) команда '''К ИПРГ''' выполняется за 368,9 мкс (6,02 КНОП), 2710 команд/с.


== Чтение памяти программ через регистры функций ==
== Чтение памяти программ через регистры функций ==

Версия от 06:50, 21 апреля 2015

Команда К ИПРГ (K PRGM) «Считывание байта из памяти программ» с кодом 28 записывает в регистр X содержимое ячейки памяти программ с адресом, равным значению, содержащемуся в регистре X до выполнения команды. Содержимое ячейки памяти программ, один байт, записывается в регистр X в виде целого числа от 0 до 255. Число, находившееся до выполнения операции в регистре X, передаётся в регистр предыдущего результата X1.

На МК-161 с прошивкой 1.20 (08.07.14) команда К ИПРГ выполняется за 368,9 мкс (6,02 КНОП), 2710 команд/с.

Чтение памяти программ через регистры функций

Кроме команды К ИПРГ в ЭКВМ предусмотрена другая возможность чтения содержимого памяти программ - с использованием индексного регистра.

Запись и чтение значений индексного регистра производится при обращении к регистру памяти с адресом 9042, при этом число в регистре X стека преобразуется в целое и ограничивается до значения 9999.

Чтение содержимого памяти программ производится при выполнении команды чтения из регистров памяти с адресами 9043, и 9044. При этом, при обращении к регистру с адресом 9043 стек поднимается, содержимое ячейки памяти программ, адрес которой записан в индексный регистр, заносится в регистр X стека. При обращении к регистру с адресом 9044, после чтения содержимого ячейки памяти программ, производится автоматическое увеличение содержимого индексного регистра на единицу. При достижении максимального значения, содержимое индексного регистра обнуляется.

Операция записи по адресам 9043 и 9044 не изменяет стек ЭКВМ, память программ и содержимое индексного регистра.

История

Команда советских ПМК К × с кодом 28 служила для вывода аварийного сообщения  ЕГГOГ . Если в программе советского ПМК команда К × использована для выдачи сообщения об ошибке, её следует заменить на К - или К ÷. Эти команды в ЭКВМ, как и в советских ПМК, вызывают аварийный останов с выводом сообщения. Перед заменой следует внимательно изучить алгоритм работы программы, как и в других аналогичных случаях, поскольку код команды может быть использован одновременно и как адрес перехода.

Ссылки