Редактирование: R9212
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
'''R9212''' Поиск значения по | '''R9212''' Поиск значения по индексу «Поиск значения по индексу ([[RX|X]] - индекс 0-254)» | ||
Операция производится при выполнении | Операция производится при выполнении команды записи в регистр памяти данных с адресом 9212. В [[RX|регистре X]] [[стек]]а задаётся индекс в диапазоне от 0 до 254. Преобразование содержимого [[RX|регистра X]] [[стек]]а при обращении к функции происходит аналогично модификации при косвенной адресации. | ||
Функция выполняет последовательные обращения к содержимому [[память программ|памяти программ]] по адресам, отстоящим от содержимого [[R9042|индексного регистра памяти программ]] на величины, кратные трём. Считанный из памяти программ | Функция выполняет последовательные обращения к содержимому [[память программ|памяти программ]] по адресам, отстоящим от содержимого [[R9042|индексного регистра памяти программ]] на величины, кратные трём. Считанный из памяти программ ключ очередной группы сравнивается в содержимым [[RX|регистра X]] [[стек]]а. Обращения продолжаются до совпадения значений индекса и ключа, до считывания из памяти программ признака окончания таблицы - числа 255 (0FFh) или до выхода за границы [[память программ|памяти программ]]. | ||
При нахождении совпадения функция считывает два следующих последовательных байта из [[память программ|памяти программ]]. | При нахождении совпадения функция считывает два следующих последовательных байта из [[память программ|памяти программ]]. | ||
Имеющий меньший адрес байт интерпретируется | Имеющий меньший адрес байт интерпретируется как старший байт двухбайтового шестнадцатеричного числа. Байт имеющий больший адрес — как младший байт. Считанное из памяти программ число преобразуется в целое в диапазоне от 0 до 65536 и помещается в [[RX|регистр X]] [[стек]]а, замещая его предыдущее содержимое. | ||
Если совпадения не обнаружено до считывания признака окончания таблицы или до выхода за границу [[память программ|памяти программ]], то в [[RX|регистр X]] | Если совпадения не обнаружено до считывания признака окончания таблицы или до выхода за границу [[память программ|памяти программ]], то в [[RX|регистр X]] стека записывается число минус 1. | ||
Операция чтения из регистра памяти данных по указанному адресу не изменяет [[ | Операция чтения из регистра памяти данных по указанному адресу не изменяет [[стек]] ЭВМ. | ||
== Ссылки == | == Ссылки == | ||
* [http://mk.semico.ru/d1_p17.htm#d1_17_2_3 Поиск значения по индексу (R9212) на сайте НПП «СЕМИКО», п. 17.2.3.] | |||
[[Category:Регистры]] | [[Category:Регистры]] | ||
[[Category:Регистры функций]] | [[Category:Регистры функций]] | ||
[[Category:Функции работы с таблицами]] | [[Category:Функции работы с таблицами]] |