Команды пересылки

Форматы команд этой группы приведены в  1.8. При выполнении данных команд содержимое регистра признаков (PSW) не изменяется, за исключением команд PUSHF, PUSHA, POPF, РОРА, производящих обращение к этому регистру.

Основные операции пересылки — загрузка операнда из памяти в регистр (LD ,LDB, LDBSE, LDBZE, ELD, ELDB) и запоминание содержимого регистра в памяти (ST, STB, EST, ESTB). Каждая из операций имеет два варианта: пересылка слова и пересылка байта (эти команды содержат в мнемокоде букву В). Команды LDBZE, LDBSE производят загрузку байта в 16-разрядный регистр с расширением путем заполнения старшего байта нулями или значениями знака операнда п — старшего бита адресуемого байта Ьаор. Таким образом, команда LDBSE сохраняет при расширении знак пересылаемого байта.

При расширенной адресации (команды ELD, ELDB, EST, ESTB) допускается обращение к полному объему адресуемой памяти 1 Мбайт. В этом случае адресом операнда служит содержимое 20 младших разрядов 24-разрядного регистра с номером (treg), заданным во втором байте команды числом, кратным четырем. Содержимое данной ячейки обозначается [treg]. Эти команды используют только косвенно-регистровую или индексную адресацию.

Команды ХСН, ХСНВ производят обмен содержимым между двумя регистрами или регистром и ячейкой памяти с использованием индексной адресации.

Команды очистки CLR, CLRB производят загрузку нуля в 16 — или 8-разрядный регистр с заданным номером (wreg) или (breg).

Команды пересылки блоков BMOV, BMOVI, EBMOVI выполняют перемещение блока информации объемом до 64 Кслов, число слов задается содержимым 16-разрядного регистра с номером (wreg). Начальные адреса блока-источника и блока-приемника содержатся в регистре-указателе (preg) или (p2reg). Пересылка выполняется с помощью автоинкрементной адресации, то есть содержимое регистра-указателя меняется после каждого цикла передачи. Команды BMOV, MOVI перемещают блоки в пределах младшей страницы ООН. При этом используется 32-разрядный регистр-указатель с номером (preg), кратным четырем. В этом регистре младшее слово служит начальным адресом блока-источника, старшее слово — начальным адресом блока-приемника.

Команда EBMOVI позволяет перемещать блоки в полном объеме памяти 1 Мбайт. Регистр-указатель содержит 64 разряда и адресуется номером (p2reg), кратным восьми. Начальный адрес блока-источника содержится в 32 младших разрядах регистра-указателя, начальный адрес блока-приемника — в 32 старших разрядах (на адресную шину поступают 20 разрядов). Блок-источник и блок-приемник могут размещаться как во внешней, так и во внутренней памяти, но их адреса не должны перекрываться.

При выполнении команды BMOV прерывания запрещены, команды BMOVI, EBMOVI допускают прерывания в процессе пересылки блока. Отметим, что при выполнении команды BMOV содержимое wreg не меняется и может использоваться следующей командой BMOV. При выполнении команд BMOVI, EBMOVI содержимое wreg меняется в случае прерывания, когда в него заносится число оставшихся циклов пересылки. Тогда требуется перезагрузка wreg перед следующей командой BMOVI или EBMOVI.

Comments are closed.