<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://emuverse.ru/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Panther</id>
	<title>Emuverse - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://emuverse.ru/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Panther"/>
	<link rel="alternate" type="text/html" href="https://emuverse.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Panther"/>
	<updated>2026-09-17T18:03:17Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%9A%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_BASIC-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2&amp;diff=4296</id>
		<title>Искра-226/Кодирование BASIC-файлов</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%9A%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_BASIC-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2&amp;diff=4296"/>
		<updated>2026-08-28T07:12:56Z</updated>

		<summary type="html">&lt;p&gt;Panther: addition&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оттранслированное представление BASIC 02&#039;&#039;&#039; — внутренний формат записи программы [[Искра-226]], включаемый параметром &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; оператора &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;. Имена операторов и функций заменены однобайтовыми токенами, имена переменных — индексами; текст в потоке остаётся только внутри строковых литералов.&lt;br /&gt;
&lt;br /&gt;
Внешняя структура файла, указатель каталога и заголовочный сектор описаны в статье [[Искра-226/Файловая система|Файловая система]]; оттранслированное представление отмечено битом 0 байта 9 заголовочного сектора. Смысл дисковых операторов — в статье [[Искра-226/Файлы данных BASIC 02|Файлы данных BASIC 02]].&lt;br /&gt;
&lt;br /&gt;
== Сборка потока ==&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов, беря с каждого ровно 254 байта, &#039;&#039;&#039;без обрезки хвостовых нулей&#039;&#039;&#039;. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
== Пролог ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Длины — 16-битные, старший байт первым. Число записей: &amp;lt;code&amp;gt;L1/8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;L2/4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;L3/4&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Четырёхбайтовое поле ===&lt;br /&gt;
&lt;br /&gt;
У части файлов между таблицами и первой записью строки лежат четыре лишних байта: &amp;lt;code&amp;gt;0A 19&amp;lt;/code&amp;gt; и двоично-десятичное число, своё у каждого файла. Назначение не установлено.&lt;br /&gt;
&lt;br /&gt;
Наличие поля определяется проверкой записи по вычисленному смещению: оба байта номера строки — правильное двоично-десятичное число, байт длины не меньше единицы, байт по адресу &amp;lt;code&amp;gt;p + 2 + len&amp;lt;/code&amp;gt; равен &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если проверка не проходит, а по смещению +4 проходит — поле присутствует.&lt;br /&gt;
&lt;br /&gt;
== Записи строк ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;номер строки: 2 байта BCD&amp;gt; &amp;lt;len: 1 байт&amp;gt; &amp;lt;тело&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Записи разделены байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой разделителя нет, после последней он есть и служит признаком конца потока.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039;; следующий разделитель стоит по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; служебные байты в длину не входят.&lt;br /&gt;
&lt;br /&gt;
=== Выравнивание ===&lt;br /&gt;
&lt;br /&gt;
Если запись не помещается в остаток сектора, остаток заполняется нулями. Правило: после разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; по смещению &#039;&#039;q&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 b = (⌊q / 254⌋ + 1) × 254&lt;br /&gt;
 если b &amp;gt; q и все байты потока с q по b−1 нулевые, то q = b&lt;br /&gt;
&lt;br /&gt;
Переход к следующему сектору выполняется только тогда, когда весь остаток текущего 254-байтового куска нулевой. Длина выравнивания доходит до шести байт.&lt;br /&gt;
&lt;br /&gt;
Строка с номером 0 кодируется байтами &amp;lt;code&amp;gt;00 00 &amp;amp;lt;len&amp;amp;gt;&amp;lt;/code&amp;gt;; безусловный пропуск пары нулей перед номером строки разрушает разбор таких файлов.&lt;br /&gt;
&lt;br /&gt;
== Операторы ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;токен глагола: 1 байт&amp;gt; &amp;lt;len: 1 байт&amp;gt; &amp;lt;операнды: len байт&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов; &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов. Явная длина позволяет разрезать программу на операторы, не зная значений токенов, и служит проверкой синхронизации.&lt;br /&gt;
&lt;br /&gt;
=== Пример разбора ===&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «…» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
== Таблица глаголов ==&lt;br /&gt;
&lt;br /&gt;
Значения назначены тематическими группами. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Токен !! Оператор&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || IF END THEN || &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN || &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON || &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; || &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || &amp;lt;code&amp;gt;5B&amp;lt;/code&amp;gt; || DATA RESAVE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE || &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER || &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK(&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR || &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD || &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST || &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR(&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN || &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR(&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt; || RETURN CLEAR || &amp;lt;code&amp;gt;63&amp;lt;/code&amp;gt; || ADD C&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;33&amp;lt;/code&amp;gt; || LIST S || &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt; || ON ERROR || &amp;lt;code&amp;gt;65&amp;lt;/code&amp;gt; || LIST RES&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET || &amp;lt;code&amp;gt;66&amp;lt;/code&amp;gt; || DATA LOAD BT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;присваивание без ключевого слова&#039;&#039; || &amp;lt;code&amp;gt;68&amp;lt;/code&amp;gt; || DATA SAVE BT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;37&amp;lt;/code&amp;gt; || COM CLEAR || &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;38&amp;lt;/code&amp;gt; || TRACE OFF || &amp;lt;code&amp;gt;6E&amp;lt;/code&amp;gt; || DATA SAVE BA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;39&amp;lt;/code&amp;gt; || DATA LOAD || &amp;lt;code&amp;gt;6F&amp;lt;/code&amp;gt; || DATA SAVE DA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; || DEFFN&#039; с текстом клавиши || &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; || DATA LOAD BA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; — краткая форма REM || &amp;lt;code&amp;gt;71&amp;lt;/code&amp;gt; || DATA LOAD DA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO || &amp;lt;code&amp;gt;72&amp;lt;/code&amp;gt; || LOAD DA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || &amp;lt;code&amp;gt;73&amp;lt;/code&amp;gt; || SAVE DA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP || &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( || &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || &amp;lt;code&amp;gt;76&amp;lt;/code&amp;gt; || DATA SAVE DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL || &amp;lt;code&amp;gt;77&amp;lt;/code&amp;gt; || DATA SAVE DC CLOSE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || &amp;lt;code&amp;gt;78&amp;lt;/code&amp;gt; || DATA SAVE DC OPEN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT || &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( || &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;49&amp;lt;/code&amp;gt; || DATA SAVE || &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD || &amp;lt;code&amp;gt;7C&amp;lt;/code&amp;gt; || LIST DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( || &amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt; || LOAD DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE || &amp;lt;code&amp;gt;7F&amp;lt;/code&amp;gt; || MOVE END&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM || &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; || SAVE DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT || &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51&amp;lt;/code&amp;gt; || RESTORE || &amp;lt;code&amp;gt;82&amp;lt;/code&amp;gt; || SCRATCH DISK&lt;br /&gt;
|-&lt;br /&gt;
| || || &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблица прочитана из интерпретатора на загрузочном диске: с адреса 0x1840 лежит алфавитный список 51 однословного ключевого слова без разделителей, с 0x192E — 33 записи сочетаний вида «индекс первого слова плюс 0x60, текст продолжения», с 0x19B6 — 84-байтовый массив перестановки, дающий каждой записи её токен.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; в таблице один, с токеном &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt;; токен &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; (форма с формальными параметрами) машина ставит сама при разборе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RES&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt;) — самостоятельное ключевое слово; &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt; собирается из &amp;lt;code&amp;gt;RES&amp;lt;/code&amp;gt; и продолжения &amp;lt;code&amp;gt;TORE&amp;lt;/code&amp;gt;. Что делают &amp;lt;code&amp;gt;RES&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;LIST RES&amp;lt;/code&amp;gt;, документация не описывает.&lt;br /&gt;
&lt;br /&gt;
== Двухбайтовые глаголы ==&lt;br /&gt;
&lt;br /&gt;
Матричные, символьные и графические операторы кодируются префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; и подкодом; байт длины стоит после подкода:&lt;br /&gt;
&lt;br /&gt;
 06 &amp;lt;подкод&amp;gt; &amp;lt;len&amp;gt; &amp;lt;операнды&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Подкод !! Оператор !! Подкод !! Оператор&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || PLOT || &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || DRAW&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || MAT &#039;&#039;присваивание&#039;&#039; || &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt; || NPLOT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || MAT REDIM || &amp;lt;code&amp;gt;1A&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤MOVE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || MAT READ || &amp;lt;code&amp;gt;1B&amp;lt;/code&amp;gt; || TURN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;04&amp;lt;/code&amp;gt; || MAT INPUT || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; || STRETCH&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; || MAT PRINT || &amp;lt;code&amp;gt;1D&amp;lt;/code&amp;gt; || FRAME&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; || MAT COPY || &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || LABEL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; || MAT MOVE (?) || &amp;lt;code&amp;gt;1F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤COPY&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; || MAT SEARCH || &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤LET&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt; || MAT SORT (?) || &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || WINDOW&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || LINPUT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0D&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤PACK&amp;lt;/code&amp;gt; (?) || &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || ASMB&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0E&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤UNPACK&amp;lt;/code&amp;gt; (?) || &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || REPLACE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤OPEN&amp;lt;/code&amp;gt; || ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt; || DOT || ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; || DDRAW || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Имена &amp;lt;code&amp;gt;ORIGIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DNPLOT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;NDRAW&amp;lt;/code&amp;gt; встречаются в текстовых листингах, но подкодов не имеют: все подкоды, встречающиеся в оттранслированных файлах, уже опознаны.&lt;br /&gt;
&lt;br /&gt;
Действие графических операторов и формат самого рисунка описаны в статье [[Графический буфер BASIC 02]].&lt;br /&gt;
&lt;br /&gt;
== Таблица операндов ==&lt;br /&gt;
&lt;br /&gt;
Токены операндов прочитаны из интерпретатора с адреса 0x1A0C: пул слов и таблица 16-битных указателей на них с адреса 0x1B18, младший байт первым, 114 слов. Токен слова — его номер в пуле плюс смещение прогона; прогонов четыре, по числу позиций разбора.&lt;br /&gt;
&lt;br /&gt;
=== Двузначные токены ===&lt;br /&gt;
&lt;br /&gt;
Часть токенов читается по-разному в зависимости от того, ожидается на их месте знак операции или очередной операнд. Отдельного признака в файле нет, различает состояние разбора.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! В позиции операции !! В позиции операнда&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D2&amp;lt;/code&amp;gt; || STEP || параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; оператора &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;$GIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt; || BEG; &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; после &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || END&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || OPEN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || — || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; — номер строки таблицы устройств; «2» — второй аргумент &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;BIN(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — деление || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — префикс адреса устройства&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || однобайтовый литерал: значение в следующем байте&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; || ссылка на массив целиком&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || XOR || дробная константа&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || OR || константа с порядком&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || AND || константа, 2 байта BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || ARC || константа, 1 байт BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; бинарный || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; унарный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EC&amp;lt;/code&amp;gt; || TRN || &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ED&amp;lt;/code&amp;gt; || INV || &amp;lt;code&amp;gt;LEN(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EE&amp;lt;/code&amp;gt; || IDN || &amp;lt;code&amp;gt;NUM(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; || ZER || &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt; || CON || &amp;lt;code&amp;gt;FN&amp;amp;lt;имя&amp;amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ключевые слова &amp;lt;code&amp;gt;TRN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;IDN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ZER&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;CON&amp;lt;/code&amp;gt; встречаются только внутри оператора &amp;lt;code&amp;gt;MAT&amp;lt;/code&amp;gt;. Слова &amp;lt;code&amp;gt;OPEN&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;ARC&amp;lt;/code&amp;gt; взяты из таблицы интерпретатора; в оттранслированных файлах &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; встречается только как знак равенства, а &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — только как константа.&lt;br /&gt;
&lt;br /&gt;
=== Однозначные токены ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt; || ссылка на переменную по индексу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt; || FROM&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CB&amp;lt;/code&amp;gt; || ALL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; || GOSUB в составе &amp;lt;code&amp;gt;ON … GOSUB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; || GOTO в составе &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CF&amp;lt;/code&amp;gt; || буквы &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;HEX(&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал в кавычках: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt; || строковый литерал в апострофах, кодирование то же&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || константа, 1 байт BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; — группирующая скобка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;F8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ABS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INT(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RND(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SGN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SQR(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOG(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EXP(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F9&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SIN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCSIN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCCOS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCTAN(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || вне выражения — разделитель записей строк&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ссылками на переменные являются значения &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt;, а не &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;BF&amp;lt;/code&amp;gt;: первый токен — &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;. Индексы &amp;lt;code&amp;gt;C0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt; встречаются в программах более чем со 192 переменными.&lt;br /&gt;
&lt;br /&gt;
=== Два вида строковых литералов ===&lt;br /&gt;
&lt;br /&gt;
Строки в кавычках система выводит как строки из &#039;&#039;&#039;прописных&#039;&#039;&#039; букв, строки в апострофах — из &#039;&#039;&#039;строчных&#039;&#039;&#039;.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; Так на машине без строчных букв на клавиатуре задаются строчные символьные константы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Форма записи !! Регистр&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;quot;…&amp;quot;&amp;lt;/code&amp;gt; || прописные&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&#039;…&#039;&amp;lt;/code&amp;gt; || строчные&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Числовые константы ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Формат&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || сырой байт, не BCD — байтовые константы и адреса устройств&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || описатель + BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || то же + байт порядка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || 2 байта BCD, 0–7999&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || 1 байт BCD, 0–99&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В описателе &#039;&#039;&#039;старшая тетрада — количество цифр до запятой, младшая — общее количество цифр&#039;&#039;&#039;. Цифры идут по две на байт, незанятая последняя тетрада — нуль.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Запись !! Байты !! Описатель&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 01 50&amp;lt;/code&amp;gt; || 0 / 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 12 25&amp;lt;/code&amp;gt; || 1 / 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.196854&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 19 68 54&amp;lt;/code&amp;gt; || 0 / 6&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51840&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 55 51 84 00&amp;lt;/code&amp;gt; || 5 / 5&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.718281828&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 1A 27 18 28 18 28&amp;lt;/code&amp;gt; || 1 / 10&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E6 11 10 06&amp;lt;/code&amp;gt; || 1 / 1, порядок 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; служит и для целых чисел больше 9999 — всего, что не помещается в &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;; дробной части при этом нет, обе тетрады описателя равны.&lt;br /&gt;
&lt;br /&gt;
Длина хвоста — &amp;lt;code&amp;gt;1 + ⌈&#039;&#039;младшая тетрада&#039;&#039; / 2⌉&amp;lt;/code&amp;gt; байт для &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; и на один байт больше для &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Верхняя граница &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — 7999: восемь тысяч кодируются общей формой &amp;lt;code&amp;gt;E5 44 80 00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Запись с порядком по значению не восстанавливается: &amp;lt;code&amp;gt;1E6&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;1000000&amp;lt;/code&amp;gt; — одно число, но разные байты.&lt;br /&gt;
&lt;br /&gt;
Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; и первый байт операндов &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; хранятся &#039;&#039;&#039;двоичными&#039;&#039;&#039;, не в BCD. То же относится к номерам строк, которые записываются сырыми парами BCD без токена: диапазоны в &amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RUN&amp;lt;/code&amp;gt;, номер строки у &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;IF END THEN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;KEYIN&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;LIST S&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таблицы переменных ==&lt;br /&gt;
&lt;br /&gt;
=== Таблица 1 ===&lt;br /&gt;
&lt;br /&gt;
Описывает переменные, которым нужен дескриптор размера: массивы и символьные переменные с явно заданной длиной, независимо от того, объявлены они в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; или в &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;. Числовые скаляры и символьные переменные с длиной по умолчанию в таблицу не попадают.&lt;br /&gt;
&lt;br /&gt;
Запись — 8 байт:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || тип: &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; — символьная, &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; — числовая или целая; иное значение — вторая размерность&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || число элементов (первая размерность), младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || размерный код, младший байт первым&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размерный код равен &amp;lt;code&amp;gt;2 × размер элемента&amp;lt;/code&amp;gt;, младший бит означает, что длина задана явно:&lt;br /&gt;
&lt;br /&gt;
* целая — 4 (2 байта);&lt;br /&gt;
* числовая — 16 (8 байт);&lt;br /&gt;
* символьная длины &#039;&#039;L&#039;&#039; — &amp;lt;code&amp;gt;2L + 1&amp;lt;/code&amp;gt;;&lt;br /&gt;
* символьная с длиной по умолчанию (16) — 32, код чётный.&lt;br /&gt;
&lt;br /&gt;
Нечётность кода не является признаком символьного типа; тип берётся из байтов 2–3 либо из флага таблиц 2 и 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Двумерные массивы.&#039;&#039;&#039; Вторая размерность записывается в байты 2–3, на место признака типа; первая остаётся в поле числа элементов. Размерности не перемножаются, &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; восстанавливается точно. Практическое правило: старший байт поля 2–3 равен &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; — массив одномерный, иначе поле занято второй размерностью.&lt;br /&gt;
&lt;br /&gt;
Исключение — &#039;&#039;&#039;неявно объявленные массивы&#039;&#039;&#039;: у переменной, к которой обратились с индексом без &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, число элементов равно 10, а в байтах 2–3 стоят значения &amp;lt;code&amp;gt;01 27&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;07 59&amp;lt;/code&amp;gt;, размерностями не являющиеся. Такие массивы следует выводить как одномерные &amp;lt;code&amp;gt;(10)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Порядок записей обратен порядку объявления&#039;&#039;&#039;: память выделяется сверху вниз, а таблица отсортирована по возрастанию адреса.&lt;br /&gt;
&lt;br /&gt;
Размер выделяемой памяти:&lt;br /&gt;
&lt;br /&gt;
* скалярная символьная переменная — объявленная длина, округлённая вверх до чётной;&lt;br /&gt;
* массив — &amp;lt;code&amp;gt;N × размер элемента + 6&amp;lt;/code&amp;gt;, где 6 байт занимает дескриптор.&lt;br /&gt;
&lt;br /&gt;
Адреса могут быть нулевыми: у программ, которые ни разу не выполнялись, и у защищённых файлов. Правила, опирающиеся на разность адресов, там неприменимы.&lt;br /&gt;
&lt;br /&gt;
=== Таблицы 2 и 3 ===&lt;br /&gt;
&lt;br /&gt;
Образуют &#039;&#039;&#039;один непрерывный массив дескрипторов&#039;&#039;&#039; — по записи на каждую переменную программы. Формат одинаков, граница определяется счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной, младший байт первым; &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;, если память не выделена&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 1 || флаг типа&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 1 || назначение не установлено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Записи идут в порядке &#039;&#039;&#039;убывания индекса переменной&#039;&#039;&#039;. Если&lt;br /&gt;
&lt;br /&gt;
 N = L2 / 4 + L3 / 4&lt;br /&gt;
&lt;br /&gt;
то переменная с индексом &#039;&#039;i&#039;&#039; описана записью на позиции &amp;lt;code&amp;gt;N − 1 − i&amp;lt;/code&amp;gt;, считая позиции подряд: сначала таблица 2, затем таблица 3. Отсюда &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; — общее число переменных программы.&lt;br /&gt;
&lt;br /&gt;
Таблица 3 приходится на самые младшие индексы — те, что занимает оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Флаг типа:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Бит !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;) || у переменной есть дескриптор в таблице 1&lt;br /&gt;
|-&lt;br /&gt;
| 3 || назначение не установлено&lt;br /&gt;
|-&lt;br /&gt;
| 4 (&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;) || числовая действительная&lt;br /&gt;
|-&lt;br /&gt;
| 5 (&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;) || символьная&lt;br /&gt;
|-&lt;br /&gt;
| 7 || назначение не установлено&lt;br /&gt;
|-&lt;br /&gt;
| ни 4, ни 5 || целая (суффикс &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Связь с таблицей 1.&#039;&#039;&#039; Число записей с установленным битом 0 равно &amp;lt;code&amp;gt;L1 / 8&amp;lt;/code&amp;gt;, и соответствие порядковое:&lt;br /&gt;
&lt;br /&gt;
 k = 0&lt;br /&gt;
 для pos = 0 … N−1:&lt;br /&gt;
     если флаг[pos] и 1:&lt;br /&gt;
         дескриптор переменной (N − 1 − pos) = запись таблицы 1 номер k&lt;br /&gt;
         k = k + 1&lt;br /&gt;
&lt;br /&gt;
Это даёт точное соответствие «индекс переменной → запись таблицы 1» без разбора операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;. Сопоставление по порядку объявления ошибочно: &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; объявляет и обычные скаляры, у которых дескриптора нет, а после &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; в операнде &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; стоят «теневые» индексы.&lt;br /&gt;
&lt;br /&gt;
У переменных с дескриптором таблицы 1 поле 0–1 содержит не адрес, а небольшое число, растущее примерно на восемь с каждой такой переменной. Назначение не установлено.&lt;br /&gt;
&lt;br /&gt;
=== Состояние на момент сохранения ===&lt;br /&gt;
&lt;br /&gt;
Оттранслированный файл — снимок памяти после запуска, а не перевод текста.&lt;br /&gt;
&lt;br /&gt;
Массив, выросший при выполнении оператора &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; за пределы исходного выделения, получает новый дескриптор в таблице 1 &#039;&#039;&#039;и новый индекс переменной&#039;&#039;&#039;, причём интерпретатор правит операнд в самом операторе &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, оставляя код и &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; работать со старым индексом. Если новый размер не превышает объявленного, память переиспользуется и запись остаётся одна.&lt;br /&gt;
&lt;br /&gt;
Поэтому операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; как источник соответствия «индекс — дескриптор» непригодны.&lt;br /&gt;
&lt;br /&gt;
=== Индексы и имена переменных ===&lt;br /&gt;
&lt;br /&gt;
Индексы назначаются &#039;&#039;&#039;в порядке первого появления переменной в тексте программы&#039;&#039;&#039;. Операторы &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; делят единое пространство индексов; &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; выполняется первым и получает индексы с нуля.&lt;br /&gt;
&lt;br /&gt;
Ключ переменной — имя &#039;&#039;&#039;вместе с признаком массива&#039;&#039;&#039;: &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A¤&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A()&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;A%()&amp;lt;/code&amp;gt; — разные переменные с разными индексами.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Имена переменных в оттранслированном файле не сохраняются.&#039;&#039;&#039; Таблицы содержат только дескрипторы памяти. Читаемый листинг из такого файла восстановить нельзя: восстанавливается структура программы, тип каждой переменной, «массив или скаляр» и размерности, но не имена.&lt;br /&gt;
&lt;br /&gt;
== Операнды ==&lt;br /&gt;
&lt;br /&gt;
=== Дисковые операторы ===&lt;br /&gt;
&lt;br /&gt;
Первый байт операндов — код устройства или режима, а не ссылка на переменную:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Байт !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt; — первый дисковод&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; — второй дисковод&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; — обращение по номеру строки таблицы устройств (&amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 79 01 D6                                   DBACKSPACE BEG&lt;br /&gt;
 7A 01 D7                                   DSKIP END&lt;br /&gt;
 76 01 D7                                   DATA SAVE DC END&lt;br /&gt;
 79 04 DB E8 01 DE D6                       DBACKSPACE #1,BEG&lt;br /&gt;
 76 07 D6 DB E8 02 DE E0 12                 DATA SAVE DC ¤#2,W()&lt;br /&gt;
 82 0B 01 06 D9 E8 05 DE D7 D9 E7 10 00     SCRATCH DISK RLS=5,END=1000&lt;br /&gt;
&lt;br /&gt;
В последнем примере &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; — ключевое слово &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; — знак равенства, &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;. Байт &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; после законченного выражения у &amp;lt;code&amp;gt;DSKIP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DBACKSPACE&amp;lt;/code&amp;gt; — параметр &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; («в секторах»).&lt;br /&gt;
&lt;br /&gt;
Формы &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 80  &amp;lt;приставка&amp;gt; [D2 = T] [EB &amp;lt;старое имя либо резерв&amp;gt; D0] &amp;lt;имя&amp;gt; [&amp;lt;нач&amp;gt; [DE &amp;lt;кон&amp;gt;]]&lt;br /&gt;
 7D  &amp;lt;приставка&amp;gt; &amp;lt;имя&amp;gt; [&amp;lt;нач&amp;gt; [DE &amp;lt;кон&amp;gt; [DE &amp;lt;куда продолжать&amp;gt;]]]&lt;br /&gt;
 7C  &amp;lt;приставка&amp;gt; [&amp;lt;имя&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
=== Списки ===&lt;br /&gt;
&lt;br /&gt;
Список &#039;&#039;&#039;принимающих&#039;&#039;&#039; переменных пишется &#039;&#039;&#039;без разделителей&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 41 02 0A 0B                        INPUT T0,N0&lt;br /&gt;
 74 03 05 0C 0D                     DATA LOAD DC A1¤,E1,E2&lt;br /&gt;
 46 04 00 01 02 03                  DIM X(300),Y(300),N(2),G¤(300)5&lt;br /&gt;
&lt;br /&gt;
Список &#039;&#039;&#039;выражений&#039;&#039;&#039; разделяется &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 76 06 D6 05 DE 0A DE 0B            DATA SAVE DC ¤A1¤,T0,N0&lt;br /&gt;
&lt;br /&gt;
Пропущенный параметр не кодируется ничем — между разделителями просто нет операнда:&lt;br /&gt;
&lt;br /&gt;
 06 1E 09 E0 12 DE DE DE 11 E8 01 D0    LABEL B6¤(),,,B3¤(1)&lt;br /&gt;
&lt;br /&gt;
У &amp;lt;code&amp;gt;ASMB&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;06 25&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; — запятая и в позиции операнда: пропущенный первый аргумент даёт &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; первым же байтом операндов. Вторая форма оператора кончается звёздочкой, и это байт &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 25 0F DE E5 55 76 20 00 DE 22 DE 2D DE 2C DE E8 64   ASMB ,76200,A¤,M¤,Y¤,64&lt;br /&gt;
 06 25 02 10 DF                                          ASMB Z¤*&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает. Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях и для размерностей в &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0                → 01(32)&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0 → (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Ссылка на массив целиком — &amp;lt;code&amp;gt;E0 &amp;amp;lt;индекс&amp;amp;gt;&amp;lt;/code&amp;gt;, законченное значение: после неё разбор ожидает операцию или следующий элемент списка. В операторах, операнды которых — список значений, возведения в степень быть не может, поэтому &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; там всегда ссылка на массив.&lt;br /&gt;
&lt;br /&gt;
=== Скобки ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Конструкция !! Открывающая !! Закрывающая&lt;br /&gt;
|-&lt;br /&gt;
| индекс массива || нет || &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ABS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SQR(&amp;lt;/code&amp;gt; и прочие явные функции || в токене || &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LEN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NUM(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt; || в токене || &#039;&#039;&#039;нет&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt; || в токене || &#039;&#039;&#039;нет&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt; || в токене || &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| группировка в выражении || &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
У глаголов, имя которых оканчивается на &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;, закрывающей скобки в потоке нет:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Глагол !! Где находится закрывающая скобка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; AND(, &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; OR(, &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; XOR( || в конце операторной части&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; PACK(, &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; UNPACK(, &amp;lt;code&amp;gt;06 0C&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || сразу за литералом формата&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; BIN( || после приёмника, вместе со знаком &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Неявные функции считаются по уровням, а не одним счётчиком.&#039;&#039;&#039; Закрывающая скобка вложенной явной конструкции неявную функцию не закрывает:&lt;br /&gt;
&lt;br /&gt;
 EC  E1  E0 2A  E8 01  D0  D7  DE 20  D5  E8 00  D3 02 70&lt;br /&gt;
 POS(STR( V¤()  , 1    )   &amp;amp;lt;   20     )   &amp;amp;lt;&amp;amp;gt;  0   THEN 270&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; закрывает только &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt; заканчивается на &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Неявная первая запятая ===&lt;br /&gt;
&lt;br /&gt;
Функция &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt; первую запятую не кодирует: &amp;lt;code&amp;gt;STR(Z¤,67)&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;E1 10 E8 67 D0&amp;lt;/code&amp;gt;. Вторая и последующие кодируются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. У прочих операторов неявной первой запятой нет.&lt;br /&gt;
&lt;br /&gt;
Первый аргумент &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt; индексируется только по признаку массива из таблиц переменных: заглядывание вперёд читает &amp;lt;code&amp;gt;STR(Z¤,67)&amp;lt;/code&amp;gt; как &amp;lt;code&amp;gt;Z¤(67)&amp;lt;/code&amp;gt;. То же относится к приёмнику &amp;lt;code&amp;gt;BIN(&amp;lt;/code&amp;gt;, приёмникам &amp;lt;code&amp;gt;INIT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;KEYIN&amp;lt;/code&amp;gt; и имени файла у &amp;lt;code&amp;gt;LIMITS&amp;lt;/code&amp;gt; — за ними сразу идёт следующий операнд, без разделителя.&lt;br /&gt;
&lt;br /&gt;
=== Что не кодируется ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Оператор !! В потоке !! В листинге&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INIT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;64 04 E3 01 2D 15&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INIT (&amp;quot;-&amp;quot;)U¤&amp;lt;/code&amp;gt; — значение в скобках, запятой нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;47 0F 48 D1 E1 … D0 E3 02 «##»&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;CONVERT P% TO STR(…),(##)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$GIO&amp;lt;/code&amp;gt; с адресом || &amp;lt;code&amp;gt;40 0D DC DE 34 DE E2 06 … 22&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤GIO /34,(HEX(…),A¤)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VERIFY&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;83 … 02 DB 39 E8 01 D0 DE 16 … 17 …&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;VERIFY T#D%(1),(X(1),Y(1))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 0C 06 0D DE 12 D0 DE 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤TRAN(Q¤,L0¤)R&amp;lt;/code&amp;gt; — запятая после &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; не печатается&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;LABEL&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 1E 0A E0 1F E8 03 DE DE DE E3 01 51&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LABEL B¤()3,,,&amp;quot;Q&amp;quot;&amp;lt;/code&amp;gt; — размер вплотную к имени&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MAT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 01 04 E0 54 D9 EF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;MAT C%=ZER&amp;lt;/code&amp;gt; — имя массива без &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;51 05 E8 01 DE 48 50&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;RESTORE 1,4850&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2A 0A DD 10 52 15 DE 52 15 DE 52 25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SAVE Z¤5215,5215,5225&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;LINPUT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 24 2C E3 28 … E9 32&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LINPUT &amp;quot;…&amp;quot;,-L¤&amp;lt;/code&amp;gt; — запятая перед унарным минусом&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; с приглашением || &amp;lt;code&amp;gt;41 14 E3 11 «…» 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INPUT &amp;quot;…&amp;quot;,K&amp;lt;/code&amp;gt; — запятая после литерала&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Оператор SELECT ===&lt;br /&gt;
&lt;br /&gt;
Первый байт операндов — код группы устройств, записи разделяются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Ширина строки после &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; — двоичное 16-битное число, старший байт первым.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Код !! Группа !! Пример&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt; — строка таблицы устройств || &amp;lt;code&amp;gt;00 01 18&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#118&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;00 01 18 00&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#118F&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; — градусы || операндов нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; — радианы || операндов нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; — грады || операндов нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; — пауза после строки || &amp;lt;code&amp;gt;05 01&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT P1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; || LIST || &amp;lt;code&amp;gt;06 0C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; || PRINT || &amp;lt;code&amp;gt;07 0C EB 00 82&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT PRINT0C(130)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; || PLOT || &amp;lt;code&amp;gt;08 10 DE …&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; || TAPE || &amp;lt;code&amp;gt;09 1B EB 1F 3F&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; || DISK || &amp;lt;code&amp;gt;0A 18 01&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT DISK18R&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt; || CI ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; || CO || &amp;lt;code&amp;gt;0C 05 EB 00 50&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В записях группы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; дисковод указывается не всегда: &amp;lt;code&amp;gt;SELECT #118&amp;lt;/code&amp;gt; даёт трёхбайтовую запись, &amp;lt;code&amp;gt;SELECT #118F&amp;lt;/code&amp;gt; — четырёхбайтовую.&lt;br /&gt;
&lt;br /&gt;
Параметры оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt; кодируются той же таблицей: &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Цепочка операторов DATA ===&lt;br /&gt;
&lt;br /&gt;
Два последних байта операндов каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; — указатель на следующий оператор &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt;, младший байт первым; у последнего в программе он равен &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt;. По этой цепочке работают &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt;. Значения — адреса в памяти интерпретатора, а не смещения в файле, и из текста программы не восстанавливаются.&lt;br /&gt;
&lt;br /&gt;
Эти два байта нельзя разбирать как токены.&lt;br /&gt;
&lt;br /&gt;
Тело оператора — список значений &#039;&#039;&#039;без разделителей&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 29 1E E8 31 E7 03 34 E8 00 E8 28 E7 03 06 E8 31 … C9 04&lt;br /&gt;
       31    334      0     28    306      31&lt;br /&gt;
&lt;br /&gt;
Поэтому внутри &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; токены &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; всегда читаются как константы, а не как &amp;lt;code&amp;gt;XOR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;OR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt;. То же в &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, где длина элемента идёт сразу за закрывающей скобкой:&lt;br /&gt;
&lt;br /&gt;
 06 02 0A E0 04 EB E7 01 26 D0 E7 01 28    MAT REDIM A¤(126)128&lt;br /&gt;
&lt;br /&gt;
=== Подпрограммы с параметрами ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Глагол !! Операнды&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; GOSUB&#039; || &amp;lt;code&amp;gt;&amp;amp;lt;метка: 1 байт двоичный&amp;amp;gt;&amp;lt;/code&amp;gt;, затем фактические параметры — выражения через &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; DEFFN&#039; || &amp;lt;code&amp;gt;&amp;amp;lt;метка&amp;amp;gt; &amp;amp;lt;4 байта адреса входа&amp;amp;gt;&amp;lt;/code&amp;gt;, затем формальные параметры — индексы подряд, без разделителей&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; DEFFN&#039; || &amp;lt;code&amp;gt;&amp;amp;lt;метка&amp;amp;gt; &amp;amp;lt;4 байта адреса&amp;amp;gt; &amp;amp;lt;один литерал&amp;amp;gt;&amp;lt;/code&amp;gt; — текст клавиши специальных функций&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; DEFFN || &amp;lt;code&amp;gt;&amp;amp;lt;имя&amp;amp;gt; &amp;amp;lt;2 байта рабочего поля&amp;amp;gt; &amp;amp;lt;формальная переменная&amp;amp;gt; &amp;amp;lt;выражение&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Скобки списка параметров не кодируются.&lt;br /&gt;
&lt;br /&gt;
 23 0B 05 E8 01 DE E8 01 DE 0D E9 E8 02    GOSUB &#039; 5(1,1,N-2)&lt;br /&gt;
 27 08 05 00 00 00 00 12 20 21             DEFFN &#039; 5(N1,D1,D2)&lt;br /&gt;
 3A 08 1F 00 00 A4 03 E2 01 0D             DEFFN &#039; 31 HEX(0D)&lt;br /&gt;
&lt;br /&gt;
Четыре байта после метки у &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; — адрес входа, который интерпретатор заполняет при первом обращении; нулевыми они бывают только там, где подпрограмму ни разу не звали. При разборе их следует пропускать.&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; подпрограммы не задаёт: это текст, подставляемый при нажатии клавиши, и &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; на него не переходит.&lt;br /&gt;
&lt;br /&gt;
=== Функции пользователя ===&lt;br /&gt;
&lt;br /&gt;
 5A &amp;lt;имя&amp;gt; &amp;lt;lo&amp;gt; &amp;lt;hi&amp;gt; &amp;lt;формальная переменная&amp;gt; &amp;lt;выражение&amp;gt;&lt;br /&gt;
 F0 &amp;lt;имя&amp;gt; &amp;lt;выражение&amp;gt; D0&lt;br /&gt;
&lt;br /&gt;
Имя функции — латинская буква либо цифра, записанная сырым кодом символа. Это &#039;&#039;&#039;не индекс переменной&#039;&#039;&#039;: пространства имён разные, одна и та же буква может быть и переменной, и именем функции. Знака равенства в потоке нет, тело идёт сразу за байтом формальной переменной. Два байта между именем и формальной переменной — рабочее поле; у последнего определения в программе там нули.&lt;br /&gt;
&lt;br /&gt;
 5A 48 00 00 2A EB 2A EA F2 2A D0 D0 DC E8 02    DEFFN H(X)=(X+ABS(X))/2&lt;br /&gt;
&lt;br /&gt;
В операторах &amp;lt;code&amp;gt;AND(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OR(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XOR(&amp;lt;/code&amp;gt; байт &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt; в конце операндов — не функция, а шестнадцатеричная маска.&lt;br /&gt;
&lt;br /&gt;
== Разбор выражений ==&lt;br /&gt;
&lt;br /&gt;
Два состояния: «ожидается операнд» и «ожидается операция».&lt;br /&gt;
&lt;br /&gt;
* Сброс в «операнд»: начало операндов оператора, после &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt;, знаков сравнения, после &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; и функций, после любой бинарной операции.&lt;br /&gt;
* Переход в «операцию»: после ссылки на переменную, константы, литерала, &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Унарный минус (&amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; в позиции операнда) состояние не меняет.&lt;br /&gt;
&lt;br /&gt;
Заглядывать вперёд можно только в том состоянии, в каком лексема потом будет прочитана: &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; в позиции операции — запятая, в позиции операнда — однобайтовый литерал, съедающий следующий байт.&lt;br /&gt;
&lt;br /&gt;
Разрешение «массив или скаляр» после ссылки на переменную:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Следующий токен !! Вывод&lt;br /&gt;
|-&lt;br /&gt;
| однозначный операнд (&amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt;, ссылка на переменную) || список индексов&lt;br /&gt;
|-&lt;br /&gt;
| однозначная операция (&amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; и прочие) || продолжение выражения&lt;br /&gt;
|-&lt;br /&gt;
| двузначный токен || операция&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Левая часть присваивания: цели идут вплотную, без разделителей, до первого &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; на нулевой глубине.&lt;br /&gt;
&lt;br /&gt;
 36 07 0F 10 11 12 D9 E8 00        S1,S2,S3,M=0&lt;br /&gt;
&lt;br /&gt;
Связки условий &amp;lt;code&amp;gt;XOR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OR&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt; &#039;&#039;&#039;равноправны и вычисляются слева направо&#039;&#039;&#039;;&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; старшинства между ними нет.&lt;br /&gt;
&lt;br /&gt;
В операторе &amp;lt;code&amp;gt;MAT SEARCH&amp;lt;/code&amp;gt; знак сравнения стоит в позиции операнда — сразу после запятой, отделяющей искомое значение:&lt;br /&gt;
&lt;br /&gt;
 06 0A 08 E0 20 DE D4 22 D1 E0 1E    MAT SEARCH L4¤(),&amp;amp;gt;A¤TON4¤()&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога и заголовочный сектор; убедиться, что бит 0 байта 9 установлен.&lt;br /&gt;
# Собрать поток, беря с каждого сектора ровно 254 байта без обрезки хвостовых нулей.&lt;br /&gt;
# Прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;; проверить наличие четырёхбайтового поля.&lt;br /&gt;
# Построить таблицу переменных: &amp;lt;code&amp;gt;N = L2/4 + L3/4&amp;lt;/code&amp;gt;, индекс на позиции &#039;&#039;pos&#039;&#039; равен &amp;lt;code&amp;gt;N − 1 − pos&amp;lt;/code&amp;gt;, тип из флага; записи с битом 0 по порядку сопоставить записям таблицы 1.&lt;br /&gt;
# Для каждой записи строки: номер из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; нет — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# После &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;: если весь остаток текущего 254-байтового куска нулевой, перейти к началу следующего.&lt;br /&gt;
# Тело разрезать на операторы &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;, учитывая двухбайтовые глаголы с префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Перед разбором операндов учесть особые формы: у &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; два последних байта — указатель цепочки, у дисковых операторов первый байт — код &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;, у &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; — двоичная метка, у &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; — собственный формат.&lt;br /&gt;
# Операнды — автомат состояний со стеком уровней скобок.&lt;br /&gt;
# Контроль: израсходовано ровно &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt;; стек пуст к концу оператора; число записей таблиц 2 и 3 с битом 0 равно &amp;lt;code&amp;gt;L1 / 8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обработку файла прекращать на первом секторе с маркером &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Подкоды операторов &amp;lt;code&amp;gt;ORIGIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DNPLOT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NDRAW&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Разметка аргумента в скобках у &amp;lt;code&amp;gt;MAT TRN&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;MAT INV&amp;lt;/code&amp;gt;; кодирование матричной арифметики (&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(K)*&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Кодирование отрицательного порядка числовой константы.&lt;br /&gt;
# Маска &amp;lt;code&amp;gt;hh&amp;lt;/code&amp;gt; у &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt;; признаки &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; у &amp;lt;code&amp;gt;MAT SEARCH&amp;lt;/code&amp;gt;; формы &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST *&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST %&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST ¤&amp;lt;/code&amp;gt;; форма &amp;lt;code&amp;gt;INPUT ¤&amp;amp;lt;переменная&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Грамматика операндов у глаголов &amp;lt;code&amp;gt;38&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;39&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;49&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5B&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;65&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7F&amp;lt;/code&amp;gt;: байты известны, вхождений нет.&lt;br /&gt;
# Смысл операторов &amp;lt;code&amp;gt;RES&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt;) и &amp;lt;code&amp;gt;LIST RES&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;65&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Назначение четырёхбайтового поля &amp;lt;code&amp;gt;0A 19 &amp;amp;lt;BCD&amp;amp;gt;&amp;lt;/code&amp;gt; перед программой.&lt;br /&gt;
# Байт 3 записей таблиц 2 и 3, биты 7 и 3 флага, поле 0–1 у переменных с дескриптором таблицы 1.&lt;br /&gt;
# Различение «строка-скаляр или массив строк» при нулевых адресах в таблице 1.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987.&lt;br /&gt;
* Таблицы ключевых слов и операндов — из образа интерпретатора на загрузочных дисках, адреса 0x1840 и 0x1A0C.&lt;br /&gt;
* Реконструкция по 94 оттранслированным файлам (15 735 строк) и 28 текстовым листингам, в том числе 12 парам «текст + токены».&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4295</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4295"/>
		<updated>2026-08-26T15:38:08Z</updated>

		<summary type="html">&lt;p&gt;Panther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Файловая система Искры 226&#039;&#039;&#039; — способ хранения файлов на дисках [[Искра-226]]. Унаследована от [[Wang 2200]] и совпадает с ней побайтово; содержимое файлов — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Статья описывает файловую систему, указатель каталога и текстовое представление программ. Отдельно вынесены:&lt;br /&gt;
&lt;br /&gt;
* [[Искра-226/Кодирование BASIC-файлов]] — токенизированная запись программы;&lt;br /&gt;
* [[Искра-226/Файлы данных BASIC 02]] — записи, значения и способы доступа;&lt;br /&gt;
* [[Искра-226/Графический буфер BASIC 02]] — формат рисунка.&lt;br /&gt;
&lt;br /&gt;
== Диск ==&lt;br /&gt;
&lt;br /&gt;
Физический сектор — 128 байт; 77 дорожек по 26 секторов, одна сторона. Физические сектора попарно объединены в логические по 256 байт со сквозной нумерацией. Далее везде подразумеваются логические сектора. Полный объём тома — 1001 сектор, 256 256 байт.&lt;br /&gt;
&lt;br /&gt;
Типы файлов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ПФ&#039;&#039;&#039; — программный файл: программа на Бейсике в текстовом либо оттранслированном виде;&lt;br /&gt;
* &#039;&#039;&#039;ФД&#039;&#039;&#039; — файл данных.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы записаны в указателе каталога.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, нули&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || концевая запись&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске не меняется, поэтому при перезаписи более коротким содержимым &#039;&#039;&#039;хвост не затирается&#039;&#039;&#039;: там остаются фрагменты предыдущих версий, иногда в другом представлении. Обработку следует прекращать на первой встреченной концевой записи.&lt;br /&gt;
&lt;br /&gt;
Диски прямого доступа (запись по абсолютным адресам секторов) указателя каталога не имеют; формат содержимого таких дисков задаёт программа пользователя. Загрузочные диски с интерпретатором имеют собственный формат: нулевой сектор начинается сигнатурой &amp;lt;code&amp;gt;06 90 09 90 07 90&amp;lt;/code&amp;gt;, за ней 18 знаков имени и даты версии.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
&lt;br /&gt;
Начинается с сектора 0. Первые 16 байт нулевого сектора — параметры диска:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || размер указателя каталога в секторах (&amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;), старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || текущий конец каталога — первый свободный сектор&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || конец области каталога&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размер указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию 24, допустимо 1…255; в дальнейшем не меняется. В нулевом секторе помещается 15 записей, в остальных 16. Неиспользованные записи заполнены нулями.&lt;br /&gt;
&lt;br /&gt;
Записи &#039;&#039;&#039;не сгруппированы&#039;&#039;&#039; в начале указателя и не упорядочены по секторам файлов: номер сектора, в который попадает запись, вычисляется хешированием имени. Для чтения каталога надо пройти все его секторы, пропуская нулевые записи.&lt;br /&gt;
&lt;br /&gt;
=== Хеш имени файла ===&lt;br /&gt;
&lt;br /&gt;
Номер сектора указателя вычисляется по «старому» хешу Wang 2200:&lt;br /&gt;
&lt;br /&gt;
 имя дополнить пробелами до восьми байт&lt;br /&gt;
 tmp = 0&lt;br /&gt;
 для каждого байта имени:  tmp = tmp XOR байт&lt;br /&gt;
 tmp = 3 × tmp&lt;br /&gt;
 tmp = (tmp mod 256) + (tmp div 256)&lt;br /&gt;
 сектор = tmp mod LS&lt;br /&gt;
&lt;br /&gt;
Свёртка выполняется исключающим ИЛИ, не сложением. «Новый» хеш Wang, введённый в MVP OS 2.5, на Искре не применяется.&lt;br /&gt;
&lt;br /&gt;
Хеш &#039;&#039;&#039;вырождается при &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, кратном трём&#039;&#039;&#039;: после умножения на 3 и складывания половинок результат всегда кратен трём, поэтому занятыми оказываются только каждый третий сектор указателя. При &amp;lt;code&amp;gt;LS = 24&amp;lt;/code&amp;gt; все записи попадают в секторы 0, 12, 15 и 18.&lt;br /&gt;
&lt;br /&gt;
Запись кладётся в первый свободный слот своего сектора, слоты заполняются подряд от начала. Правило переполнения сектора неизвестно.&lt;br /&gt;
&lt;br /&gt;
Освобождение слота выполняется &#039;&#039;&#039;обнулением первых восьми байт&#039;&#039;&#039; записи; имя при этом остаётся на диске. Оператор &amp;lt;code&amp;gt;SCRATCH&amp;lt;/code&amp;gt; запись не обнуляет, а помечает.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус, битовое поле; &#039;&#039;&#039;бит 0&#039;&#039;&#039; — файл вычеркнут&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Наблюдаемые значения статуса: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; — вычеркнута, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна. Сравнивать статус на точное равенство нельзя, значим только бит 0. Бит 5 (значение &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;) предположительно помечает переименование.&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и оттранслированное представление программы: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (данные), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые), что соответствует сочетанию байта статуса и байта типа.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тип «данные» ничего не говорит о внутреннем устройстве файла: он может содержать как логические записи, так и сырые блоки, записанные оператором &amp;lt;code&amp;gt;DATA SAVE BA&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Размещение файлов ==&lt;br /&gt;
&lt;br /&gt;
* Файлы лежат подряд в порядке создания, диапазоны секторов не пересекаются.&lt;br /&gt;
* Место вычеркнутого файла заново не занимается: &amp;lt;code&amp;gt;SCRATCH&amp;lt;/code&amp;gt; только помечает запись.&lt;br /&gt;
* Первый файл начинается с сектора &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, сразу за указателем.&lt;br /&gt;
* Поле «текущий конец» равно последнему занятому сектору плюс единица, но обрезается по концу области каталога; при разборе границу надёжнее брать по записям каталога.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 (в справочнике&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; назван «признак защиты») — битовое поле, единственный признак, различающий два представления программы: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; оператора &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); оба вместе соответствуют параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются. Текстовое представление — режим по умолчанию, оттранслированное включается явным параметром &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Защищённая программа после загрузки может только выполняться; режим снимается оператором &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора программного потока — служебные, в содержимое не входят. У секторов файла данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Код !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; || концевая запись&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8B&amp;lt;/code&amp;gt; || запись целиком в одном секторе (только файлы данных)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный сектор&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В оттранслированных программах все секторы потока идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;. Позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; наблюдается в текстовых файлах и в потоках данных.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; программных секторов равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;. Как признак «программа или данные» он непригоден: у секторов данных на позиции 1 стоит первый байт идентификатора значения. Надёжные признаки — байт 9 заголовочного сектора и байт типа записи каталога.&lt;br /&gt;
&lt;br /&gt;
== Концевая запись ==&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang.&lt;br /&gt;
&lt;br /&gt;
Счётчик равен &#039;&#039;&#039;собственной позиции записи от начала файла&#039;&#039;&#039;, считая с единицы, то есть числу занятых секторов вместе с заголовком. Он же — графа «Использовано» в выдаче &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* У программных файлов концевую запись пишет сам оператор &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;; она есть всегда.&lt;br /&gt;
* У файлов данных её пишет прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;. Если признак конца не записан, в графе «Использовано» стоит 00001.&lt;br /&gt;
* Оператор &amp;lt;code&amp;gt;DATA SAVE DC OPEN&amp;lt;/code&amp;gt; пишет в &#039;&#039;&#039;последний&#039;&#039;&#039; сектор файла запись &amp;lt;code&amp;gt;1C 00 01&amp;lt;/code&amp;gt; — единственный случай, когда счётчик не равен позиции.&lt;br /&gt;
&lt;br /&gt;
Запись лежит не обязательно в последнем выделенном секторе: если файлу дали запас или его положили на место вычеркнутого файла большего размера, за ней остаётся нулевой хвост.&lt;br /&gt;
&lt;br /&gt;
Счётчик — не инвариант файловой системы и при разборе ненадёжен: у файлов, записанных не операторами &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt;, он произволен. Границы файла следует брать из каталога.&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — [[КОИ-8]] (ГОСТ 19768-74): прописная кириллица в &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;, строчная в &amp;lt;code&amp;gt;C0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt;. Номера строк записаны обычными цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Байт &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; свободен потому, что диапазон &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;9F&amp;lt;/code&amp;gt; в КОИ-8 не занят. Тем же байтом машина разделяет строки в символьном буфере операторов &amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; и выдаёт нажатие клавиши CR/LF.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Виды дисков ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Вид !! Признак&lt;br /&gt;
|-&lt;br /&gt;
| с каталогом || байты 0–1 нулевого сектора — разумный &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, дальше 16-байтовые записи&lt;br /&gt;
|-&lt;br /&gt;
| загрузочный || сектор 0 начинается с &amp;lt;code&amp;gt;06 90 09 90 07 90&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| пакет ассемблера || сектор 0 начинается с &amp;lt;code&amp;gt;7E E1 F3 ED E2&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;~АСМБ&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| прямого доступа || каталога нет, есть заголовочные секторы &amp;lt;code&amp;gt;01 &amp;amp;lt;имя&amp;amp;gt; &amp;amp;lt;признак&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| пустой || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Хеш имени || «старый» и «новый» || только «старый»&lt;br /&gt;
|-&lt;br /&gt;
| Маркер концевой записи || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Представление программы || ключевые слова в токенах, остальное ASCII || несовместимо, см. [[Оттранслированное представление BASIC 02]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Совпадает только уровень файловой системы. Инструментарий Wang для разбора самих программ непригоден.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987.&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение. — Киев, 1988.&lt;br /&gt;
* [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization] — файловая система и хеш имени для сопоставления.&lt;br /&gt;
* Реконструкция по 42 образам дисков: 303 записи каталога, 94 файла программ.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B1%D1%83%D1%84%D0%B5%D1%80_BASIC_02&amp;diff=4294</id>
		<title>Искра-226/Графический буфер BASIC 02</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B1%D1%83%D1%84%D0%B5%D1%80_BASIC_02&amp;diff=4294"/>
		<updated>2026-08-26T15:37:23Z</updated>

		<summary type="html">&lt;p&gt;Panther: Новая страница: «{{emuverse}}  &amp;#039;&amp;#039;&amp;#039;Графический буфер BASIC 02&amp;#039;&amp;#039;&amp;#039; — формат хранения рисунка в памяти Искра-226. Буфер представляет собой &amp;#039;&amp;#039;&amp;#039;обычный символьный массив Бейсика&amp;#039;&amp;#039;&amp;#039;: оператор &amp;lt;code&amp;gt;¤OPEN&amp;lt;/code&amp;gt; объявляет массив буфером, графические операторы дописывают в него записи, оператор &amp;lt;code...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Графический буфер BASIC 02&#039;&#039;&#039; — формат хранения рисунка в памяти [[Искра-226]]. Буфер представляет собой &#039;&#039;&#039;обычный символьный массив Бейсика&#039;&#039;&#039;: оператор &amp;lt;code&amp;gt;¤OPEN&amp;lt;/code&amp;gt; объявляет массив буфером, графические операторы дописывают в него записи, оператор &amp;lt;code&amp;gt;¤COPY /&amp;amp;lt;адрес&amp;amp;gt;&amp;lt;/code&amp;gt; выкладывает всё разом на устройство. Собственной памяти под графику у машины нет.&lt;br /&gt;
&lt;br /&gt;
Буфер можно записать на диск и прочитать обратно как обычное символьное значение: см. [[Искра-226/Файловая система|Файловая система]] и [[Искра-226/Файлы данных BASIC 02|Файлы данных BASIC 02]]. Токены графических операторов описаны в статье [[Искра-226/Кодирование BASIC-файлов|Кодирование BASIC-файлов]].&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; графических операторов не описывает.&lt;br /&gt;
&lt;br /&gt;
== Растр ==&lt;br /&gt;
&lt;br /&gt;
Графическое поле — &#039;&#039;&#039;560 × 256&#039;&#039;&#039; дискрет, начало координат в левом нижнем углу, точка квадратная.&lt;br /&gt;
&lt;br /&gt;
Устройства вывода (адреса по таблице ФАУ&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Адрес !! Устройство&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; || блок отображения графической информации (экран)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; || графопостроитель&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt; || телекоммуникационный интерфейс&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Группа &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; таблицы устройств по умолчанию указывает на адрес &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символьное и графическое поля — два разных устройства на одной трубке. Знаки рисует аппаратный знакогенератор, знакоместо 7 × 10 точек; 80 × 24 знакоместа занимают 560 × 240 и оставляют поля по 8 точек сверху и снизу.&lt;br /&gt;
&lt;br /&gt;
== Заголовок ==&lt;br /&gt;
&lt;br /&gt;
Первые 43 байта буфера. Нумерация байт с единицы, как в операторе &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Байт !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 1–2 || длина занятого, считая сам заголовок&lt;br /&gt;
|-&lt;br /&gt;
| 3–4 || текущая точка, X&lt;br /&gt;
|-&lt;br /&gt;
| 5–6 || текущая точка, Y&lt;br /&gt;
|-&lt;br /&gt;
| 7–39 || не установлены&lt;br /&gt;
|-&lt;br /&gt;
| 40–43 || не установлены; прикладные программы используют как своё место&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Числа заголовка лежат &#039;&#039;&#039;младшим байтом вперёд&#039;&#039;&#039; — в обратном порядке относительно координат в самих записях.&lt;br /&gt;
&lt;br /&gt;
Пустой буфер: &amp;lt;code&amp;gt;2B 00 00 00 00 00&amp;lt;/code&amp;gt; и дальше нули, то есть длина 43, текущая точка &amp;lt;code&amp;gt;0,0&amp;lt;/code&amp;gt;. Первая запись потока ложится в байт 44.&lt;br /&gt;
&lt;br /&gt;
== Записи потока ==&lt;br /&gt;
&lt;br /&gt;
Записи идут подряд начиная с байта 44, разделителей нет: длину каждой задаёт её код.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Код !! Оператор !! Запись&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; || NPLOT || 5 байт: код и точка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || NDRAW || то же&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;82&amp;lt;/code&amp;gt; || NLAB. || как &amp;lt;code&amp;gt;86&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || &#039;&#039;не установлен&#039;&#039; ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;84&amp;lt;/code&amp;gt; || DOT || 5 байт: код и точка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; || DRAW || то же&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;86&amp;lt;/code&amp;gt; || LABEL || код, длина, приращение, признаки, текст&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Координаты — &#039;&#039;&#039;двухбайтовые двоичные, старший байт первым&#039;&#039;&#039;. Знака не имеют: отрицательных координат у растра нет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Бит &amp;lt;code&amp;gt;04&amp;lt;/code&amp;gt; кода записи — признак «рисовать».&#039;&#039;&#039; Коды &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;82&amp;lt;/code&amp;gt; — это стёртые &amp;lt;code&amp;gt;84&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;86&amp;lt;/code&amp;gt;: запись остаётся в потоке и двигает текущую точку, но следа не оставляет. Стирание элемента выполняется как &amp;lt;code&amp;gt;AND(&amp;amp;lt;код&amp;amp;gt;,FB)&amp;lt;/code&amp;gt;, восстановление — как &amp;lt;code&amp;gt;XOR(&amp;amp;lt;код&amp;amp;gt;,04)&amp;lt;/code&amp;gt;. Буква &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; в именах означает «не рисуя».&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Видимая !! Стёртая !! Действие стёртой&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;84&amp;lt;/code&amp;gt; DOT || &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; NPLOT || перевести точку, не рисуя&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; DRAW || &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; NDRAW || то же&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;86&amp;lt;/code&amp;gt; LABEL || &amp;lt;code&amp;gt;82&amp;lt;/code&amp;gt; NLAB. || сдвинуть точку на приращение&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;¤COPY&amp;lt;/code&amp;gt; чистит растр перед выводом: иначе стёртый элемент остался бы на экране.&lt;br /&gt;
&lt;br /&gt;
=== Точка и приращение ===&lt;br /&gt;
&lt;br /&gt;
Четвёрка байт после кода читается по-разному:&lt;br /&gt;
&lt;br /&gt;
* у рисующих записей (&amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;84&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;) это &#039;&#039;&#039;новая текущая точка&#039;&#039;&#039;, абсолютная;&lt;br /&gt;
* у надписей (&amp;lt;code&amp;gt;82&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;86&amp;lt;/code&amp;gt;) это &#039;&#039;&#039;приращение&#039;&#039;&#039; к текущей точке, число &#039;&#039;&#039;со знаком&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Запись надписи ===&lt;br /&gt;
&lt;br /&gt;
 86 &amp;lt;длина&amp;gt; &amp;lt;приращение X: 2 байта&amp;gt; &amp;lt;приращение Y: 2 байта&amp;gt; &amp;lt;3 байта признаков&amp;gt; &amp;lt;текст в КОИ-8&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Байт длины считает сам себя. Приращение равно &#039;&#039;&#039;семи дискретам на знак&#039;&#039;&#039; — ширине знакоместа.&lt;br /&gt;
&lt;br /&gt;
 86 09 | 00 07 00 00 | 01 02 00 | 59            &amp;quot;Y&amp;quot;&lt;br /&gt;
 86 0A | 00 0E 00 00 | 01 02 00 | 2D 31         &amp;quot;-1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Первый байт признаков — множитель размера знака; в тексте он пишется вплотную к имени буфера (&amp;lt;code&amp;gt;LABEL B¤()3,,,&amp;quot;Q&amp;quot;&amp;lt;/code&amp;gt;) и по умолчанию равен единице. Смысл двух остальных не установлен; на дисковых образах они всегда &amp;lt;code&amp;gt;02 00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Операторы ==&lt;br /&gt;
&lt;br /&gt;
Все графические операторы — двухбайтовые, с префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Подкод !! Оператор !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || PLOT || вывод прямо на устройство, минуя буфер&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤OPEN&amp;lt;/code&amp;gt; || объявить символьный массив буфером&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt; || DOT || поставить точку по координате&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; || DDRAW || отрезок по приращению от текущей точки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || DRAW || отрезок до координаты&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt; || NPLOT || перевести текущую точку по координате, не рисуя&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1A&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤MOVE&amp;lt;/code&amp;gt; || сдвинуть картинку&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1B&amp;lt;/code&amp;gt; || TURN || повернуть картинку вокруг точки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; || STRETCH || растянуть картинку относительно точки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1D&amp;lt;/code&amp;gt; || FRAME || задать окно буфера в пользовательских единицах&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || LABEL || надпись&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤COPY&amp;lt;/code&amp;gt; || вывести буфер на устройство&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤LET&amp;lt;/code&amp;gt; || присваивание буфера&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || WINDOW || задать окно устройства в дискретах&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Три способа задать точку: &amp;lt;code&amp;gt;NPLOT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DRAW&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;LABEL&amp;lt;/code&amp;gt; берут координату; &amp;lt;code&amp;gt;DDRAW&amp;lt;/code&amp;gt; — приращение от текущей точки; &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; — тоже приращение, но кладёт результат не в буфер, а на устройство.&lt;br /&gt;
&lt;br /&gt;
Имена &amp;lt;code&amp;gt;ORIGIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DNPLOT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;NDRAW&amp;lt;/code&amp;gt; встречаются в текстовых листингах, но подкодов не имеют: все подкоды, встречающиеся в оттранслированных файлах, уже опознаны. &amp;lt;code&amp;gt;DNPLOT&amp;lt;/code&amp;gt; по смыслу — приращение без следа.&lt;br /&gt;
&lt;br /&gt;
=== Преобразования ===&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;¤MOVE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TURN&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STRETCH&amp;lt;/code&amp;gt; &#039;&#039;&#039;переписывают уже лежащие в буфере записи&#039;&#039;&#039;, новых не добавляя.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Оператор !! Операнды&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;¤MOVE&amp;lt;/code&amp;gt; || буфер, сдвиг по X, сдвиг по Y&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TURN&amp;lt;/code&amp;gt; || буфер, X и Y точки, угол поворота&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;STRETCH&amp;lt;/code&amp;gt; || буфер, X и Y точки, масштаб по X, масштаб по Y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Названная точка у &amp;lt;code&amp;gt;TURN&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STRETCH&amp;lt;/code&amp;gt; неподвижна. Единица измерения угла — общая с тригонометрическими функциями, задаётся операторами &amp;lt;code&amp;gt;SELECT D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SELECT R&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SELECT G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Три оператора обратимы: последовательность из растяжения, поворота и обратного растяжения возвращает картинку на место.&lt;br /&gt;
&lt;br /&gt;
Выход за пределы растра — ошибка машины, перехватываемая оператором &amp;lt;code&amp;gt;ON ERROR&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Присваивание буфера ===&lt;br /&gt;
&lt;br /&gt;
 ¤LET &amp;lt;буфер&amp;gt; = &amp;lt;буфер&amp;gt;        копирование картинки&lt;br /&gt;
 ¤LET &amp;lt;буфер&amp;gt; = 0              опустошение буфера&lt;br /&gt;
&lt;br /&gt;
В известных программах первая форма встречается только присваиванием буфера самому себе, что записей не меняет; побочное действие такого оператора не установлено.&lt;br /&gt;
&lt;br /&gt;
== Система координат ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Оператор !! Операнды !! Что задаёт&lt;br /&gt;
|-&lt;br /&gt;
| WINDOW || &amp;lt;code&amp;gt;&amp;amp;lt;x0&amp;amp;gt;,&amp;amp;lt;x1&amp;amp;gt;,&amp;amp;lt;y0&amp;amp;gt;,&amp;amp;lt;y1&amp;amp;gt;&amp;lt;/code&amp;gt; || область на устройстве, в дискретах; имени буфера в операндах нет — область общая&lt;br /&gt;
|-&lt;br /&gt;
| FRAME || &amp;lt;code&amp;gt;&amp;amp;lt;буфер&amp;amp;gt;,&amp;amp;lt;x0&amp;amp;gt;,&amp;amp;lt;x1&amp;amp;gt;,&amp;amp;lt;y0&amp;amp;gt;,&amp;amp;lt;y1&amp;amp;gt;&amp;lt;/code&amp;gt; || ту же область в пользовательских единицах, своя у каждого буфера&lt;br /&gt;
|-&lt;br /&gt;
| ORIGIN || &amp;lt;code&amp;gt;&amp;amp;lt;буфер&amp;amp;gt;,&amp;amp;lt;dx&amp;amp;gt;,&amp;amp;lt;dy&amp;amp;gt;&amp;lt;/code&amp;gt; || смещение начала координат&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Границы &amp;lt;code&amp;gt;WINDOW&amp;lt;/code&amp;gt; — целые дискреты, границы &amp;lt;code&amp;gt;FRAME&amp;lt;/code&amp;gt; бывают дробными и отрицательными: это диапазон самих данных.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;В записях буфера лежат дискреты устройства, а не пользовательские единицы.&#039;&#039;&#039; Перевод выполняется при добавлении записи, а &amp;lt;code&amp;gt;FRAME&amp;lt;/code&amp;gt; с &amp;lt;code&amp;gt;ORIGIN&amp;lt;/code&amp;gt; его и задают. Ни &amp;lt;code&amp;gt;FRAME&amp;lt;/code&amp;gt;, ни &amp;lt;code&amp;gt;ORIGIN&amp;lt;/code&amp;gt; ничего не рисуют.&lt;br /&gt;
&lt;br /&gt;
По умолчанию отображение тождественное: программы, работающие прямо в дискретах экрана, &amp;lt;code&amp;gt;WINDOW&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;FRAME&amp;lt;/code&amp;gt; не вызывают вовсе.&lt;br /&gt;
&lt;br /&gt;
Где машина хранит это отображение, не установлено. В заголовке буфера на него остаются непрочитанные байты 7–39.&lt;br /&gt;
&lt;br /&gt;
== Оператор PLOT ==&lt;br /&gt;
&lt;br /&gt;
Единственный графический оператор, который рисует прямо на устройстве группы &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt;, минуя буфер. Буфера в операндах нет.&lt;br /&gt;
&lt;br /&gt;
 PLOT &amp;lt;x,y,перо&amp;gt;,&amp;lt;x,y,перо&amp;gt;,…&lt;br /&gt;
&lt;br /&gt;
Группа ограничена токенами &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;), группы и элементы внутри группы разделяются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Элементов ровно три, любой может быть пуст.&lt;br /&gt;
&lt;br /&gt;
Координаты — &#039;&#039;&#039;приращения&#039;&#039;&#039;, а не точки. Первая группа серии отсчитывается от начала координат.&lt;br /&gt;
&lt;br /&gt;
Третий элемент — перо, отдельные однобайтовые метки:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Байт !! Буква !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt; || перо поднято: сдвиг без следа&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; || перо опущено: отрезок&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || сброс: перо в начало координат, размеры по умолчанию&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || шаг знака по X и Y&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || размер знака&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Те же байты в позиции операнда означают константы и унарный минус; метка узнаётся &#039;&#039;&#039;по месту&#039;&#039;&#039; — третий элемент группы, за которым сразу стоит &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt;. Третьим элементом бывают также выражение, строковый литерал и вырезка &amp;lt;code&amp;gt;STR(…)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Буквы &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; — законные имена переменных, и различает их тоже только место в группе.&lt;br /&gt;
&lt;br /&gt;
== Управляющие коды устройства 10 ==&lt;br /&gt;
&lt;br /&gt;
Графическое устройство принимает короткие управляющие последовательности оператором &amp;lt;code&amp;gt;PRINT /10,HEX(…)&amp;lt;/code&amp;gt;. Коды соответствуют документации на Wang 2282 Graphic CRT&amp;lt;ref name=&amp;quot;wang2282&amp;quot; /&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Код !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || гасит поле, точка встаёт в начало координат, перо поднимается&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;04&amp;lt;/code&amp;gt; || выбрать принтер&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; || выбрать графическую трубку&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; || шаг между знаками, из предшествующего вектора&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0D&amp;lt;/code&amp;gt; || размер знака 1…15, из ΔX предшествующего вектора&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0E&amp;lt;/code&amp;gt; || перо поднято&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0F&amp;lt;/code&amp;gt; || перо опущено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || длинный двоичный вектор: ΔX и ΔY по два байта, дополнительный код&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E1&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || перо 1…3; перо 2 гасит точки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt; || задать начало координат&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || сброс: начало координат в левый нижний угол&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || короткий двоичный вектор: ΔX и ΔY по байту&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || скопировать поле на принтер&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FA&amp;lt;/code&amp;gt; || вернуть точку в начало координат&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Рисуют из них только векторы &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;; остальное задаёт состояние.&lt;br /&gt;
&lt;br /&gt;
Три кода, встречающиеся в программах Искры, в таблицу 2282 не попадают: &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, пара &amp;lt;code&amp;gt;01 02&amp;lt;/code&amp;gt; и последовательность &amp;lt;code&amp;gt;08 0B 09 06&amp;lt;/code&amp;gt;. Значит блок отображения Искры повторяет Wang не полностью.&lt;br /&gt;
&lt;br /&gt;
Перевод строки, который оператор &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt; дописывает сам, на графическое устройство не уходит: у графического поля строк нет.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Байты заголовка 7–39 — где хранится отображение &amp;lt;code&amp;gt;WINDOW&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;FRAME&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;ORIGIN&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Байты заголовка 40–43. Прикладные программы держат там пару чисел, к которым прибавляется сдвиг &amp;lt;code&amp;gt;¤MOVE&amp;lt;/code&amp;gt;, и требуют неотрицательного итога; читаются они старшим байтом вперёд, в отличие от остального заголовка.&lt;br /&gt;
# Код записи &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Смысл второго и третьего байта признаков надписи.&lt;br /&gt;
# Подкоды операторов &amp;lt;code&amp;gt;ORIGIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DNPLOT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NDRAW&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Побочное действие оператора &amp;lt;code&amp;gt;¤LET&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Управляющие коды устройства &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;01 02&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;08 0B 09 06&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Код ошибки, который получает &amp;lt;code&amp;gt;ON ERROR&amp;lt;/code&amp;gt; при выходе преобразования за пределы растра.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;wang2282&amp;quot;&amp;gt;2282 Graphic CRT Plotter User Manual. — Wang Laboratories, 700-4627A, 10-81. — разд. 3.2 «Control Codes».&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987.&lt;br /&gt;
* [http://www.wang2200.org/docs.html 2282 Graphic CRT Plotter User Manual] — управляющие коды графического устройства.&lt;br /&gt;
* Реконструкция по программам &amp;lt;code&amp;gt;SLIDE&amp;lt;/code&amp;gt; (редактор графических объектов), &amp;lt;code&amp;gt;SIG&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FAN01&amp;lt;/code&amp;gt; и по готовой картинке с дискового образа — 196 записей потока.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_BASIC_02&amp;diff=4293</id>
		<title>Искра-226/Файлы данных BASIC 02</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_BASIC_02&amp;diff=4293"/>
		<updated>2026-08-26T15:34:45Z</updated>

		<summary type="html">&lt;p&gt;Panther: Новая страница: «{{emuverse}}  &amp;#039;&amp;#039;&amp;#039;Файлы данных BASIC 02&amp;#039;&amp;#039;&amp;#039; — способы записи и чтения данных программой на Искра-226: режимы доступа, устройство логической записи и форматы значений.  Файловая система, указатель каталога и концевая запись описаны в статье Искра-226/Файловая система...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Файлы данных BASIC 02&#039;&#039;&#039; — способы записи и чтения данных программой на [[Искра-226]]: режимы доступа, устройство логической записи и форматы значений.&lt;br /&gt;
&lt;br /&gt;
Файловая система, указатель каталога и концевая запись описаны в статье [[Искра-226/Файловая система|Файловая система]]. Формат рисунка, который программа записывает в файл как обычное символьное значение, — в статье [[Искра-226/Графический буфер BASIC 02|Графический буфер BASIC 02]].&lt;br /&gt;
&lt;br /&gt;
== Способы доступа ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Приставка !! Режим !! Адресация&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || файл каталога || последовательная, от текущего сектора файла&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DA&amp;lt;/code&amp;gt; || абсолютная адресация || начальный сектор задан в операторе&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;BA&amp;lt;/code&amp;gt; || блок 256 байт || то же, служебной разметки нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;BT&amp;lt;/code&amp;gt; || блочный обмен с устройством || диск не участвует&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Тип файла в записи каталога («данные») о внутреннем устройстве файла не говорит: он может содержать логические записи, сырые блоки от &amp;lt;code&amp;gt;DATA SAVE BA&amp;lt;/code&amp;gt; либо и то и другое.&lt;br /&gt;
&lt;br /&gt;
=== Таблица устройств ===&lt;br /&gt;
&lt;br /&gt;
Файл открывается на одну из восьми строк таблицы устройств, &amp;lt;code&amp;gt;#0&amp;lt;/code&amp;gt;…&amp;lt;code&amp;gt;#7&amp;lt;/code&amp;gt;; строка выбирается программой оператором &amp;lt;code&amp;gt;SELECT #n&amp;lt;/code&amp;gt;, а не выдаётся системой. У открытого файла строка содержит три адреса: начальный сектор, конечный сектор и текущий сектор.&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; обнуляет только эти три адреса; адрес самого устройства, назначенный оператором &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;, сохраняется. Параметр &amp;lt;code&amp;gt;ALL&amp;lt;/code&amp;gt; закрывает все открытые файлы.&lt;br /&gt;
&lt;br /&gt;
== Операторы ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || IF END THEN &amp;lt;строка&amp;gt; || переход, если последнее чтение наткнулось на концевую запись&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;66&amp;lt;/code&amp;gt; || DATA LOAD BT || принять блок с устройства&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;68&amp;lt;/code&amp;gt; || DATA SAVE BT || передать блок на устройство&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6E&amp;lt;/code&amp;gt; || DATA SAVE BA || записать 256-байтовый блок по абсолютному адресу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6F&amp;lt;/code&amp;gt; || DATA SAVE DA || записать логическую запись по абсолютному адресу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; || DATA LOAD BA || прочитать 256-байтовый блок&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;71&amp;lt;/code&amp;gt; || DATA LOAD DA || прочитать логическую запись по абсолютному адресу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || прочитать логическую запись с текущего сектора&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN || открыть существующий файл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;76&amp;lt;/code&amp;gt; || DATA SAVE DC || записать логическую запись с текущего сектора&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;76&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || DATA SAVE DC END || записать концевую запись&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;77&amp;lt;/code&amp;gt; || DATA SAVE DC CLOSE || закрыть файл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;78&amp;lt;/code&amp;gt; || DATA SAVE DC OPEN || завести файл в каталоге и открыть&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE || сдвинуть текущий сектор назад&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP || сдвинуть текущий сектор вперёд&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS || выдать границы файла и число занятых секторов&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH || вычеркнуть файл из каталога&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;82&amp;lt;/code&amp;gt; || SCRATCH DISK || создать каталог&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY || проверить читаемость области&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Операнды всех перечисленных операторов описаны в статье [[Оттранслированное представление BASIC 02]].&lt;br /&gt;
&lt;br /&gt;
=== Последовательность работы ===&lt;br /&gt;
&lt;br /&gt;
Запись в режиме каталога:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;DATA SAVE DC OPEN&amp;lt;/code&amp;gt; заводит файл в указателе и заполняет строку таблицы устройств тремя адресами. В &#039;&#039;&#039;последний&#039;&#039;&#039; сектор файла записывается &amp;lt;code&amp;gt;1C 00 01&amp;lt;/code&amp;gt;; больше при открытии не пишется ничего.&lt;br /&gt;
# &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt; пишет логическую запись начиная с текущего сектора и двигает текущий за неё.&lt;br /&gt;
# &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; кладёт концевую запись в текущий сектор и текущего &#039;&#039;&#039;не двигает&#039;&#039;&#039;: она помечает сектор, откуда можно продолжать запись, и следующая запись ляжет на её место.&lt;br /&gt;
# &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; обнуляет адреса строки.&lt;br /&gt;
&lt;br /&gt;
Чтение устроено так же, с &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC&amp;lt;/code&amp;gt;. Прочитав сектор с кодом &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, оператор чтения ничего не делает, оставляет текущий сектор на концевой записи и взводит признак, который проверяет &amp;lt;code&amp;gt;IF END THEN&amp;lt;/code&amp;gt;. Обычная запись признак снимает.&lt;br /&gt;
&lt;br /&gt;
Параметры &amp;lt;code&amp;gt;DSKIP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DBACKSPACE&amp;lt;/code&amp;gt;: число записей, &amp;lt;code&amp;gt;BEG&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt; либо число с параметром &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; — в секторах.&lt;br /&gt;
&lt;br /&gt;
=== Абсолютная адресация ===&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;DA&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;BA&amp;lt;/code&amp;gt; получают начальный сектор выражением в самом операторе; каталог при этом не нужен. Необязательный второй операнд — приёмник, куда возвращается адрес сектора за последним занятым; у символьного приёмника это два первых байта двоичным числом.&lt;br /&gt;
&lt;br /&gt;
Диски, записанные только так, указателя каталога не имеют вовсе.&lt;br /&gt;
&lt;br /&gt;
=== Блочный обмен ===&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;DATA SAVE BT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD BT&amp;lt;/code&amp;gt; передают блок байтов без всякой служебной разметки. Устройство задаётся приставкой &amp;lt;code&amp;gt;/&amp;amp;lt;адрес&amp;amp;gt;&amp;lt;/code&amp;gt;, причём &#039;&#039;&#039;адрес — выражение, а не сырой байт&#039;&#039;&#039;; чаще всего это переменная.&lt;br /&gt;
&lt;br /&gt;
Название группы устройств по умолчанию (&amp;lt;code&amp;gt;TAPE&amp;lt;/code&amp;gt;) вводит в заблуждение: обмен идёт с любым устройством. Адреса из таблицы ФАУ:&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Адрес !! Устройство&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; || блок отображения символьной информации&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; || АЦПУ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; || блок отображения графической информации&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; || графопостроитель&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || телекоммуникационный интерфейс: передатчик и приёмник&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Логическая запись ==&lt;br /&gt;
&lt;br /&gt;
Сектор записи:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;код сектора&amp;gt; &amp;lt;тип&amp;gt; &amp;lt;длина&amp;gt; &amp;lt;данные&amp;gt; &amp;lt;тип&amp;gt; &amp;lt;длина&amp;gt; &amp;lt;данные&amp;gt; …&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Код !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор многосекторной записи&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний сектор многосекторной записи&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; || концевая запись&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8B&amp;lt;/code&amp;gt; || запись целиком в одном секторе&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный сектор&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Служебный заголовок сектора данных занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два, как у программных секторов; под данные остаётся 255 байт.&lt;br /&gt;
&lt;br /&gt;
Идентификатор значения — два байта:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Длина !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || всегда &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; || число&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || 1…253 || строка символов, [[КОИ-8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также целое значение длиной 2 байта, но на дисковых образах такие значения не встречаются: у типа &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; длина всегда 8.&lt;br /&gt;
&lt;br /&gt;
Хвост сектора после последнего значения — нули. Значение, не помещающееся в сектор целиком, переносится в следующий сектор полностью; остаток предыдущего сектора при этом не затирается, и там остаётся копия ранее записанных значений.&lt;br /&gt;
&lt;br /&gt;
Массив в списке записи и чтения разворачивается в свои элементы, строка за строкой.&lt;br /&gt;
&lt;br /&gt;
== Формат числа ==&lt;br /&gt;
&lt;br /&gt;
Восемь байт, двоично-десятичный.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Байт !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–5 || цифры 1…12 мантиссы, BCD, старшая первой&lt;br /&gt;
|-&lt;br /&gt;
| 6 || порядок, знаковое двоичное (дополнительный код)&lt;br /&gt;
|-&lt;br /&gt;
| 7 || старшая тетрада — 13-я цифра мантиссы, младшая — знак: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; плюс, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; минус&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 значение = d1 d2 d3 . d4 … d13 × 1000 ^ порядок&lt;br /&gt;
&lt;br /&gt;
Мантисса — 13 цифр с точкой после третьей, что даёт заявленные для машины 13 значащих разрядов. &#039;&#039;&#039;Порядок берётся по основанию 1000&#039;&#039;&#039;, а не 10: нормализованная мантисса лежит в диапазоне [1, 1000).&lt;br /&gt;
&lt;br /&gt;
Первая значащая цифра стоит на позиции 1, 2 или 3, поэтому число значащих разрядов в записи на диск равно 13, 12 или 11 соответственно.&lt;br /&gt;
&lt;br /&gt;
Примеры: &amp;lt;code&amp;gt;00 10 00 00 00 00 00 00&amp;lt;/code&amp;gt; — единица, &amp;lt;code&amp;gt;00 80 00 00 00 00 00 00&amp;lt;/code&amp;gt; — восьмёрка.&lt;br /&gt;
&lt;br /&gt;
== Десятично-упакованный формат ==&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;PACK(&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt;) и &amp;lt;code&amp;gt;UNPACK(&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt;) укладывают числа в символьное поле по образу печати, вида &amp;lt;code&amp;gt;[+|-] ### [.###] [^^^^]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Две цифры на байт, старшая тетрада первой, разряды в порядке образа.&lt;br /&gt;
* Размер группы: число тетрад = знак плюс количество знаков &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, округлить вверх до целого байта, плюс байт порядка при &amp;lt;code&amp;gt;^^^^&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Образ &amp;lt;code&amp;gt;####&amp;lt;/code&amp;gt; занимает ровно два байта.&lt;br /&gt;
&lt;br /&gt;
Тетрада знака (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; плюс, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; минус) и байт порядка со знаком на дисковых образах не встречаются и приняты по устройству восьмибайтового числа.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в оттранслированном программном файле, содержат значения переменных, записанные в том же формате логической записи. Для файла &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;: сектор начинается идентификатором &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за ним 25 записей по 10 байт (&amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; и восемь байт значения), последние 5 байт сектора не используются — &amp;lt;code&amp;gt;1 + 25 × 10 + 5 = 256&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Кодирование целого значения длиной 2 байта, описанного в документации.&lt;br /&gt;
# Тетрада знака и байт порядка в десятично-упакованном формате.&lt;br /&gt;
# Токен формы &amp;lt;code&amp;gt;DATA SAVE DA … END&amp;lt;/code&amp;gt; и приёмника адреса в скобках у &amp;lt;code&amp;gt;BA&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DA&amp;lt;/code&amp;gt;: документация их описывает, в оттранслированных файлах они не встречаются.&lt;br /&gt;
# Округляет или усекает машина разряды, не поместившиеся в восьмибайтовое число.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 11.5, 18.1–18.9.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987.&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение. — Киев, 1988.&lt;br /&gt;
* Реконструкция по 65 файлам данных с 42 образов дисков; формат числа — по 12 132 значениям.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%9A%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_BASIC-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2&amp;diff=4292</id>
		<title>Искра-226/Кодирование BASIC-файлов</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%9A%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_BASIC-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2&amp;diff=4292"/>
		<updated>2026-08-26T15:30:17Z</updated>

		<summary type="html">&lt;p&gt;Panther: Новая страница: «{{emuverse}}  &amp;#039;&amp;#039;&amp;#039;Оттранслированное представление BASIC 02&amp;#039;&amp;#039;&amp;#039; — внутренний формат записи программы Искра-226, включаемый параметром &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; оператора &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;. Имена операторов и функций заменены однобайтовыми токенами, имена переменных — индексами; текст в...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оттранслированное представление BASIC 02&#039;&#039;&#039; — внутренний формат записи программы [[Искра-226]], включаемый параметром &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; оператора &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;. Имена операторов и функций заменены однобайтовыми токенами, имена переменных — индексами; текст в потоке остаётся только внутри строковых литералов.&lt;br /&gt;
&lt;br /&gt;
Внешняя структура файла, указатель каталога и заголовочный сектор описаны в статье [[Искра-226/Файловая система|Файловая система]]; оттранслированное представление отмечено битом 0 байта 9 заголовочного сектора. Смысл дисковых операторов — в статье [[Искра-226/Файлы данных BASIC 02|Файлы данных BASIC 02]].&lt;br /&gt;
&lt;br /&gt;
== Сборка потока ==&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов, беря с каждого ровно 254 байта, &#039;&#039;&#039;без обрезки хвостовых нулей&#039;&#039;&#039;. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
== Пролог ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Длины — 16-битные, старший байт первым. Число записей: &amp;lt;code&amp;gt;L1/8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;L2/4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;L3/4&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Четырёхбайтовое поле ===&lt;br /&gt;
&lt;br /&gt;
У части файлов между таблицами и первой записью строки лежат четыре лишних байта: &amp;lt;code&amp;gt;0A 19&amp;lt;/code&amp;gt; и двоично-десятичное число, своё у каждого файла. Назначение не установлено.&lt;br /&gt;
&lt;br /&gt;
Наличие поля определяется проверкой записи по вычисленному смещению: оба байта номера строки — правильное двоично-десятичное число, байт длины не меньше единицы, байт по адресу &amp;lt;code&amp;gt;p + 2 + len&amp;lt;/code&amp;gt; равен &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если проверка не проходит, а по смещению +4 проходит — поле присутствует.&lt;br /&gt;
&lt;br /&gt;
== Записи строк ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;номер строки: 2 байта BCD&amp;gt; &amp;lt;len: 1 байт&amp;gt; &amp;lt;тело&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Записи разделены байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой разделителя нет, после последней он есть и служит признаком конца потока.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039;; следующий разделитель стоит по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; служебные байты в длину не входят.&lt;br /&gt;
&lt;br /&gt;
=== Выравнивание ===&lt;br /&gt;
&lt;br /&gt;
Если запись не помещается в остаток сектора, остаток заполняется нулями. Правило: после разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; по смещению &#039;&#039;q&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 b = (⌊q / 254⌋ + 1) × 254&lt;br /&gt;
 если b &amp;gt; q и все байты потока с q по b−1 нулевые, то q = b&lt;br /&gt;
&lt;br /&gt;
Переход к следующему сектору выполняется только тогда, когда весь остаток текущего 254-байтового куска нулевой. Длина выравнивания доходит до шести байт.&lt;br /&gt;
&lt;br /&gt;
Строка с номером 0 кодируется байтами &amp;lt;code&amp;gt;00 00 &amp;amp;lt;len&amp;amp;gt;&amp;lt;/code&amp;gt;; безусловный пропуск пары нулей перед номером строки разрушает разбор таких файлов.&lt;br /&gt;
&lt;br /&gt;
== Операторы ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;токен глагола: 1 байт&amp;gt; &amp;lt;len: 1 байт&amp;gt; &amp;lt;операнды: len байт&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов; &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов. Явная длина позволяет разрезать программу на операторы, не зная значений токенов, и служит проверкой синхронизации.&lt;br /&gt;
&lt;br /&gt;
=== Пример разбора ===&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «…» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
== Таблица глаголов ==&lt;br /&gt;
&lt;br /&gt;
Значения назначены тематическими группами. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Токен !! Оператор&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || IF END THEN || &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN || &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON || &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; || &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || &amp;lt;code&amp;gt;5B&amp;lt;/code&amp;gt; || DATA RESAVE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE || &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER || &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK(&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR || &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD || &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST || &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR(&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN || &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR(&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt; || RETURN CLEAR || &amp;lt;code&amp;gt;63&amp;lt;/code&amp;gt; || ADD C&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;33&amp;lt;/code&amp;gt; || LIST S || &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt; || ON ERROR || &amp;lt;code&amp;gt;65&amp;lt;/code&amp;gt; || LIST RES&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET || &amp;lt;code&amp;gt;66&amp;lt;/code&amp;gt; || DATA LOAD BT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;присваивание без ключевого слова&#039;&#039; || &amp;lt;code&amp;gt;68&amp;lt;/code&amp;gt; || DATA SAVE BT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;37&amp;lt;/code&amp;gt; || COM CLEAR || &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;38&amp;lt;/code&amp;gt; || TRACE OFF || &amp;lt;code&amp;gt;6E&amp;lt;/code&amp;gt; || DATA SAVE BA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;39&amp;lt;/code&amp;gt; || DATA LOAD || &amp;lt;code&amp;gt;6F&amp;lt;/code&amp;gt; || DATA SAVE DA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; || DEFFN&#039; с текстом клавиши || &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; || DATA LOAD BA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; — краткая форма REM || &amp;lt;code&amp;gt;71&amp;lt;/code&amp;gt; || DATA LOAD DA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO || &amp;lt;code&amp;gt;72&amp;lt;/code&amp;gt; || LOAD DA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || &amp;lt;code&amp;gt;73&amp;lt;/code&amp;gt; || SAVE DA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP || &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( || &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || &amp;lt;code&amp;gt;76&amp;lt;/code&amp;gt; || DATA SAVE DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL || &amp;lt;code&amp;gt;77&amp;lt;/code&amp;gt; || DATA SAVE DC CLOSE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || &amp;lt;code&amp;gt;78&amp;lt;/code&amp;gt; || DATA SAVE DC OPEN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT || &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( || &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;49&amp;lt;/code&amp;gt; || DATA SAVE || &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD || &amp;lt;code&amp;gt;7C&amp;lt;/code&amp;gt; || LIST DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( || &amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt; || LOAD DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE || &amp;lt;code&amp;gt;7F&amp;lt;/code&amp;gt; || MOVE END&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM || &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; || SAVE DC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT || &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51&amp;lt;/code&amp;gt; || RESTORE || &amp;lt;code&amp;gt;82&amp;lt;/code&amp;gt; || SCRATCH DISK&lt;br /&gt;
|-&lt;br /&gt;
| || || &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблица прочитана из интерпретатора на загрузочном диске: с адреса 0x1840 лежит алфавитный список 51 однословного ключевого слова без разделителей, с 0x192E — 33 записи сочетаний вида «индекс первого слова плюс 0x60, текст продолжения», с 0x19B6 — 84-байтовый массив перестановки, дающий каждой записи её токен.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; в таблице один, с токеном &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt;; токен &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; (форма с формальными параметрами) машина ставит сама при разборе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RES&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt;) — самостоятельное ключевое слово; &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt; собирается из &amp;lt;code&amp;gt;RES&amp;lt;/code&amp;gt; и продолжения &amp;lt;code&amp;gt;TORE&amp;lt;/code&amp;gt;. Что делают &amp;lt;code&amp;gt;RES&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;LIST RES&amp;lt;/code&amp;gt;, документация не описывает.&lt;br /&gt;
&lt;br /&gt;
== Двухбайтовые глаголы ==&lt;br /&gt;
&lt;br /&gt;
Матричные, символьные и графические операторы кодируются префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; и подкодом; байт длины стоит после подкода:&lt;br /&gt;
&lt;br /&gt;
 06 &amp;lt;подкод&amp;gt; &amp;lt;len&amp;gt; &amp;lt;операнды&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Подкод !! Оператор !! Подкод !! Оператор&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || PLOT || &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || DRAW&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || MAT &#039;&#039;присваивание&#039;&#039; || &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt; || NPLOT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || MAT REDIM || &amp;lt;code&amp;gt;1A&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤MOVE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || MAT READ || &amp;lt;code&amp;gt;1B&amp;lt;/code&amp;gt; || TURN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;04&amp;lt;/code&amp;gt; || MAT INPUT || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; || STRETCH&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; || MAT PRINT || &amp;lt;code&amp;gt;1D&amp;lt;/code&amp;gt; || FRAME&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; || MAT COPY || &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || LABEL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; || MAT MOVE (?) || &amp;lt;code&amp;gt;1F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤COPY&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; || MAT SEARCH || &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤LET&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt; || MAT SORT (?) || &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || WINDOW&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || LINPUT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0D&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤PACK&amp;lt;/code&amp;gt; (?) || &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || ASMB&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0E&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤UNPACK&amp;lt;/code&amp;gt; (?) || &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || REPLACE&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤OPEN&amp;lt;/code&amp;gt; || ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt; || DOT || ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; || DDRAW || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Имена &amp;lt;code&amp;gt;ORIGIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DNPLOT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;NDRAW&amp;lt;/code&amp;gt; встречаются в текстовых листингах, но подкодов не имеют: все подкоды, встречающиеся в оттранслированных файлах, уже опознаны.&lt;br /&gt;
&lt;br /&gt;
Действие графических операторов и формат самого рисунка описаны в статье [[Графический буфер BASIC 02]].&lt;br /&gt;
&lt;br /&gt;
== Таблица операндов ==&lt;br /&gt;
&lt;br /&gt;
Токены операндов прочитаны из интерпретатора с адреса 0x1A0C: пул слов и таблица 16-битных указателей на них с адреса 0x1B18, младший байт первым, 114 слов. Токен слова — его номер в пуле плюс смещение прогона; прогонов четыре, по числу позиций разбора.&lt;br /&gt;
&lt;br /&gt;
=== Двузначные токены ===&lt;br /&gt;
&lt;br /&gt;
Часть токенов читается по-разному в зависимости от того, ожидается на их месте знак операции или очередной операнд. Отдельного признака в файле нет, различает состояние разбора.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! В позиции операции !! В позиции операнда&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D2&amp;lt;/code&amp;gt; || STEP || параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; оператора &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;$GIO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt; || BEG; &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; после &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || END&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || OPEN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || — || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; — номер строки таблицы устройств; «2» — второй аргумент &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;BIN(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — деление || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — префикс адреса устройства&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || однобайтовый литерал: значение в следующем байте&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; || ссылка на массив целиком&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || XOR || дробная константа&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || OR || константа с порядком&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || AND || константа, 2 байта BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || ARC || константа, 1 байт BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; бинарный || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; унарный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EC&amp;lt;/code&amp;gt; || TRN || &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ED&amp;lt;/code&amp;gt; || INV || &amp;lt;code&amp;gt;LEN(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EE&amp;lt;/code&amp;gt; || IDN || &amp;lt;code&amp;gt;NUM(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; || ZER || &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt; || CON || &amp;lt;code&amp;gt;FN&amp;amp;lt;имя&amp;amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ключевые слова &amp;lt;code&amp;gt;TRN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;IDN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ZER&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;CON&amp;lt;/code&amp;gt; встречаются только внутри оператора &amp;lt;code&amp;gt;MAT&amp;lt;/code&amp;gt;. Слова &amp;lt;code&amp;gt;OPEN&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;ARC&amp;lt;/code&amp;gt; взяты из таблицы интерпретатора; в оттранслированных файлах &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; встречается только как знак равенства, а &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — только как константа.&lt;br /&gt;
&lt;br /&gt;
=== Однозначные токены ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt; || ссылка на переменную по индексу&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt; || FROM&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CB&amp;lt;/code&amp;gt; || ALL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; || GOSUB в составе &amp;lt;code&amp;gt;ON … GOSUB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; || GOTO в составе &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CF&amp;lt;/code&amp;gt; || буквы &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;HEX(&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал в кавычках: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt; || строковый литерал в апострофах, кодирование то же&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || константа, 1 байт BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; — группирующая скобка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;F8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ABS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INT(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RND(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SGN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SQR(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOG(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EXP(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F9&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SIN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCSIN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCCOS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCTAN(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || вне выражения — разделитель записей строк&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ссылками на переменные являются значения &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt;, а не &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;BF&amp;lt;/code&amp;gt;: первый токен — &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;. Индексы &amp;lt;code&amp;gt;C0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt; встречаются в программах более чем со 192 переменными.&lt;br /&gt;
&lt;br /&gt;
=== Два вида строковых литералов ===&lt;br /&gt;
&lt;br /&gt;
Строки в кавычках система выводит как строки из &#039;&#039;&#039;прописных&#039;&#039;&#039; букв, строки в апострофах — из &#039;&#039;&#039;строчных&#039;&#039;&#039;.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; Так на машине без строчных букв на клавиатуре задаются строчные символьные константы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Форма записи !! Регистр&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;quot;…&amp;quot;&amp;lt;/code&amp;gt; || прописные&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&#039;…&#039;&amp;lt;/code&amp;gt; || строчные&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Числовые константы ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Формат&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || сырой байт, не BCD — байтовые константы и адреса устройств&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || описатель + BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || то же + байт порядка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || 2 байта BCD, 0–7999&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || 1 байт BCD, 0–99&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В описателе &#039;&#039;&#039;старшая тетрада — количество цифр до запятой, младшая — общее количество цифр&#039;&#039;&#039;. Цифры идут по две на байт, незанятая последняя тетрада — нуль.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Запись !! Байты !! Описатель&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 01 50&amp;lt;/code&amp;gt; || 0 / 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 12 25&amp;lt;/code&amp;gt; || 1 / 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.196854&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 19 68 54&amp;lt;/code&amp;gt; || 0 / 6&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51840&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 55 51 84 00&amp;lt;/code&amp;gt; || 5 / 5&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.718281828&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 1A 27 18 28 18 28&amp;lt;/code&amp;gt; || 1 / 10&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E6 11 10 06&amp;lt;/code&amp;gt; || 1 / 1, порядок 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; служит и для целых чисел больше 9999 — всего, что не помещается в &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;; дробной части при этом нет, обе тетрады описателя равны.&lt;br /&gt;
&lt;br /&gt;
Длина хвоста — &amp;lt;code&amp;gt;1 + ⌈&#039;&#039;младшая тетрада&#039;&#039; / 2⌉&amp;lt;/code&amp;gt; байт для &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; и на один байт больше для &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Верхняя граница &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — 7999: восемь тысяч кодируются общей формой &amp;lt;code&amp;gt;E5 44 80 00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Запись с порядком по значению не восстанавливается: &amp;lt;code&amp;gt;1E6&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;1000000&amp;lt;/code&amp;gt; — одно число, но разные байты.&lt;br /&gt;
&lt;br /&gt;
Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; и первый байт операндов &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; хранятся &#039;&#039;&#039;двоичными&#039;&#039;&#039;, не в BCD. То же относится к номерам строк, которые записываются сырыми парами BCD без токена: диапазоны в &amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RUN&amp;lt;/code&amp;gt;, номер строки у &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;IF END THEN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;KEYIN&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;LIST S&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таблицы переменных ==&lt;br /&gt;
&lt;br /&gt;
=== Таблица 1 ===&lt;br /&gt;
&lt;br /&gt;
Описывает переменные, которым нужен дескриптор размера: массивы и символьные переменные с явно заданной длиной, независимо от того, объявлены они в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; или в &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;. Числовые скаляры и символьные переменные с длиной по умолчанию в таблицу не попадают.&lt;br /&gt;
&lt;br /&gt;
Запись — 8 байт:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || тип: &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; — символьная, &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; — числовая или целая; иное значение — вторая размерность&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || число элементов (первая размерность), младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || размерный код, младший байт первым&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размерный код равен &amp;lt;code&amp;gt;2 × размер элемента&amp;lt;/code&amp;gt;, младший бит означает, что длина задана явно:&lt;br /&gt;
&lt;br /&gt;
* целая — 4 (2 байта);&lt;br /&gt;
* числовая — 16 (8 байт);&lt;br /&gt;
* символьная длины &#039;&#039;L&#039;&#039; — &amp;lt;code&amp;gt;2L + 1&amp;lt;/code&amp;gt;;&lt;br /&gt;
* символьная с длиной по умолчанию (16) — 32, код чётный.&lt;br /&gt;
&lt;br /&gt;
Нечётность кода не является признаком символьного типа; тип берётся из байтов 2–3 либо из флага таблиц 2 и 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Двумерные массивы.&#039;&#039;&#039; Вторая размерность записывается в байты 2–3, на место признака типа; первая остаётся в поле числа элементов. Размерности не перемножаются, &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; восстанавливается точно. Практическое правило: старший байт поля 2–3 равен &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; — массив одномерный, иначе поле занято второй размерностью.&lt;br /&gt;
&lt;br /&gt;
Исключение — &#039;&#039;&#039;неявно объявленные массивы&#039;&#039;&#039;: у переменной, к которой обратились с индексом без &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, число элементов равно 10, а в байтах 2–3 стоят значения &amp;lt;code&amp;gt;01 27&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;07 59&amp;lt;/code&amp;gt;, размерностями не являющиеся. Такие массивы следует выводить как одномерные &amp;lt;code&amp;gt;(10)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Порядок записей обратен порядку объявления&#039;&#039;&#039;: память выделяется сверху вниз, а таблица отсортирована по возрастанию адреса.&lt;br /&gt;
&lt;br /&gt;
Размер выделяемой памяти:&lt;br /&gt;
&lt;br /&gt;
* скалярная символьная переменная — объявленная длина, округлённая вверх до чётной;&lt;br /&gt;
* массив — &amp;lt;code&amp;gt;N × размер элемента + 6&amp;lt;/code&amp;gt;, где 6 байт занимает дескриптор.&lt;br /&gt;
&lt;br /&gt;
Адреса могут быть нулевыми: у программ, которые ни разу не выполнялись, и у защищённых файлов. Правила, опирающиеся на разность адресов, там неприменимы.&lt;br /&gt;
&lt;br /&gt;
=== Таблицы 2 и 3 ===&lt;br /&gt;
&lt;br /&gt;
Образуют &#039;&#039;&#039;один непрерывный массив дескрипторов&#039;&#039;&#039; — по записи на каждую переменную программы. Формат одинаков, граница определяется счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной, младший байт первым; &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;, если память не выделена&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 1 || флаг типа&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 1 || назначение не установлено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Записи идут в порядке &#039;&#039;&#039;убывания индекса переменной&#039;&#039;&#039;. Если&lt;br /&gt;
&lt;br /&gt;
 N = L2 / 4 + L3 / 4&lt;br /&gt;
&lt;br /&gt;
то переменная с индексом &#039;&#039;i&#039;&#039; описана записью на позиции &amp;lt;code&amp;gt;N − 1 − i&amp;lt;/code&amp;gt;, считая позиции подряд: сначала таблица 2, затем таблица 3. Отсюда &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; — общее число переменных программы.&lt;br /&gt;
&lt;br /&gt;
Таблица 3 приходится на самые младшие индексы — те, что занимает оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Флаг типа:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Бит !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;) || у переменной есть дескриптор в таблице 1&lt;br /&gt;
|-&lt;br /&gt;
| 3 || назначение не установлено&lt;br /&gt;
|-&lt;br /&gt;
| 4 (&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;) || числовая действительная&lt;br /&gt;
|-&lt;br /&gt;
| 5 (&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;) || символьная&lt;br /&gt;
|-&lt;br /&gt;
| 7 || назначение не установлено&lt;br /&gt;
|-&lt;br /&gt;
| ни 4, ни 5 || целая (суффикс &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Связь с таблицей 1.&#039;&#039;&#039; Число записей с установленным битом 0 равно &amp;lt;code&amp;gt;L1 / 8&amp;lt;/code&amp;gt;, и соответствие порядковое:&lt;br /&gt;
&lt;br /&gt;
 k = 0&lt;br /&gt;
 для pos = 0 … N−1:&lt;br /&gt;
     если флаг[pos] и 1:&lt;br /&gt;
         дескриптор переменной (N − 1 − pos) = запись таблицы 1 номер k&lt;br /&gt;
         k = k + 1&lt;br /&gt;
&lt;br /&gt;
Это даёт точное соответствие «индекс переменной → запись таблицы 1» без разбора операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;. Сопоставление по порядку объявления ошибочно: &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; объявляет и обычные скаляры, у которых дескриптора нет, а после &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; в операнде &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; стоят «теневые» индексы.&lt;br /&gt;
&lt;br /&gt;
У переменных с дескриптором таблицы 1 поле 0–1 содержит не адрес, а небольшое число, растущее примерно на восемь с каждой такой переменной. Назначение не установлено.&lt;br /&gt;
&lt;br /&gt;
=== Состояние на момент сохранения ===&lt;br /&gt;
&lt;br /&gt;
Оттранслированный файл — снимок памяти после запуска, а не перевод текста.&lt;br /&gt;
&lt;br /&gt;
Массив, выросший при выполнении оператора &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; за пределы исходного выделения, получает новый дескриптор в таблице 1 &#039;&#039;&#039;и новый индекс переменной&#039;&#039;&#039;, причём интерпретатор правит операнд в самом операторе &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, оставляя код и &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; работать со старым индексом. Если новый размер не превышает объявленного, память переиспользуется и запись остаётся одна.&lt;br /&gt;
&lt;br /&gt;
Поэтому операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; как источник соответствия «индекс — дескриптор» непригодны.&lt;br /&gt;
&lt;br /&gt;
=== Индексы и имена переменных ===&lt;br /&gt;
&lt;br /&gt;
Индексы назначаются &#039;&#039;&#039;в порядке первого появления переменной в тексте программы&#039;&#039;&#039;. Операторы &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; делят единое пространство индексов; &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; выполняется первым и получает индексы с нуля.&lt;br /&gt;
&lt;br /&gt;
Ключ переменной — имя &#039;&#039;&#039;вместе с признаком массива&#039;&#039;&#039;: &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A¤&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A()&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;A%()&amp;lt;/code&amp;gt; — разные переменные с разными индексами.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Имена переменных в оттранслированном файле не сохраняются.&#039;&#039;&#039; Таблицы содержат только дескрипторы памяти. Читаемый листинг из такого файла восстановить нельзя: восстанавливается структура программы, тип каждой переменной, «массив или скаляр» и размерности, но не имена.&lt;br /&gt;
&lt;br /&gt;
== Операнды ==&lt;br /&gt;
&lt;br /&gt;
=== Дисковые операторы ===&lt;br /&gt;
&lt;br /&gt;
Первый байт операндов — код устройства или режима, а не ссылка на переменную:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Байт !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt; — первый дисковод&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; — второй дисковод&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; — обращение по номеру строки таблицы устройств (&amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 79 01 D6                                   DBACKSPACE BEG&lt;br /&gt;
 7A 01 D7                                   DSKIP END&lt;br /&gt;
 76 01 D7                                   DATA SAVE DC END&lt;br /&gt;
 79 04 DB E8 01 DE D6                       DBACKSPACE #1,BEG&lt;br /&gt;
 76 07 D6 DB E8 02 DE E0 12                 DATA SAVE DC ¤#2,W()&lt;br /&gt;
 82 0B 01 06 D9 E8 05 DE D7 D9 E7 10 00     SCRATCH DISK RLS=5,END=1000&lt;br /&gt;
&lt;br /&gt;
В последнем примере &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; — ключевое слово &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; — знак равенства, &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;. Байт &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; после законченного выражения у &amp;lt;code&amp;gt;DSKIP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DBACKSPACE&amp;lt;/code&amp;gt; — параметр &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; («в секторах»).&lt;br /&gt;
&lt;br /&gt;
Формы &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 80  &amp;lt;приставка&amp;gt; [D2 = T] [EB &amp;lt;старое имя либо резерв&amp;gt; D0] &amp;lt;имя&amp;gt; [&amp;lt;нач&amp;gt; [DE &amp;lt;кон&amp;gt;]]&lt;br /&gt;
 7D  &amp;lt;приставка&amp;gt; &amp;lt;имя&amp;gt; [&amp;lt;нач&amp;gt; [DE &amp;lt;кон&amp;gt; [DE &amp;lt;куда продолжать&amp;gt;]]]&lt;br /&gt;
 7C  &amp;lt;приставка&amp;gt; [&amp;lt;имя&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
=== Списки ===&lt;br /&gt;
&lt;br /&gt;
Список &#039;&#039;&#039;принимающих&#039;&#039;&#039; переменных пишется &#039;&#039;&#039;без разделителей&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 41 02 0A 0B                        INPUT T0,N0&lt;br /&gt;
 74 03 05 0C 0D                     DATA LOAD DC A1¤,E1,E2&lt;br /&gt;
 46 04 00 01 02 03                  DIM X(300),Y(300),N(2),G¤(300)5&lt;br /&gt;
&lt;br /&gt;
Список &#039;&#039;&#039;выражений&#039;&#039;&#039; разделяется &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 76 06 D6 05 DE 0A DE 0B            DATA SAVE DC ¤A1¤,T0,N0&lt;br /&gt;
&lt;br /&gt;
Пропущенный параметр не кодируется ничем — между разделителями просто нет операнда:&lt;br /&gt;
&lt;br /&gt;
 06 1E 09 E0 12 DE DE DE 11 E8 01 D0    LABEL B6¤(),,,B3¤(1)&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает. Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях и для размерностей в &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0                → 01(32)&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0 → (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Ссылка на массив целиком — &amp;lt;code&amp;gt;E0 &amp;amp;lt;индекс&amp;amp;gt;&amp;lt;/code&amp;gt;, законченное значение: после неё разбор ожидает операцию или следующий элемент списка. В операторах, операнды которых — список значений, возведения в степень быть не может, поэтому &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; там всегда ссылка на массив.&lt;br /&gt;
&lt;br /&gt;
=== Скобки ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Конструкция !! Открывающая !! Закрывающая&lt;br /&gt;
|-&lt;br /&gt;
| индекс массива || нет || &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ABS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SQR(&amp;lt;/code&amp;gt; и прочие явные функции || в токене || &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LEN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NUM(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt; || в токене || &#039;&#039;&#039;нет&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt; || в токене || &#039;&#039;&#039;нет&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt; || в токене || &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| группировка в выражении || &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
У глаголов, имя которых оканчивается на &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;, закрывающей скобки в потоке нет:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Глагол !! Где находится закрывающая скобка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; AND(, &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; OR(, &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; XOR( || в конце операторной части&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; PACK(, &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; UNPACK(, &amp;lt;code&amp;gt;06 0C&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || сразу за литералом формата&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; BIN( || после приёмника, вместе со знаком &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Неявные функции считаются по уровням, а не одним счётчиком.&#039;&#039;&#039; Закрывающая скобка вложенной явной конструкции неявную функцию не закрывает:&lt;br /&gt;
&lt;br /&gt;
 EC  E1  E0 2A  E8 01  D0  D7  DE 20  D5  E8 00  D3 02 70&lt;br /&gt;
 POS(STR( V¤()  , 1    )   &amp;amp;lt;   20     )   &amp;amp;lt;&amp;amp;gt;  0   THEN 270&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; закрывает только &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt; заканчивается на &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Неявная первая запятая ===&lt;br /&gt;
&lt;br /&gt;
Функция &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt; первую запятую не кодирует: &amp;lt;code&amp;gt;STR(Z¤,67)&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;E1 10 E8 67 D0&amp;lt;/code&amp;gt;. Вторая и последующие кодируются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. У прочих операторов неявной первой запятой нет.&lt;br /&gt;
&lt;br /&gt;
Первый аргумент &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt; индексируется только по признаку массива из таблиц переменных: заглядывание вперёд читает &amp;lt;code&amp;gt;STR(Z¤,67)&amp;lt;/code&amp;gt; как &amp;lt;code&amp;gt;Z¤(67)&amp;lt;/code&amp;gt;. То же относится к приёмнику &amp;lt;code&amp;gt;BIN(&amp;lt;/code&amp;gt;, приёмникам &amp;lt;code&amp;gt;INIT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;KEYIN&amp;lt;/code&amp;gt; и имени файла у &amp;lt;code&amp;gt;LIMITS&amp;lt;/code&amp;gt; — за ними сразу идёт следующий операнд, без разделителя.&lt;br /&gt;
&lt;br /&gt;
=== Что не кодируется ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Оператор !! В потоке !! В листинге&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INIT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;64 04 E3 01 2D 15&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INIT (&amp;quot;-&amp;quot;)U¤&amp;lt;/code&amp;gt; — значение в скобках, запятой нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;47 0F 48 D1 E1 … D0 E3 02 «##»&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;CONVERT P% TO STR(…),(##)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$GIO&amp;lt;/code&amp;gt; с адресом || &amp;lt;code&amp;gt;40 0D DC DE 34 DE E2 06 … 22&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤GIO /34,(HEX(…),A¤)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VERIFY&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;83 … 02 DB 39 E8 01 D0 DE 16 … 17 …&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;VERIFY T#D%(1),(X(1),Y(1))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 0C 06 0D DE 12 D0 DE 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤TRAN(Q¤,L0¤)R&amp;lt;/code&amp;gt; — запятая после &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; не печатается&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;LABEL&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 1E 0A E0 1F E8 03 DE DE DE E3 01 51&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LABEL B¤()3,,,&amp;quot;Q&amp;quot;&amp;lt;/code&amp;gt; — размер вплотную к имени&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MAT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 01 04 E0 54 D9 EF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;MAT C%=ZER&amp;lt;/code&amp;gt; — имя массива без &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;51 05 E8 01 DE 48 50&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;RESTORE 1,4850&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2A 0A DD 10 52 15 DE 52 15 DE 52 25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SAVE Z¤5215,5215,5225&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;LINPUT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 24 2C E3 28 … E9 32&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LINPUT &amp;quot;…&amp;quot;,-L¤&amp;lt;/code&amp;gt; — запятая перед унарным минусом&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; с приглашением || &amp;lt;code&amp;gt;41 14 E3 11 «…» 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INPUT &amp;quot;…&amp;quot;,K&amp;lt;/code&amp;gt; — запятая после литерала&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Оператор SELECT ===&lt;br /&gt;
&lt;br /&gt;
Первый байт операндов — код группы устройств, записи разделяются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Ширина строки после &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; — двоичное 16-битное число, старший байт первым.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Код !! Группа !! Пример&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt; — строка таблицы устройств || &amp;lt;code&amp;gt;00 01 18&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#118&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;00 01 18 00&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#118F&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; — градусы || операндов нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; — радианы || операндов нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; — грады || операндов нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; — пауза после строки || &amp;lt;code&amp;gt;05 01&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT P1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; || LIST || &amp;lt;code&amp;gt;06 0C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; || PRINT || &amp;lt;code&amp;gt;07 0C EB 00 82&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT PRINT0C(130)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; || PLOT || &amp;lt;code&amp;gt;08 10 DE …&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; || TAPE || &amp;lt;code&amp;gt;09 1B EB 1F 3F&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; || DISK || &amp;lt;code&amp;gt;0A 18 01&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT DISK18R&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt; || CI ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; || CO || &amp;lt;code&amp;gt;0C 05 EB 00 50&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В записях группы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; дисковод указывается не всегда: &amp;lt;code&amp;gt;SELECT #118&amp;lt;/code&amp;gt; даёт трёхбайтовую запись, &amp;lt;code&amp;gt;SELECT #118F&amp;lt;/code&amp;gt; — четырёхбайтовую.&lt;br /&gt;
&lt;br /&gt;
Параметры оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt; кодируются той же таблицей: &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Цепочка операторов DATA ===&lt;br /&gt;
&lt;br /&gt;
Два последних байта операндов каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; — указатель на следующий оператор &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt;, младший байт первым; у последнего в программе он равен &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt;. По этой цепочке работают &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt;. Значения — адреса в памяти интерпретатора, а не смещения в файле, и из текста программы не восстанавливаются.&lt;br /&gt;
&lt;br /&gt;
Эти два байта нельзя разбирать как токены.&lt;br /&gt;
&lt;br /&gt;
Тело оператора — список значений &#039;&#039;&#039;без разделителей&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 29 1E E8 31 E7 03 34 E8 00 E8 28 E7 03 06 E8 31 … C9 04&lt;br /&gt;
       31    334      0     28    306      31&lt;br /&gt;
&lt;br /&gt;
Поэтому внутри &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; токены &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; всегда читаются как константы, а не как &amp;lt;code&amp;gt;XOR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;OR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt;. То же в &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, где длина элемента идёт сразу за закрывающей скобкой:&lt;br /&gt;
&lt;br /&gt;
 06 02 0A E0 04 EB E7 01 26 D0 E7 01 28    MAT REDIM A¤(126)128&lt;br /&gt;
&lt;br /&gt;
=== Подпрограммы с параметрами ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Глагол !! Операнды&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; GOSUB&#039; || &amp;lt;code&amp;gt;&amp;amp;lt;метка: 1 байт двоичный&amp;amp;gt;&amp;lt;/code&amp;gt;, затем фактические параметры — выражения через &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; DEFFN&#039; || &amp;lt;code&amp;gt;&amp;amp;lt;метка&amp;amp;gt; &amp;amp;lt;4 байта адреса входа&amp;amp;gt;&amp;lt;/code&amp;gt;, затем формальные параметры — индексы подряд, без разделителей&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; DEFFN&#039; || &amp;lt;code&amp;gt;&amp;amp;lt;метка&amp;amp;gt; &amp;amp;lt;4 байта адреса&amp;amp;gt; &amp;amp;lt;один литерал&amp;amp;gt;&amp;lt;/code&amp;gt; — текст клавиши специальных функций&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; DEFFN || &amp;lt;code&amp;gt;&amp;amp;lt;имя&amp;amp;gt; &amp;amp;lt;2 байта рабочего поля&amp;amp;gt; &amp;amp;lt;формальная переменная&amp;amp;gt; &amp;amp;lt;выражение&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Скобки списка параметров не кодируются.&lt;br /&gt;
&lt;br /&gt;
 23 0B 05 E8 01 DE E8 01 DE 0D E9 E8 02    GOSUB &#039; 5(1,1,N-2)&lt;br /&gt;
 27 08 05 00 00 00 00 12 20 21             DEFFN &#039; 5(N1,D1,D2)&lt;br /&gt;
 3A 08 1F 00 00 A4 03 E2 01 0D             DEFFN &#039; 31 HEX(0D)&lt;br /&gt;
&lt;br /&gt;
Четыре байта после метки у &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; — адрес входа, который интерпретатор заполняет при первом обращении; нулевыми они бывают только там, где подпрограмму ни разу не звали. При разборе их следует пропускать.&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; подпрограммы не задаёт: это текст, подставляемый при нажатии клавиши, и &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; на него не переходит.&lt;br /&gt;
&lt;br /&gt;
=== Функции пользователя ===&lt;br /&gt;
&lt;br /&gt;
 5A &amp;lt;имя&amp;gt; &amp;lt;lo&amp;gt; &amp;lt;hi&amp;gt; &amp;lt;формальная переменная&amp;gt; &amp;lt;выражение&amp;gt;&lt;br /&gt;
 F0 &amp;lt;имя&amp;gt; &amp;lt;выражение&amp;gt; D0&lt;br /&gt;
&lt;br /&gt;
Имя функции — латинская буква либо цифра, записанная сырым кодом символа. Это &#039;&#039;&#039;не индекс переменной&#039;&#039;&#039;: пространства имён разные, одна и та же буква может быть и переменной, и именем функции. Знака равенства в потоке нет, тело идёт сразу за байтом формальной переменной. Два байта между именем и формальной переменной — рабочее поле; у последнего определения в программе там нули.&lt;br /&gt;
&lt;br /&gt;
 5A 48 00 00 2A EB 2A EA F2 2A D0 D0 DC E8 02    DEFFN H(X)=(X+ABS(X))/2&lt;br /&gt;
&lt;br /&gt;
В операторах &amp;lt;code&amp;gt;AND(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OR(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XOR(&amp;lt;/code&amp;gt; байт &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt; в конце операндов — не функция, а шестнадцатеричная маска.&lt;br /&gt;
&lt;br /&gt;
== Разбор выражений ==&lt;br /&gt;
&lt;br /&gt;
Два состояния: «ожидается операнд» и «ожидается операция».&lt;br /&gt;
&lt;br /&gt;
* Сброс в «операнд»: начало операндов оператора, после &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt;, знаков сравнения, после &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; и функций, после любой бинарной операции.&lt;br /&gt;
* Переход в «операцию»: после ссылки на переменную, константы, литерала, &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Унарный минус (&amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; в позиции операнда) состояние не меняет.&lt;br /&gt;
&lt;br /&gt;
Заглядывать вперёд можно только в том состоянии, в каком лексема потом будет прочитана: &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; в позиции операции — запятая, в позиции операнда — однобайтовый литерал, съедающий следующий байт.&lt;br /&gt;
&lt;br /&gt;
Разрешение «массив или скаляр» после ссылки на переменную:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Следующий токен !! Вывод&lt;br /&gt;
|-&lt;br /&gt;
| однозначный операнд (&amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt;, ссылка на переменную) || список индексов&lt;br /&gt;
|-&lt;br /&gt;
| однозначная операция (&amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; и прочие) || продолжение выражения&lt;br /&gt;
|-&lt;br /&gt;
| двузначный токен || операция&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Левая часть присваивания: цели идут вплотную, без разделителей, до первого &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; на нулевой глубине.&lt;br /&gt;
&lt;br /&gt;
 36 07 0F 10 11 12 D9 E8 00        S1,S2,S3,M=0&lt;br /&gt;
&lt;br /&gt;
Связки условий &amp;lt;code&amp;gt;XOR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OR&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt; &#039;&#039;&#039;равноправны и вычисляются слева направо&#039;&#039;&#039;;&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; старшинства между ними нет.&lt;br /&gt;
&lt;br /&gt;
В операторе &amp;lt;code&amp;gt;MAT SEARCH&amp;lt;/code&amp;gt; знак сравнения стоит в позиции операнда — сразу после запятой, отделяющей искомое значение:&lt;br /&gt;
&lt;br /&gt;
 06 0A 08 E0 20 DE D4 22 D1 E0 1E    MAT SEARCH L4¤(),&amp;amp;gt;A¤TON4¤()&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога и заголовочный сектор; убедиться, что бит 0 байта 9 установлен.&lt;br /&gt;
# Собрать поток, беря с каждого сектора ровно 254 байта без обрезки хвостовых нулей.&lt;br /&gt;
# Прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;; проверить наличие четырёхбайтового поля.&lt;br /&gt;
# Построить таблицу переменных: &amp;lt;code&amp;gt;N = L2/4 + L3/4&amp;lt;/code&amp;gt;, индекс на позиции &#039;&#039;pos&#039;&#039; равен &amp;lt;code&amp;gt;N − 1 − pos&amp;lt;/code&amp;gt;, тип из флага; записи с битом 0 по порядку сопоставить записям таблицы 1.&lt;br /&gt;
# Для каждой записи строки: номер из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; нет — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# После &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;: если весь остаток текущего 254-байтового куска нулевой, перейти к началу следующего.&lt;br /&gt;
# Тело разрезать на операторы &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;, учитывая двухбайтовые глаголы с префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Перед разбором операндов учесть особые формы: у &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; два последних байта — указатель цепочки, у дисковых операторов первый байт — код &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;, у &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; — двоичная метка, у &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; — собственный формат.&lt;br /&gt;
# Операнды — автомат состояний со стеком уровней скобок.&lt;br /&gt;
# Контроль: израсходовано ровно &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt;; стек пуст к концу оператора; число записей таблиц 2 и 3 с битом 0 равно &amp;lt;code&amp;gt;L1 / 8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обработку файла прекращать на первом секторе с маркером &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Подкоды операторов &amp;lt;code&amp;gt;ORIGIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DNPLOT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NDRAW&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Разметка аргумента в скобках у &amp;lt;code&amp;gt;MAT TRN&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;MAT INV&amp;lt;/code&amp;gt;; кодирование матричной арифметики (&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(K)*&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Кодирование отрицательного порядка числовой константы.&lt;br /&gt;
# Маска &amp;lt;code&amp;gt;hh&amp;lt;/code&amp;gt; у &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt;; признаки &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; у &amp;lt;code&amp;gt;MAT SEARCH&amp;lt;/code&amp;gt;; формы &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST *&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST %&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST ¤&amp;lt;/code&amp;gt;; форма &amp;lt;code&amp;gt;INPUT ¤&amp;amp;lt;переменная&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Грамматика операндов у глаголов &amp;lt;code&amp;gt;38&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;39&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;49&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5B&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;65&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7F&amp;lt;/code&amp;gt;: байты известны, вхождений нет.&lt;br /&gt;
# Смысл операторов &amp;lt;code&amp;gt;RES&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt;) и &amp;lt;code&amp;gt;LIST RES&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;65&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Назначение четырёхбайтового поля &amp;lt;code&amp;gt;0A 19 &amp;amp;lt;BCD&amp;amp;gt;&amp;lt;/code&amp;gt; перед программой.&lt;br /&gt;
# Байт 3 записей таблиц 2 и 3, биты 7 и 3 флага, поле 0–1 у переменных с дескриптором таблицы 1.&lt;br /&gt;
# Различение «строка-скаляр или массив строк» при нулевых адресах в таблице 1.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987.&lt;br /&gt;
* Таблицы ключевых слов и операндов — из образа интерпретатора на загрузочных дисках, адреса 0x1840 и 0x1A0C.&lt;br /&gt;
* Реконструкция по 94 оттранслированным файлам (15 735 строк) и 28 текстовым листингам, в том числе 12 парам «текст + токены».&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4291</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4291"/>
		<updated>2026-08-26T15:27:57Z</updated>

		<summary type="html">&lt;p&gt;Panther: new vers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Файловая система Искры 226&#039;&#039;&#039; — способ хранения файлов на дисках [[Искра-226]]. Унаследована от [[Wang 2200]] и совпадает с ней побайтово; содержимое файлов — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Статья описывает файловую систему, указатель каталога и текстовое представление программ. Отдельно вынесены:&lt;br /&gt;
&lt;br /&gt;
* [[Искра-226/Кодирование BASIC-файлов]] — токенизированная запись программы;&lt;br /&gt;
* [[Искра-226/Файлы данных BASIC 02]] — записи, значения и способы доступа;&lt;br /&gt;
* [[Искра-226/Графический буфер BASIC 02]] — формат рисунка.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Диск ==&lt;br /&gt;
&lt;br /&gt;
Физический сектор — 128 байт; 77 дорожек по 26 секторов, одна сторона. Физические сектора попарно объединены в логические по 256 байт со сквозной нумерацией. Далее везде подразумеваются логические сектора. Полный объём тома — 1001 сектор, 256 256 байт.&lt;br /&gt;
&lt;br /&gt;
Типы файлов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ПФ&#039;&#039;&#039; — программный файл: программа на Бейсике в текстовом либо оттранслированном виде;&lt;br /&gt;
* &#039;&#039;&#039;ФД&#039;&#039;&#039; — файл данных.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы записаны в указателе каталога.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, нули&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || концевая запись&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске не меняется, поэтому при перезаписи более коротким содержимым &#039;&#039;&#039;хвост не затирается&#039;&#039;&#039;: там остаются фрагменты предыдущих версий, иногда в другом представлении. Обработку следует прекращать на первой встреченной концевой записи.&lt;br /&gt;
&lt;br /&gt;
Диски прямого доступа (запись по абсолютным адресам секторов) указателя каталога не имеют; формат содержимого таких дисков задаёт программа пользователя. Загрузочные диски с интерпретатором имеют собственный формат: нулевой сектор начинается сигнатурой &amp;lt;code&amp;gt;06 90 09 90 07 90&amp;lt;/code&amp;gt;, за ней 18 знаков имени и даты версии.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
&lt;br /&gt;
Начинается с сектора 0. Первые 16 байт нулевого сектора — параметры диска:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || размер указателя каталога в секторах (&amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;), старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || текущий конец каталога — первый свободный сектор&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || конец области каталога&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размер указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию 24, допустимо 1…255; в дальнейшем не меняется. В нулевом секторе помещается 15 записей, в остальных 16. Неиспользованные записи заполнены нулями.&lt;br /&gt;
&lt;br /&gt;
Записи &#039;&#039;&#039;не сгруппированы&#039;&#039;&#039; в начале указателя и не упорядочены по секторам файлов: номер сектора, в который попадает запись, вычисляется хешированием имени. Для чтения каталога надо пройти все его секторы, пропуская нулевые записи.&lt;br /&gt;
&lt;br /&gt;
=== Хеш имени файла ===&lt;br /&gt;
&lt;br /&gt;
Номер сектора указателя вычисляется по «старому» хешу Wang 2200:&lt;br /&gt;
&lt;br /&gt;
 имя дополнить пробелами до восьми байт&lt;br /&gt;
 tmp = 0&lt;br /&gt;
 для каждого байта имени:  tmp = tmp XOR байт&lt;br /&gt;
 tmp = 3 × tmp&lt;br /&gt;
 tmp = (tmp mod 256) + (tmp div 256)&lt;br /&gt;
 сектор = tmp mod LS&lt;br /&gt;
&lt;br /&gt;
Свёртка выполняется исключающим ИЛИ, не сложением. «Новый» хеш Wang, введённый в MVP OS 2.5, на Искре не применяется.&lt;br /&gt;
&lt;br /&gt;
Хеш &#039;&#039;&#039;вырождается при &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, кратном трём&#039;&#039;&#039;: после умножения на 3 и складывания половинок результат всегда кратен трём, поэтому занятыми оказываются только каждый третий сектор указателя. При &amp;lt;code&amp;gt;LS = 24&amp;lt;/code&amp;gt; все записи попадают в секторы 0, 12, 15 и 18.&lt;br /&gt;
&lt;br /&gt;
Запись кладётся в первый свободный слот своего сектора, слоты заполняются подряд от начала. Правило переполнения сектора неизвестно.&lt;br /&gt;
&lt;br /&gt;
Освобождение слота выполняется &#039;&#039;&#039;обнулением первых восьми байт&#039;&#039;&#039; записи; имя при этом остаётся на диске. Оператор &amp;lt;code&amp;gt;SCRATCH&amp;lt;/code&amp;gt; запись не обнуляет, а помечает.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус, битовое поле; &#039;&#039;&#039;бит 0&#039;&#039;&#039; — файл вычеркнут&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Наблюдаемые значения статуса: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; — вычеркнута, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна. Сравнивать статус на точное равенство нельзя, значим только бит 0. Бит 5 (значение &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;) предположительно помечает переименование.&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и оттранслированное представление программы: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (данные), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые), что соответствует сочетанию байта статуса и байта типа.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тип «данные» ничего не говорит о внутреннем устройстве файла: он может содержать как логические записи, так и сырые блоки, записанные оператором &amp;lt;code&amp;gt;DATA SAVE BA&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Размещение файлов ==&lt;br /&gt;
&lt;br /&gt;
* Файлы лежат подряд в порядке создания, диапазоны секторов не пересекаются.&lt;br /&gt;
* Место вычеркнутого файла заново не занимается: &amp;lt;code&amp;gt;SCRATCH&amp;lt;/code&amp;gt; только помечает запись.&lt;br /&gt;
* Первый файл начинается с сектора &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, сразу за указателем.&lt;br /&gt;
* Поле «текущий конец» равно последнему занятому сектору плюс единица, но обрезается по концу области каталога; при разборе границу надёжнее брать по записям каталога.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 (в справочнике&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; назван «признак защиты») — битовое поле, единственный признак, различающий два представления программы: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; оператора &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); оба вместе соответствуют параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются. Текстовое представление — режим по умолчанию, оттранслированное включается явным параметром &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Защищённая программа после загрузки может только выполняться; режим снимается оператором &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора программного потока — служебные, в содержимое не входят. У секторов файла данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Код !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; || концевая запись&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8B&amp;lt;/code&amp;gt; || запись целиком в одном секторе (только файлы данных)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный сектор&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В оттранслированных программах все секторы потока идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;. Позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; наблюдается в текстовых файлах и в потоках данных.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; программных секторов равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;. Как признак «программа или данные» он непригоден: у секторов данных на позиции 1 стоит первый байт идентификатора значения. Надёжные признаки — байт 9 заголовочного сектора и байт типа записи каталога.&lt;br /&gt;
&lt;br /&gt;
== Концевая запись ==&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang.&lt;br /&gt;
&lt;br /&gt;
Счётчик равен &#039;&#039;&#039;собственной позиции записи от начала файла&#039;&#039;&#039;, считая с единицы, то есть числу занятых секторов вместе с заголовком. Он же — графа «Использовано» в выдаче &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* У программных файлов концевую запись пишет сам оператор &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;; она есть всегда.&lt;br /&gt;
* У файлов данных её пишет прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;. Если признак конца не записан, в графе «Использовано» стоит 00001.&lt;br /&gt;
* Оператор &amp;lt;code&amp;gt;DATA SAVE DC OPEN&amp;lt;/code&amp;gt; пишет в &#039;&#039;&#039;последний&#039;&#039;&#039; сектор файла запись &amp;lt;code&amp;gt;1C 00 01&amp;lt;/code&amp;gt; — единственный случай, когда счётчик не равен позиции.&lt;br /&gt;
&lt;br /&gt;
Запись лежит не обязательно в последнем выделенном секторе: если файлу дали запас или его положили на место вычеркнутого файла большего размера, за ней остаётся нулевой хвост.&lt;br /&gt;
&lt;br /&gt;
Счётчик — не инвариант файловой системы и при разборе ненадёжен: у файлов, записанных не операторами &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt;, он произволен. Границы файла следует брать из каталога.&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — [[КОИ-8]] (ГОСТ 19768-74): прописная кириллица в &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;, строчная в &amp;lt;code&amp;gt;C0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt;. Номера строк записаны обычными цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Байт &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; свободен потому, что диапазон &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;9F&amp;lt;/code&amp;gt; в КОИ-8 не занят. Тем же байтом машина разделяет строки в символьном буфере операторов &amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; и выдаёт нажатие клавиши CR/LF.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Виды дисков ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Вид !! Признак&lt;br /&gt;
|-&lt;br /&gt;
| с каталогом || байты 0–1 нулевого сектора — разумный &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, дальше 16-байтовые записи&lt;br /&gt;
|-&lt;br /&gt;
| загрузочный || сектор 0 начинается с &amp;lt;code&amp;gt;06 90 09 90 07 90&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| пакет ассемблера || сектор 0 начинается с &amp;lt;code&amp;gt;7E E1 F3 ED E2&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;~АСМБ&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| прямого доступа || каталога нет, есть заголовочные секторы &amp;lt;code&amp;gt;01 &amp;amp;lt;имя&amp;amp;gt; &amp;amp;lt;признак&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| пустой || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Хеш имени || «старый» и «новый» || только «старый»&lt;br /&gt;
|-&lt;br /&gt;
| Маркер концевой записи || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Представление программы || ключевые слова в токенах, остальное ASCII || несовместимо, см. [[Оттранслированное представление BASIC 02]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Совпадает только уровень файловой системы. Инструментарий Wang для разбора самих программ непригоден.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987.&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение. — Киев, 1988.&lt;br /&gt;
* [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization] — файловая система и хеш имени для сопоставления.&lt;br /&gt;
* Реконструкция по 42 образам дисков: 303 записи каталога, 94 файла программ.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4290</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4290"/>
		<updated>2026-08-26T08:04:11Z</updated>

		<summary type="html">&lt;p&gt;Panther: more info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
Искра-226 поддерживает работу с двумя типами файлов: ПФ — «Программные файлы» и ФД — «Файлы данных». Программные файлы всегда содержат программу на Бейсике, в текстовом или упакованном токенизированном виде. Файлы данных, соответственно, данные, доступные из программ пользователя.&lt;br /&gt;
&lt;br /&gt;
В соответствии с документацией, Искра-226 поддерживает прямой доступ программ к секторам диска, при этом к записанным таким образом дискам всё нижеизложенное может быть неприменимо, так как форматом хранения полностью управляет программа пользователя по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
Также, в наличии имеется несколько системных дисков, на которых содержатся различные версии интерпретатора Бейсика, с которых производится начальная загрузка компьютера. Эти диски имеют свой формат и здесь не рассматриваются.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. &lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. В исследованном наборе наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое), &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное) и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; (токенизированное и защищённое).&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; наблюдались на дисковых образах (&amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; — у файла &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;, защищённого и оттранслированного одновременно), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; взято из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на четырёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; || 448 || 800 || 0 || 1254 || &amp;lt;code&amp;gt;10 % EDITOR.  ВЕРСИЯ 4.1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Четырёхбайтовое поле перед программой ====&lt;br /&gt;
&lt;br /&gt;
У части файлов между таблицами и первой записью строки лежат &#039;&#039;&#039;четыре лишних байта&#039;&#039;&#039;, и формула указывает на четыре байта раньше настоящего начала программы. В исследованном наборе так устроены 19 файлов из 94 — целиком одно семейство программ. Первые два байта поля всегда &amp;lt;code&amp;gt;0A 19&amp;lt;/code&amp;gt;, вторые два — двоично-десятичное число, своё у каждого файла:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Поле !! Файл !! Поле&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;BAM&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0A 19 20 20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;BAM00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0A 19 90 90&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;BAM1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0A 19 20 91&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;BAM9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0A 19 20 99&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;BAM10&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0A 19 91 90&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;S_BAM01&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0A 19 90 91&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Признак защиты роли не играет: девять других файлов набора со значением байта 9, равным &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;, поля не имеют. Назначение поля не установлено; ни на запись строки, ни на запись таблицы 2 оно не раскладывается.&lt;br /&gt;
&lt;br /&gt;
Определять наличие поля следует проверкой самой записи: по вычисленному смещению (после пропуска нулей выравнивания) оба байта номера строки должны быть правильным двоично-десятичным числом, байт длины — не меньше единицы, а байт по адресу &amp;lt;code&amp;gt;p + 2 + len&amp;lt;/code&amp;gt; — равен &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если проверка не проходит, а по смещению +4 проходит, поле присутствует. На наборе это разделяет файлы без единой ошибки.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Полагаться на «разбор сломается — попробуем сдвиг» нельзя. У файла &amp;lt;code&amp;gt;BAM1&amp;lt;/code&amp;gt; мусорная запись по неверному смещению случайно оканчивалась байтом &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;: разбор продолжался дальше и терял только первую строку программы.}}&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, которым нужен дескриптор размера&#039;&#039;&#039; — массивы и символьные переменные с явно заданной длиной. Оператор объявления при этом не важен: в таблицу попадают как переменные из &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, так и из &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; (аналог &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; для переменных, общих для нескольких программ). Числовые скаляры и символьные переменные с длиной по умолчанию в таблице 1 не описываются.&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; записей 13 при 10 переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;; лишние три — &amp;lt;code&amp;gt;C(14)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G(14)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N0¤21&amp;lt;/code&amp;gt;, объявленные в &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Запись — 8 байт:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || тип: &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; — символьная, &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; — числовая или целая&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || для массивов — число элементов, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || размерный код, младший байт первым&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размерный код равен &#039;&#039;&#039;&amp;lt;code&amp;gt;2 × размер элемента&amp;lt;/code&amp;gt;&#039;&#039;&#039;, а его младший бит означает, что длина была задана явно. Для числовых переменных код 16 (размер элемента 8 байт), для целых 4 (2 байта), для символьных &amp;lt;code&amp;gt;2 × длина + 1&amp;lt;/code&amp;gt;: длина 8 → 17, 64 → 129, 128 → 257, 253 → 507.&lt;br /&gt;
&lt;br /&gt;
Символьная переменная, объявленная без указания длины, получает длину по умолчанию 16 и &#039;&#039;&#039;чётный&#039;&#039;&#039; код 32. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; так объявлены &amp;lt;code&amp;gt;B6¤(400)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;B7¤(10)&amp;lt;/code&amp;gt;, у обоих код 32, тогда как у всех переменных с явной длиной в том же файле код нечётный и точен. Поэтому нечётность кода нельзя использовать как признак символьного типа — для этого служат байты 2–3.&lt;br /&gt;
&lt;br /&gt;
===== Двумерные массивы =====&lt;br /&gt;
&lt;br /&gt;
У двумерного массива вторая размерность записывается в байты 2–3, на место признака типа, а первая остаётся в поле числа элементов. Размерности &#039;&#039;&#039;не перемножаются&#039;&#039;&#039;, поэтому оператор &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; восстанавливается точно.&lt;br /&gt;
&lt;br /&gt;
Правило проверено на десяти массивах в четырёх файлах, включая &amp;lt;code&amp;gt;A(5,6)&amp;lt;/code&amp;gt; из &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; с двумя разными малыми размерностями. В &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; пять массивов вида &amp;lt;code&amp;gt;(2,99)&amp;lt;/code&amp;gt; дают в байтах 2–3 значение 99, а в поле числа элементов 2; контрольный &amp;lt;code&amp;gt;R(2,2)&amp;lt;/code&amp;gt; с равными размерностями даёт 2 и 2. Размер выделяемой памяти считается по общей формуле с перемножением размерностей: у &amp;lt;code&amp;gt;P(2,99)&amp;lt;/code&amp;gt; разность адресов равна 1590 = 2 × 99 × 8 + 6, у &amp;lt;code&amp;gt;R(2,2)&amp;lt;/code&amp;gt; — 38 = 2 × 2 × 8 + 6.&lt;br /&gt;
&lt;br /&gt;
Пример записи &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; из &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 00 00  08 00  07 00  10 00&lt;br /&gt;
&lt;br /&gt;
Байты 2–3 равны 8 (вторая размерность), байты 4–5 равны 7 (первая), размерный код 16 — числовая. Опознание надёжно: соседние записи таблицы содержат 13 и 8 элементов, а в тексте &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; вокруг &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; стоят &amp;lt;code&amp;gt;A(13)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E(8)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Практическое правило: &#039;&#039;&#039;старший байт поля 2–3 равен &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; — массив одномерный&#039;&#039;&#039;, иначе поле 2–3 целиком занято второй размерностью. Значения &amp;lt;code&amp;gt;08 2D&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;08 00&amp;lt;/code&amp;gt; не могут быть размерностью, так как означали бы 2093 и 2048 элементов по второму измерению.&lt;br /&gt;
&lt;br /&gt;
Вопрос «как при двумерности кодируется тип переменной» снимается: тип хранится не в таблице 1, а во флаге записи таблиц 2 и 3 (см. ниже), поэтому байты 2–3 таблицы 1 свободны под размерность. Символьные двумерные массивы в наборе есть — пятнадцать записей, у которых флаг помечает символьный тип, а старший байт поля 2–3 равен &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Исключение — &#039;&#039;&#039;неявно объявленные массивы&#039;&#039;&#039;. У переменной, к которой обратились с индексом без предварительного &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, число элементов всегда равно 10 (размерность массива по умолчанию), а в байтах 2–3 стоят значения &amp;lt;code&amp;gt;01 27&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;07 59&amp;lt;/code&amp;gt;, размерностями не являющиеся: в исследованном наборе они встречаются девять и семь раз соответственно и только при десяти элементах, в неродственных программах. Их природа не установлена. Такие массивы следует выводить как одномерные &amp;lt;code&amp;gt;(10)&amp;lt;/code&amp;gt;. Настоящий двумерный массив &amp;lt;code&amp;gt;(10,10)&amp;lt;/code&amp;gt; в наборе тоже есть — в &amp;lt;code&amp;gt;STATIST&amp;lt;/code&amp;gt;, там байты 2–3 равны &amp;lt;code&amp;gt;00 0A&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
===== Порядок записей обратен порядку объявления =====&lt;br /&gt;
&lt;br /&gt;
Память под переменные выделяется &#039;&#039;&#039;сверху вниз&#039;&#039;&#039;, от верхней границы, а записи в таблице отсортированы по возрастанию адреса. Поэтому &#039;&#039;&#039;первая переменная в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; оказывается последней записью таблицы&#039;&#039;&#039;, и сопоставлять их нужно с конца.&lt;br /&gt;
&lt;br /&gt;
Проверено на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;: 7 операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявляют 50 переменных, L1 = 448 = 56 записей. При обратном сопоставлении разность адресов соседних записей совпадает с ожидаемым размером переменной &#039;&#039;&#039;у 44 из 50&#039;&#039;&#039; точно, а оставшиеся 6 расходятся ровно на 1 байт — это нечётные длины (&amp;lt;code&amp;gt;A¤1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;K¤253&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G¤19&amp;lt;/code&amp;gt;), округляемые вверх до чётной.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Адреса в таблице 1 могут быть нулевыми.&#039;&#039;&#039; В файле &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; все 11 записей имеют адрес &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;, поэтому любое правило, опирающееся на разность адресов соседних записей, там неприменимо. Разборщику следует проверять адреса на ненулевое значение перед использованием.&lt;br /&gt;
&lt;br /&gt;
Остальные поля при этом заполнены и корректны: обратный порядок относительно &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; сохраняется, размерный код точен для всех строковых переменных, у массива &amp;lt;code&amp;gt;K(9)&amp;lt;/code&amp;gt; число элементов равно 9.}}&lt;br /&gt;
&lt;br /&gt;
Размер выделяемой памяти:&lt;br /&gt;
&lt;br /&gt;
* скалярная символьная переменная — объявленная длина, округлённая вверх до чётной;&lt;br /&gt;
* массив — &amp;lt;code&amp;gt;N × размер элемента + 6&amp;lt;/code&amp;gt;, где 6 байт занимает дескриптор.&lt;br /&gt;
&lt;br /&gt;
Формула для массивов проверена на 20 массивах &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; без единого расхождения: &amp;lt;code&amp;gt;V¤(20)64&amp;lt;/code&amp;gt; → 1286, &amp;lt;code&amp;gt;S¤(48)64&amp;lt;/code&amp;gt; → 3078, &amp;lt;code&amp;gt;P%(300)&amp;lt;/code&amp;gt; → 606, &amp;lt;code&amp;gt;X(2)&amp;lt;/code&amp;gt; → 22.&lt;br /&gt;
&lt;br /&gt;
===== Таблица отражает состояние на момент сохранения =====&lt;br /&gt;
&lt;br /&gt;
Число записей может превышать число переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; записей 26 при 23 объявленных переменных, и три лишние стоят в области самых низких адресов, то есть выделены последними.&lt;br /&gt;
&lt;br /&gt;
Число элементов у лишних записей соответствует не тексту программы, а значению, которое переменная получила при выполнении: в &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; у всех трёх лишних записей это 300, тогда как в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявлено 200. Программа содержит оператор &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, переопределяющий размерности во время работы, поэтому таблица описывает состояние памяти на момент сохранения, а не исходный текст.&lt;br /&gt;
&lt;br /&gt;
Косвенное подтверждение: в токенах &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; файла &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; переменные &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;G¤&amp;lt;/code&amp;gt; получили индексы &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt;, тогда как все остальные — обычные значения подряд.&lt;br /&gt;
&lt;br /&gt;
Причина этого выяснена на файле &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt;, сохранённом в обоих представлениях. Выросший массив получает не только новый дескриптор в таблице 1, но и &#039;&#039;&#039;новый индекс переменной&#039;&#039;&#039;, причём интерпретатор правит операнд в самом операторе &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, оставляя код и &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; работать со старым индексом. Оператор&lt;br /&gt;
&lt;br /&gt;
 20 DIM X(100),G¤(100)5,Q(5,100),D(6),E(5),A(5,6)&lt;br /&gt;
&lt;br /&gt;
кодируется как&lt;br /&gt;
&lt;br /&gt;
 46 06 19 1A 1B 03 04 05&lt;br /&gt;
&lt;br /&gt;
— первые три переменные записаны индексами &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1A&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1B&amp;lt;/code&amp;gt;, тогда как &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; в строке 200 обращается к ним же как &amp;lt;code&amp;gt;E0 00&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E0 01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E0 02&amp;lt;/code&amp;gt;. В таблицах 2 и 3 бит 0 флага установлен и у &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1A&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1B&amp;lt;/code&amp;gt;, и у &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;: первым соответствуют дескрипторы с 300 элементами (размер после переопределения), вторым — исходные, со 100.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Из этого следует, что операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; в оттранслированном файле нельзя использовать как источник соответствия «индекс — дескриптор»: там могут стоять «теневые» индексы. Надёжный источник — бит 0 флага записей таблиц 2 и 3.}}&lt;br /&gt;
&lt;br /&gt;
Дополнительный дескриптор создаётся &#039;&#039;&#039;только тогда, когда массив вырастает за пределы исходного выделения&#039;&#039;&#039;. Если новый размер не превышает объявленного в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, память переиспользуется на месте и запись в таблице остаётся одна.&lt;br /&gt;
&lt;br /&gt;
Наиболее наглядно это видно в &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; переопределяет шесть массивов, а лишних записей три:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Массив !! Объявлено !! После переопределения !! Дескриптор&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X(100)&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G¤(100)5&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Q(5,100)&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D(6)&amp;lt;/code&amp;gt; || 6 || не больше 6 || нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E(5)&amp;lt;/code&amp;gt; || 5 || не больше 5 || нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;A(5,6)&amp;lt;/code&amp;gt; || 5, 6 || не больше 5 и 6 || нет&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Правило согласуется и с остальными файлами: в &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; из одиннадцати переопределяемых массивов выросли три, в &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; из четырёх — два, и столько же лишних записей в каждом случае.&lt;br /&gt;
&lt;br /&gt;
Если программа не выполнялась после загрузки, оператор &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; не отрабатывает и лишних записей нет вовсе: в &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; записей ровно шесть при шести переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; шесть записей таблицы 1 не соответствуют ни одному &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. По флагам таблицы 2 они принадлежат переменным с индексами &amp;lt;code&amp;gt;39&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;92&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;93&amp;lt;/code&amp;gt;, причём у всех шести число элементов равно 10 — размерности массива по умолчанию. Это &#039;&#039;&#039;неявно объявленные массивы&#039;&#039;&#039;: переменная, к которой обратились с индексом без предварительного &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, получает десять элементов и полноценный дескриптор. Три из шести — целые (&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;), размерный код 4, три — действительные, код 16.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Таблицы 2 и 3 образуют &#039;&#039;&#039;один непрерывный массив дескрипторов переменных&#039;&#039;&#039;. Формат записей в обеих одинаков, граница между ними определяется только счётчиками пролога; число записей — &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt;, поскольку длины в прологе даны в байтах, а запись занимает 4 байта, а не 8.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым; &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;, если память не выделена&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 1 || флаг типа&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 1 || назначение не установлено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Порядок записей =====&lt;br /&gt;
&lt;br /&gt;
Записи описывают &#039;&#039;&#039;все&#039;&#039;&#039; переменные программы, а не только скалярные, и идут в порядке &#039;&#039;&#039;убывания индекса переменной&#039;&#039;&#039;. Если обозначить&lt;br /&gt;
&lt;br /&gt;
 N = L2 / 4 + L3 / 4&lt;br /&gt;
&lt;br /&gt;
то запись, описывающая переменную с индексом &#039;&#039;i&#039;&#039;, находится на позиции &amp;lt;code&amp;gt;N − 1 − i&amp;lt;/code&amp;gt;, если считать позиции подряд: сначала записи таблицы 2, затем записи таблицы 3.&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;&amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; — это общее число переменных программы&#039;&#039;&#039;, то есть наибольший использованный индекс плюс единица. Таблица 3 приходится на самые младшие индексы — именно те, которые занимает оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;: он всегда выполняется первым и получает индексы с нуля.&lt;br /&gt;
&lt;br /&gt;
Правило проверено на всех файлах исследованного набора, разбор которых не срывается на бинарных полезных нагрузках операторов &amp;lt;code&amp;gt;ASMB&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;$GIO&amp;lt;/code&amp;gt;: для 28 файлов совпадение точное.&lt;br /&gt;
&lt;br /&gt;
Независимое подтверждение даёт второй набор из 43 файлов, добавленный позже: соотношение «число записей с установленным битом 0 флага равно &amp;lt;code&amp;gt;L1 / 8&amp;lt;/code&amp;gt;» (см. ниже) выполняется в нём &#039;&#039;&#039;для всех 43 файлов без исключения&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===== Флаг типа =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Бит !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 5 (&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;) || символьная переменная&lt;br /&gt;
|-&lt;br /&gt;
| 4 (&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;) || числовая переменная (действительная)&lt;br /&gt;
|-&lt;br /&gt;
| ни 5, ни 4 || &#039;&#039;&#039;целая переменная&#039;&#039;&#039; (суффикс &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 0 (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;) || у переменной есть дескриптор в таблице 1 — то есть это массив либо символьная переменная с явно заданной длиной&lt;br /&gt;
|-&lt;br /&gt;
| 7, 3 || назначение не установлено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Признак целого типа установлен на файле &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt;, единственном в наборе, где есть и целые переменные, и обе копии программы. Ровно три записи таблицы 2 имеют &amp;lt;code&amp;gt;флаг &amp;amp;amp; 0x30 = 0&amp;lt;/code&amp;gt; — те, что соответствуют индексам &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;33&amp;lt;/code&amp;gt;. В текстовом листинге ровно три целых переменных, и их индексы совпадают: &amp;lt;code&amp;gt;E%&amp;lt;/code&amp;gt; — строка 98 (&amp;lt;code&amp;gt;E%=0&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;36 04 23 D9 E8 00&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;E7%&amp;lt;/code&amp;gt; — строка 1010, &amp;lt;code&amp;gt;E3%&amp;lt;/code&amp;gt; — строка 5070. У всех троих адрес равен &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;: целым скалярам в общей области скаляров место не отводится.&lt;br /&gt;
&lt;br /&gt;
Признак символьного типа согласуется с прежним наблюдением: в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; у &amp;lt;code&amp;gt;N¤&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N1¤&amp;lt;/code&amp;gt; флаг &amp;lt;code&amp;gt;A8&amp;lt;/code&amp;gt;, а адреса этих переменных отстоят от соседних на 16 байт — длина символьной переменной по умолчанию.&lt;br /&gt;
&lt;br /&gt;
===== Связь с таблицей 1 =====&lt;br /&gt;
&lt;br /&gt;
Число записей с установленным битом 0 флага &#039;&#039;&#039;в точности равно &amp;lt;code&amp;gt;L1 / 8&amp;lt;/code&amp;gt;&#039;&#039;&#039; во всех 94 файлах набора. Более того, соответствие оказывается порядковым: &#039;&#039;k&#039;&#039;-я по счёту такая запись (в порядке файла) описывает ту же переменную, что и &#039;&#039;k&#039;&#039;-я запись таблицы 1.&lt;br /&gt;
&lt;br /&gt;
 k = 0&lt;br /&gt;
 для pos = 0 … N−1:&lt;br /&gt;
     если флаг[pos] и 1:&lt;br /&gt;
         дескриптор_переменной(N − 1 − pos) = запись таблицы 1 номер k&lt;br /&gt;
         k = k + 1&lt;br /&gt;
&lt;br /&gt;
Это даёт &#039;&#039;&#039;точное соответствие «индекс переменной → запись таблицы 1» без разбора операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Прежний способ — сопоставление по порядку объявления — ошибочен по двум причинам:&lt;br /&gt;
&lt;br /&gt;
* оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; объявляет и обычные скаляры, у которых записи в таблице 1 нет: в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; из тринадцати объявленных переменных дескриптор имеют только три (&amp;lt;code&amp;gt;C(14)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G(14)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N0¤21&amp;lt;/code&amp;gt;);&lt;br /&gt;
* после &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; в операнде &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; могут стоять «теневые» индексы (см. ниже).&lt;br /&gt;
&lt;br /&gt;
Три записи таблицы 3 в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; с низкими значениями поля 0–1 (&amp;lt;code&amp;gt;0014&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;000D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0005&amp;lt;/code&amp;gt;) — это как раз те три переменные &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;, которые описаны в таблице 1. У всех переменных с дескриптором таблицы 1 поле 0–1 содержит не адрес, а небольшое число, растущее примерно на восемь с каждой такой переменной (в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; — 5, 13, 20, 29, 38, 46, 54, 62, 70, 78, 85, 93, 101). Назначение этого поля не установлено.&lt;br /&gt;
&lt;br /&gt;
===== Практическое следствие =====&lt;br /&gt;
&lt;br /&gt;
Хотя имена переменных в оттранслированном файле не сохраняются, для &#039;&#039;&#039;каждой&#039;&#039;&#039; переменной восстанавливаются:&lt;br /&gt;
&lt;br /&gt;
* тип — действительная, целая (&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;) или символьная (&amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;);&lt;br /&gt;
* массив это или скаляр;&lt;br /&gt;
* размерности массива и длина элемента.&lt;br /&gt;
&lt;br /&gt;
Разборщику не нужны ни эвристики «массив или скаляр» по разностям адресов (в защищённых файлах адреса нулевые), ни разбор операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Индексы переменных и их имена ===&lt;br /&gt;
&lt;br /&gt;
Переменные адресуются в коде однобайтовым индексом. Индексы назначаются &#039;&#039;&#039;в порядке первого появления переменной в тексте программы&#039;&#039;&#039;, а не по алфавиту и не по типу.&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; делят единое пространство индексов: в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; занимает индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt;, а следующий за ним &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; продолжает с &amp;lt;code&amp;gt;0D&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Для переменных, объявленных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, это даёт прямое соответствие: операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют свои переменные подряд, в том же порядке, в каком они записаны в исходном тексте. В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; семь операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; занимают индексы &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;32&amp;lt;/code&amp;gt; непрерывно; индекс &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; достался переменной &amp;lt;code&amp;gt;R2%&amp;lt;/code&amp;gt;, встретившейся раньше — в строке 30, до первого &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;, где до &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; переменных не было, нумерация начинается с &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Имена переменных в оттранслированном файле не сохраняются.&#039;&#039;&#039; Таблицы содержат дескрипторы памяти — адрес, тип, размер, — но не имена.&lt;br /&gt;
&lt;br /&gt;
Проверка на &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;, где программа сохранена одновременно в текстовом и оттранслированном виде: сопоставление 866 общих строк дало однозначное имя для 146 индексов из 160, и ни одно поле таблиц с этими именами не коррелирует. В таблице 1 поле по смещению 4–5 совпадает у &amp;lt;code&amp;gt;Y¤4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Z¤253&amp;lt;/code&amp;gt; (72), у &amp;lt;code&amp;gt;D¤8&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Q5¤40&amp;lt;/code&amp;gt; (204); в таблице 2 последний байт записи совпадает у заведомо разных переменных (&amp;lt;code&amp;gt;D%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;I%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;J%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Это согласуется с назначением параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;: при выполнении имена не нужны, всё адресуется по индексу, а отказ от их хранения и даёт заявленную экономию места. Практическое следствие — &#039;&#039;&#039;читаемый листинг из оттранслированного файла восстановить нельзя&#039;&#039;&#039;. Восстанавливается структура программы, но переменные остаются безымянными, если не сохранилась текстовая версия того же исходника.&lt;br /&gt;
&lt;br /&gt;
Не хранится только само имя. Тип переменной — действительная, целая или символьная — и её размерности восстанавливаются полностью по таблицам 2, 3 и 1, поэтому в листинге можно выводить корректные суффиксы &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; и корректные размерности массивов.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
==== Выравнивание в конце сектора ====&lt;br /&gt;
&lt;br /&gt;
Если очередная запись не помещается в остаток сектора, остаток заполняется нулями, а запись начинается с первого байта следующего сектора. Такие нули стоят &#039;&#039;&#039;после&#039;&#039;&#039; разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; и в длину записи не входят.&lt;br /&gt;
&lt;br /&gt;
Точное правило формулируется через границы секторов, а не через длину заголовка. Поток рассматривается как последовательность 254-байтовых кусков — по одному на сектор, &#039;&#039;&#039;без обрезки хвостовых нулей&#039;&#039;&#039;. После разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;, стоящего по смещению &#039;&#039;q&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 b = (⌊q / 254⌋ + 1) × 254&lt;br /&gt;
 если b &amp;gt; q и все байты потока с q по b−1 нулевые, то q = b&lt;br /&gt;
&lt;br /&gt;
То есть переход к следующему сектору выполняется только тогда, когда весь остаток текущего куска нулевой.&lt;br /&gt;
&lt;br /&gt;
С этим правилом разбор всех 51 токенизированного файла исследованного набора проходит без единой рассинхронизации, а &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; даёт ровно 1422 записи строк — столько же, сколько строк в его текстовой версии. Эвристика «пропустить до трёх нулей после &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;» этого не обеспечивает: длина выравнивания доходит до шести байт.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Строка с номером 0 кодируется байтами &amp;lt;code&amp;gt;00 00 &amp;amp;lt;len&amp;amp;gt;&amp;lt;/code&amp;gt; — такая строка есть в файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;). Разборщик, безусловно пропускающий пару нулей перед номером строки, разрушает разбор подобных файлов. Нули следует пропускать только по правилу выше.}}&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || IF END THEN || выведено из данных; операнд — 2 байта BCD, номер строки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt; || RETURN CLEAR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt; || ON ERROR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;33&amp;lt;/code&amp;gt; || &#039;&#039;(не опознан; операнды — две ссылки на переменные)&#039;&#039; || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;37&amp;lt;/code&amp;gt; || &#039;&#039;(не опознан; операнд — один массив целиком)&#039;&#039; || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; || DEFFN&#039; с текстовым определением || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (краткая форма REM) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51&amp;lt;/code&amp;gt; || RESTORE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;63&amp;lt;/code&amp;gt; || &#039;&#039;(операция над символьными переменными, имя не установлено)&#039;&#039; || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;66&amp;lt;/code&amp;gt; || DATA LOAD BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;68&amp;lt;/code&amp;gt; || DATA SAVE BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6E&amp;lt;/code&amp;gt; || DATA SAVE BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; || DATA LOAD BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;71&amp;lt;/code&amp;gt; || DATA LOAD DA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;72&amp;lt;/code&amp;gt; || &#039;&#039;(не опознан; операнды &amp;lt;code&amp;gt;T#n,(…)…&amp;lt;/code&amp;gt;, встречается при загрузке сегмента)&#039;&#039; || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;76&amp;lt;/code&amp;gt; || DATA SAVE DC || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;77&amp;lt;/code&amp;gt; || DATA SAVE DC CLOSE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;78&amp;lt;/code&amp;gt; || DATA SAVE DC OPEN T || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7C&amp;lt;/code&amp;gt; || LIST DC || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt; || LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; || SAVE DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;82&amp;lt;/code&amp;gt; || SCRATCH DISK || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Пометка «подтверждено» означает сверку с текстовым листингом той же программы. Основная часть подтверждений получена на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; автоматическим сопоставлением 866 общих строк: в строках, где число операторов в обоих представлениях совпало, первый глагол каждого оператора сверялся с первым словом соответствующего оператора текста. Так подтверждены 34 значения, включая &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; = GOTO (147 совпадений), &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; = PRINT (212), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; = IF (266).&lt;br /&gt;
&lt;br /&gt;
Отдельно стоит краткая форма комментария &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt;): она встречается в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; 122 раза против 7 у полного &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt;), и её операнд записывается сырым текстом без префикса &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; — так же, как у &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Все три найдены: &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt; — токен &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; — отдельный токен &amp;lt;code&amp;gt;77&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; оказался не отдельным глаголом, а обычным &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;76&amp;lt;/code&amp;gt;) с единственным операндом &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; — ключевым словом &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Операнды дисковых операторов ===&lt;br /&gt;
&lt;br /&gt;
Первый байт операндов дискового оператора — &#039;&#039;&#039;код устройства или режима&#039;&#039;&#039;, а не ссылка на переменную:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Байт !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt; — первый дисковод&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; — второй дисковод&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; — обращение по номеру файла (&amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Правило проверено на &amp;lt;code&amp;gt;LIST DC F&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;7C 01 00&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST DC R&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;7C 01 01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD DC F/1C,&amp;quot;М2&amp;quot;&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;7D 08 00 DC DE 1C DE E3 02 ED 32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SCRATCH R&amp;quot;VIC&amp;quot;&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;81 05 01 E3 03 56 49 43&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SCRATCH T#D,F1¤&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;81 05 02 DB 22 DE 4C&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC OPEN T(700)A¤&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;78 07 02 EB E7 07 00 D0 09&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ключевые слова конца и начала файла кодируются токенами, у которых в позиции операции другое значение:&lt;br /&gt;
&lt;br /&gt;
 79 01 D6              DBACKSPACE BEG&lt;br /&gt;
 7A 01 D7              DSKIP END&lt;br /&gt;
 76 01 D7              DATA SAVE DC END&lt;br /&gt;
 79 04 DB E8 01 DE D6  DBACKSPACE #1,BEG&lt;br /&gt;
&lt;br /&gt;
Тот же &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt; в операторах &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt; печатается как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;D2&amp;lt;/code&amp;gt; (обычно &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt;) — как параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 76 07 D6 DB E8 02 DE E0 12                  DATA SAVE DC ¤#2,W()&lt;br /&gt;
 80 0E 01 D6 D2 EB E3 03 «VIC» D0 E3 03 «VIC»  SAVE DC R¤T(&amp;quot;VIC&amp;quot;)&amp;quot;VIC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; использует ключевые слова &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 82 0B 01 06 D9 E8 05 DE D7 D9 E7 10 00      SCRATCH DISK RLS=5,END=1000&lt;br /&gt;
 82 0B 00 06 D9 E8 05 DE D7 D9 E7 10 00      SCRATCH DISK FLS=5,END=1000&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — дисковод, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; — ключевое слово &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; — знак равенства, &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Списки переменных и списки выражений ===&lt;br /&gt;
&lt;br /&gt;
Список &#039;&#039;&#039;принимающих&#039;&#039;&#039; переменных пишется &#039;&#039;&#039;без разделителей&#039;&#039;&#039; — соседние ссылки на переменные и есть список:&lt;br /&gt;
&lt;br /&gt;
 41 02 0A 0B                                 INPUT T0,N0&lt;br /&gt;
 74 03 05 0C 0D                              DATA LOAD DC A1¤,E1,E2&lt;br /&gt;
 7B 08 02 DB 22 DE 4C 4D 4E 36 4F            LIMITS T#D,F1¤,O,A,Q,R&lt;br /&gt;
 46 04 00 01 02 03                           DIM X(300),Y(300),N(2),G¤(300)5&lt;br /&gt;
&lt;br /&gt;
Список &#039;&#039;&#039;выражений&#039;&#039;&#039; разделяется &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 76 06 D6 05 DE 0A DE 0B                     DATA SAVE DC ¤A1¤,T0,N0&lt;br /&gt;
 28 0B E7 04 70 DE 0F DE 10 DE 00 10 D0      PRINTUSING 470,I,D,X(D)&lt;br /&gt;
&lt;br /&gt;
Запятая между приглашением и переменной в операторе &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; не кодируется:&lt;br /&gt;
&lt;br /&gt;
 41 14 E3 11 «СТЕПЕНЬ  СВОБОДЫ » 00          INPUT &amp;quot;СТЕПЕНЬ  СВОБОДЫ &amp;quot;,K&lt;br /&gt;
&lt;br /&gt;
Номер строки-образа в &amp;lt;code&amp;gt;PRINTUSING&amp;lt;/code&amp;gt; — обычная константа &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, а диапазоны строк в &amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt; записываются &#039;&#039;&#039;сырым двухбайтовым BCD&#039;&#039;&#039; без токена:&lt;br /&gt;
&lt;br /&gt;
 80 … 90 00 DE 90 90                         SAVE DC …&amp;quot;*ASMBBAS&amp;quot; 9000,9090&lt;br /&gt;
 2A 0A DD 10 52 15 DE 52 15 DE 52 25         SAVE Z¤5215,5215,5225&lt;br /&gt;
&lt;br /&gt;
У оператора &amp;lt;code&amp;gt;BIN(&amp;lt;/code&amp;gt; закрывающая скобка и знак равенства не кодируются, как у &amp;lt;code&amp;gt;PACK(&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;UNPACK(&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 4B 02 22 3B                                 BIN(A¤)=J%&lt;br /&gt;
&lt;br /&gt;
=== Двухбайтовые глаголы ===&lt;br /&gt;
&lt;br /&gt;
Матричные и графические операторы кодируются двумя байтами: префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; и подкодом. Длина операторной части следует за подкодом на обычном месте:&lt;br /&gt;
&lt;br /&gt;
 06 &amp;amp;lt;подкод&amp;amp;gt; &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;операнды&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий однобайтовый глагол, на таких строках теряет синхронизацию.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Подкод !! Оператор !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; (?) || выведено из данных, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || MAT (присваивание) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || MAT REDIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || MAT READ || по контексту: &amp;lt;code&amp;gt;RESTORE 1,X:06 03 02 E0 24&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;04&amp;lt;/code&amp;gt; || MAT INPUT || по контексту: приглашение &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;, затем &amp;lt;code&amp;gt;06 04 02 E0 32&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; || MAT COPY || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; || MAT SEARCH || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; || MAT MOVE (?) || выведено из данных: &amp;lt;code&amp;gt;&amp;amp;lt;массив&amp;amp;gt;,&amp;amp;lt;выр.&amp;amp;gt;,&amp;amp;lt;выр.&amp;amp;gt; TO &amp;amp;lt;цель&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt; || MAT SORT || форма &amp;lt;code&amp;gt;&amp;amp;lt;массив&amp;amp;gt; TO &amp;amp;lt;массив&amp;amp;gt;,&amp;amp;lt;массив&amp;amp;gt;&amp;lt;/code&amp;gt; совпадает с &amp;lt;code&amp;gt;MAT SORT B¤()TOQ¤(),L¤()&amp;lt;/code&amp;gt; из текстового листинга&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0D&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤PACK&amp;lt;/code&amp;gt; (?) || &amp;lt;code&amp;gt;(&amp;amp;lt;A¤&amp;amp;gt;=&amp;amp;lt;формат¤&amp;amp;gt;) &amp;amp;lt;B¤&amp;amp;gt; FROM &amp;amp;lt;выр.&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0E&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤UNPACK&amp;lt;/code&amp;gt; (?) || то же с &amp;lt;code&amp;gt;TO&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤OPEN&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt; || DOT || сопоставление идиом двух программ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; || DDRAW || сопоставление идиом двух программ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || DRAW || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt; || NPLOT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; || STRETCH || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || LABEL || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤COPY&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤LET&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || WINDOW || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || LINPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || ASMB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || REPLACE || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;DOT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DDRAW&amp;lt;/code&amp;gt; опознаны совпадением идиомы в двух программах. Текстовый листинг &amp;lt;code&amp;gt;FAN01&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 1540 T3=1:FOR T=2TOT4:NPLOT B6¤(),(M6+M8*(T-T3)),P7+3:DDRAW B6¤(),0,-3:NEXT T&lt;br /&gt;
 1560 …:DOT B6¤(),R8,R9:DDRAW B6¤(),R6,R7:NEXT T&lt;br /&gt;
&lt;br /&gt;
Токены &amp;lt;code&amp;gt;M4&amp;lt;/code&amp;gt; в тех же конструкциях (рисование засечки на оси и отрезка по приращениям):&lt;br /&gt;
&lt;br /&gt;
 06 19 … : 06 14 09 E0 10 DE E8 00 DE E9 E8 03      NPLOT …:DDRAW A(),0,-3&lt;br /&gt;
 06 13 06 E0 10 DE 2A DE 2B : 06 14 06 E0 10 DE 2C DE 1C&lt;br /&gt;
&lt;br /&gt;
==== Подкод 00 ====&lt;br /&gt;
&lt;br /&gt;
Операнды состоят из групп, ограниченных &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; … &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; (то есть &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; … &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;) и разделённых &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;; внутри группы до трёх элементов, тоже через &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Третий элемент (перо) может отсутствовать, быть выражением, строковым литералом или одним из токенов &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 00 09 D7 E8 00 DE E8 10 DE E6 D4                    &amp;amp;lt;0,16,…&amp;amp;gt;&lt;br /&gt;
 06 00 … D7 E8 56 DE E7 02 55 DE D4 DE D7 DE 2E E9 E7 02 25 DE E6 D4 …&lt;br /&gt;
&lt;br /&gt;
Такой синтаксис соответствует оператору &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; системы Wang 2200, где аргументы записываются в угловых скобках. В указателе операторов книги&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; присутствует только как имя устройства вывода, поэтому имя оператора считается вероятным, но не доказанным.&lt;br /&gt;
&lt;br /&gt;
Примеры из &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 02 19 E0 00 EB 09 D0 DE E0 01 EB 08 D0 DE …   MAT REDIM X(…),Y(…),…&lt;br /&gt;
 06 01 04 E0 07 D9 EF                             MAT S0=ZER&lt;br /&gt;
 06 19 08 E0 12 DE 26 DE E7 02 50                 NPLOT B6¤(),C1,250&lt;br /&gt;
 06 1F 06 DC DE 14 DE E0 12                       ¤COPY /14,B6¤()&lt;br /&gt;
&lt;br /&gt;
В матричном присваивании &amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; в позиции операнда означает &amp;lt;code&amp;gt;ZER&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В операторе &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; размерности массива, в отличие от обращения к элементу, заключаются в &#039;&#039;&#039;явную&#039;&#039;&#039; открывающую скобку &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt;, а между собой разделяются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Длина элемента символьного массива указывается после закрывающей скобки:&lt;br /&gt;
&lt;br /&gt;
 E0 02 EB 0E DE 0D D0        Q(M1,N)   — двумерный&lt;br /&gt;
 E0 05 EB 0E DE 0F D0        A(M1,M2)&lt;br /&gt;
 E0 01 EB 0D D0 E8 05        G¤(N)5    — длина элемента после скобки&lt;br /&gt;
&lt;br /&gt;
==== Пропущенные параметры ====&lt;br /&gt;
&lt;br /&gt;
Пропущенный параметр не кодируется ничем: между разделителями &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; просто нет операнда. Оператор &amp;lt;code&amp;gt;LABEL B6¤(),,,B3¤(1)&amp;lt;/code&amp;gt; с тремя пропущенными параметрами даёт три подряд идущих &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 1E 09 E0 12 DE DE DE 11 E8 01 D0&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt; || FROM (в &amp;lt;code&amp;gt;PACK&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;UNPACK&amp;lt;/code&amp;gt;) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CB&amp;lt;/code&amp;gt; || ALL (в &amp;lt;code&amp;gt;RETURN CLEAR ALL&amp;lt;/code&amp;gt;) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; || GOSUB в составе &amp;lt;code&amp;gt;ON … GOSUB&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; || GOTO в составе &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D2&amp;lt;/code&amp;gt; || STEP; параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt; в позиции операции; &amp;lt;code&amp;gt;BEG&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; в позиции операции; &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; в позиции операции, ссылка на массив целиком в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E1&amp;lt;/code&amp;gt; || функция &amp;lt;code&amp;gt;STR&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал в кавычках: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt; || строковый литерал в апострофах, кодирование то же || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || число с фиксированной точкой, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || число с порядком, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, бинарный или унарный || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ED&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LEN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NUM(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt; — без закрывающей скобки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FN&amp;amp;lt;имя&amp;amp;gt;(&amp;lt;/code&amp;gt; — обращение к функции пользователя; имя следует сырым кодом символа || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt; — константа π || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ABS(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INT(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;RND(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SGN(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SQR(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LOG(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;EXP(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FC&amp;lt;/code&amp;gt; || математические функции, имена не установлены || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ARCTAN(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Два вида строковых литералов ===&lt;br /&gt;
&lt;br /&gt;
Строковые константы кодируются двумя разными токенами, и разницу между ними книга&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; объясняет прямым текстом: строки в кавычках система распознаёт и выводит как строки из &#039;&#039;&#039;прописных&#039;&#039;&#039; букв, а строки в апострофах — как строки из &#039;&#039;&#039;строчных&#039;&#039;&#039;. Так на машине, у которой на клавиатуре есть только прописные буквы, задаются строчные символьные константы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Форма записи !! Регистр&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;quot;…&amp;quot;&amp;lt;/code&amp;gt; || прописные&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&#039;…&#039;&amp;lt;/code&amp;gt; || строчные&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Кодирование одинаковое: &amp;lt;code&amp;gt;&amp;amp;lt;токен&amp;amp;gt; &amp;amp;lt;длина: 1 байт&amp;amp;gt; &amp;amp;lt;длина байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наблюдения это подтверждают: из 9937 литералов &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; в наборе ни один не содержит строчной кириллицы (&amp;lt;code&amp;gt;C0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt;), а из 28 литералов &amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt; строчную содержат пять — остальные состоят из латиницы и знаков, где регистр неразличим. Правило книги «внутри строки не должно быть кавычек или апострофов» тоже видно: единственный литерал набора, содержащий кавычки, записан апострофами.&lt;br /&gt;
&lt;br /&gt;
 E4 3D 35 2D DA C1 D0 CF CC CE C5 CE C9 C5 …&lt;br /&gt;
 PRINT &#039;5-заполнение полей &amp;quot;номер страницы&amp;quot; и &amp;quot;обозначение документа&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
Разборщик, не знающий токена &amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt;, теряет синхронизацию до конца оператора.&lt;br /&gt;
&lt;br /&gt;
=== Математические функции ===&lt;br /&gt;
&lt;br /&gt;
Книга&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; (разд. 4.7) перечисляет пятнадцать функций: &amp;lt;code&amp;gt;SIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCSIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCCOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCTAN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RND&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ABS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SGN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOG&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EXP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SQR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ROUND&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt;. Все они, кроме пяти тригонометрических, размещены по токенам:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;STAT04&amp;lt;/code&amp;gt; выражение &amp;lt;code&amp;gt;SQR(2*#PI)&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;F6 E8 02 DF F1 D0&amp;lt;/code&amp;gt;; сверено с текстовой копией той же программы.&lt;br /&gt;
* &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;RND(&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;UDAW&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E8 50 DF F4 E8 01 D0 EA E8 15&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;50*RND(1)+15&amp;lt;/code&amp;gt;, а в соседней строке &amp;lt;code&amp;gt;10*RND(1)&amp;amp;lt;9.68&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SGN(&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; строка 6717: &amp;lt;code&amp;gt;4E D9 F5 65 E9 04 34 D0 D0&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;B%=SGN(B-P%(I))&amp;lt;/code&amp;gt;; сверено с текстовой копией.&lt;br /&gt;
* &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt; в позиции операнда, см. ниже.&lt;br /&gt;
* &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; — вероятно &amp;lt;code&amp;gt;ARCTAN(&amp;lt;/code&amp;gt;: в &amp;lt;code&amp;gt;M3&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;P3&amp;lt;/code&amp;gt; её единственный аргумент всегда отношение (&amp;lt;code&amp;gt;FD 25 DC 26 D0&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
На пять оставшихся имён (&amp;lt;code&amp;gt;SIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCSIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCCOS&amp;lt;/code&amp;gt;) приходится всего четыре свободных токена — &amp;lt;code&amp;gt;F9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FC&amp;lt;/code&amp;gt;; программ, сохранённых одновременно в обоих представлениях и использующих тригонометрию, в исследованном наборе нет, поэтому распределение имён по токенам не установлено.&lt;br /&gt;
&lt;br /&gt;
=== Функции пользователя ===&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;DEFFN &amp;amp;lt;имя&amp;amp;gt;(&amp;amp;lt;формальная переменная&amp;amp;gt;) = &amp;amp;lt;выражение&amp;amp;gt;&amp;lt;/code&amp;gt; (глагол &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt;) определяет функцию, обращение к ней записывается &amp;lt;code&amp;gt;FN&amp;amp;lt;имя&amp;amp;gt;(&amp;amp;lt;выражение&amp;amp;gt;)&amp;lt;/code&amp;gt; и кодируется токеном &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 5A &amp;amp;lt;имя&amp;amp;gt; &amp;amp;lt;lo&amp;amp;gt; &amp;amp;lt;hi&amp;amp;gt; &amp;amp;lt;формальная переменная&amp;amp;gt; &amp;amp;lt;выражение&amp;amp;gt;&lt;br /&gt;
 F0 &amp;amp;lt;имя&amp;amp;gt; &amp;amp;lt;выражение&amp;amp;gt; D0&lt;br /&gt;
&lt;br /&gt;
Имя функции — латинская буква либо цифра, и это не индекс переменной: пространства имён разные, одна и та же величина может быть и переменной, и именем функции. Знака равенства в потоке нет: тело следует сразу за байтом формальной переменной. Два байта между именем и формальной переменной — рабочее поле, которое машина заполняет при исполнении; у последнего определения в программе там нули.&lt;br /&gt;
&lt;br /&gt;
Разбор подтверждается тем, что в каждом файле байты после &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt; — ровно те имена, которые этот файл определяет оператором &amp;lt;code&amp;gt;DEFFN&amp;lt;/code&amp;gt;, и никакие другие. Пример: &amp;lt;code&amp;gt;5A 48 00 00 2A EB 2A EA F2 2A D0 D0 DC E8 02&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;DEFFN H(X)=(X+ABS(X))/2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Двузначность токенов старшей половины ===&lt;br /&gt;
&lt;br /&gt;
Часть токенов диапазона &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; читается по-разному в зависимости от того, ожидается ли на их месте знак операции или очередной операнд. Интерпретатор различает их по состоянию разбора, отдельного признака в файле нет.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! В позиции операции !! В позиции операнда&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D2&amp;lt;/code&amp;gt; || STEP || параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; оператора &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;BEG&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; после &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; || ссылка на массив целиком&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; бинарный || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; унарный&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Двузначность &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; подтверждена тремя независимыми строками с текстовой сверкой:&lt;br /&gt;
&lt;br /&gt;
 2F D9 D8 EF 11 DE DB DC 17 DE E8 01 D0     Y=ROUND(VAL(Y2¤,2)/K7,1)&lt;br /&gt;
 D8 E5 14 21 17 DF 64 E8 07 D0 DE E8 00 D0  ROUND(2.117*P(7),0)&lt;br /&gt;
 B1 D9 D8 B1 DC 9A DE E8 00 D0              Q5=ROUND(Q5/P4,0)&lt;br /&gt;
&lt;br /&gt;
В операторе &amp;lt;code&amp;gt;MAT SEARCH&amp;lt;/code&amp;gt; знак сравнения стоит &#039;&#039;&#039;в позиции операнда&#039;&#039;&#039; — сразу после запятой, отделяющей искомое значение:&lt;br /&gt;
&lt;br /&gt;
 06 0A 08 E0 20 DE D4 22 D1 E0 1E           MAT SEARCH L4¤(),&amp;amp;gt;A¤TON4¤()&lt;br /&gt;
 06 0A 0F E1 0D E8 01 DE 45 D0 DE D9 E3 01 20 D1 E0 20   MAT SEARCH STR(Q¤,1,M%),=&amp;quot; &amp;quot;TOL4¤()&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Ссылками на переменные являются значения &#039;&#039;&#039;&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt;&#039;&#039;&#039;, а не &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;BF&amp;lt;/code&amp;gt;: первый токен — &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;). Индексы &amp;lt;code&amp;gt;C0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt; реально встречаются в крупных программах (в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; 200 переменных), например &amp;lt;code&amp;gt;C1 D9 9C&amp;lt;/code&amp;gt; — присваивание переменной с индексом &amp;lt;code&amp;gt;C1&amp;lt;/code&amp;gt;. Разборщик с границей &amp;lt;code&amp;gt;C0&amp;lt;/code&amp;gt; портит листинг таких программ.}}&lt;br /&gt;
&lt;br /&gt;
Ссылка на массив целиком записывается как &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; и порядковый номер переменной в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;74 02 E0 09&amp;lt;/code&amp;gt; соответствует &amp;lt;code&amp;gt;DATA LOAD DC G¤()&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;E0 09 D1 E0 00&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;G¤()TOX()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Каждое прочтение подтверждено не менее чем двумя независимыми строками &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;TAB(17)&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;DF E8 17 D0&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;.5*LOG(&amp;lt;/code&amp;gt; — как &amp;lt;code&amp;gt;E5 01 50 DF F7&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K(1)&amp;amp;lt;&amp;amp;gt;1&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;PRINT AT(9,10)&amp;lt;/code&amp;gt; оба дают &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K0*(-1)&amp;lt;/code&amp;gt; даёт &amp;lt;code&amp;gt;DF EB E9 E8 01 D0&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; стоит в позиции операнда.&lt;br /&gt;
&lt;br /&gt;
Разборщик с одним фиксированным значением на токен на таких строках даёт неверный листинг, поэтому таблицу операндов нужно применять с учётом позиции.&lt;br /&gt;
&lt;br /&gt;
=== Оператор SELECT ===&lt;br /&gt;
&lt;br /&gt;
Первый байт операндов — код группы устройств, записи разделяются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Ширина строки, если она задана, записывается после &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; как &#039;&#039;&#039;двоичное 16-битное число, старший байт первым&#039;&#039;&#039; (не BCD).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Код !! Группа !! Пример&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || файл &amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt;: номер, адрес и, необязательно, дисковод || &amp;lt;code&amp;gt;00 01 18&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#118&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;00 01 18 00&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#118F&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || без параметров; вероятно режим тригонометрии (&amp;lt;code&amp;gt;SELECT D&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;) || &amp;lt;code&amp;gt;54 01 01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; — пауза после каждой выводимой строки || &amp;lt;code&amp;gt;05 01&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT P1&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT P&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; || устройство, вероятно &amp;lt;code&amp;gt;LIST&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 0C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;07 0C EB 00 82&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT PRINT0C(130)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; || вероятно &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;08 10 DE …&amp;lt;/code&amp;gt; (адрес 10 — блок отображения графической информации)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;DISK&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0A 18 01&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT DISK18R&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; || устройство, вероятно &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0C 05 EB 00 50&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Опознание кодов &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; косвенное. В книге&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; перечислены группы &amp;lt;code&amp;gt;CI&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAPE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DISK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;; строка 300 файла &amp;lt;code&amp;gt;GC121&amp;lt;/code&amp;gt; выполняет &amp;lt;code&amp;gt;0C 05(80), 07 05(80), 06 05&amp;lt;/code&amp;gt; — типичный возврат &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;LIST&amp;lt;/code&amp;gt; на экран.&lt;br /&gt;
&lt;br /&gt;
В записях группы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; дисковод указывается не всегда: &amp;lt;code&amp;gt;SELECT #118&amp;lt;/code&amp;gt; даёт трёхбайтовую запись, &amp;lt;code&amp;gt;SELECT #118F&amp;lt;/code&amp;gt; — четырёхбайтовую. Разборщик, всегда читающий четыре байта, съедает разделитель следующей записи.&lt;br /&gt;
&lt;br /&gt;
=== Числовые константы ===&lt;br /&gt;
&lt;br /&gt;
Целые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999).&lt;br /&gt;
&lt;br /&gt;
Для дробных чисел служат токены &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;. За токеном следует байт-описатель, затем цифры числа в BCD по две на байт; если цифр нечётное число, последняя тетрада заполняется нулём. В описателе &#039;&#039;&#039;старшая тетрада — количество цифр до запятой, младшая — общее количество цифр&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Запись !! Байты !! Описатель !! Цифры&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 01 50&amp;lt;/code&amp;gt; || 0 / 1 || 5&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.08&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 02 08&amp;lt;/code&amp;gt; || 0 / 2 || 08&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 12 25&amp;lt;/code&amp;gt; || 1 / 2 || 25&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.196854&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 19 68 54&amp;lt;/code&amp;gt; || 0 / 6 || 196854&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.000344&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 00 03 44&amp;lt;/code&amp;gt; || 0 / 6 || 000344&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; устроен так же, но после цифр мантиссы идёт дополнительный байт порядка: &amp;lt;code&amp;gt;1E6&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;E6 11 10 06&amp;lt;/code&amp;gt; — одна цифра мантиссы, одна цифра до запятой, порядок 6.&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; служит и для &#039;&#039;&#039;целых чисел больше 9999&#039;&#039;&#039; — всего, что не помещается в &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;. Дробной части при этом нет, обе тетрады описателя равны:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Запись !! Байты !! Описатель !! Цифры&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51840&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 55 51 84 00&amp;lt;/code&amp;gt; || 5 / 5 || 51840&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;248830&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 66 24 88 30&amp;lt;/code&amp;gt; || 6 / 6 || 248830&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2488320&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 77 24 88 32 00&amp;lt;/code&amp;gt; || 7 / 7 || 2488320&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.718281828&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 1A 27 18 28 18 28&amp;lt;/code&amp;gt; || 1 / 10 || 2718281828&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Длина хвоста токена — &amp;lt;code&amp;gt;1 + ⌈&#039;&#039;младшая тетрада&#039;&#039; / 2⌉&amp;lt;/code&amp;gt; байт для &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; и на один байт больше для &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;. Разборщик, не потребляющий эти байты, теряет синхронизацию до конца оператора; в исследованном наборе &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; встречается в 407 операторах, &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; — в 210.&lt;br /&gt;
&lt;br /&gt;
Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD. То же относится к первому байту операндов оператора &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Цепочка операторов DATA ===&lt;br /&gt;
&lt;br /&gt;
Два последних байта операндов каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; — &#039;&#039;&#039;указатель на следующий оператор &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt;, младший байт первым&#039;&#039;&#039;. У последнего оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; в программе он равен &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt;. По этой цепочке работают операторы &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Значения указателей&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 03C0, 03E7, 040E, 0435, 045C, …, 0594, 0000&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;M0&amp;lt;/code&amp;gt; || 0443, 046A, 0491, 04B8, …, 0617, 0000&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt; || 0A97, 0ABE, 0AE5, 0B0C, …, 0C6B, 0000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Шаг постоянен, когда постоянна длина операторов, но значения — адреса в памяти интерпретатора, а не смещения в потоке файла, поэтому пересчёт по потоку сходится не всегда.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Эти два байта нельзя разбирать как токены. Именно они выглядели как «неопознанные токены» в конце строк &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;C0 14&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FA 0E&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CF 0B&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E4 2C&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;F9 2C&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
Само тело оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; — список значений &#039;&#039;&#039;без разделителей&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 29 1E E8 31 E7 03 34 E8 00 E8 28 E7 03 06 E8 31 … C9 04&lt;br /&gt;
       31    334      0     28    306      31&lt;br /&gt;
&lt;br /&gt;
Поэтому внутри &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; токены &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; всегда читаются как константы и никогда как &amp;lt;code&amp;gt;OR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt;, хотя и стоят в позиции операции. То же относится к оператору &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, где длина элемента идёт сразу за закрывающей скобкой:&lt;br /&gt;
&lt;br /&gt;
 06 02 0A E0 04 EB E7 01 26 D0 E7 01 28        MAT REDIM A¤(126)128&lt;br /&gt;
&lt;br /&gt;
=== Подпрограммы с параметрами ===&lt;br /&gt;
&lt;br /&gt;
Аргументы &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; следуют сразу за байтом метки и разделяются токеном &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;; скобки не кодируются. Вызов &amp;lt;code&amp;gt;GOSUB &#039; 5(1,1,N-2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 23 0B 05 E8 01 DE E8 01 DE 0D E9 E8 02&lt;br /&gt;
&lt;br /&gt;
Объявление &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; содержит метку, четыре байта адреса входа и индексы формальных параметров. Формальные параметры, в отличие от фактических, идут &#039;&#039;&#039;подряд, без разделителей&#039;&#039;&#039;. Объявление &amp;lt;code&amp;gt;DEFFN &#039; 5(N1,D1,D2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 27 08 05 00 00 00 00 12 20 21&lt;br /&gt;
&lt;br /&gt;
Четыре байта после метки заполняются интерпретатором при первом обращении к подпрограмме, поэтому нулевыми они бывают только там, где подпрограмму ни разу не звали. В приведённом примере из &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; они нулевые, а в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; — осмысленные адреса:&lt;br /&gt;
&lt;br /&gt;
 27 08 64 68 02 11 14 4F 50 51             EDITOR 400,  DEFFN &#039; 100(L1,L4,L3)&lt;br /&gt;
 27 06 4D 00 00 00 00 3D                   EDITOR 7740, DEFFN &#039; 77(D)&lt;br /&gt;
&lt;br /&gt;
При разборе эти четыре байта следует пропускать, не пытаясь читать как токены.&lt;br /&gt;
&lt;br /&gt;
Тот же вид имеет и &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; — определение клавиши специальных функций, но за адресом у него стоит ровно один литерал: в кавычках (&amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt;), в апострофах (&amp;lt;code&amp;gt;E4&amp;lt;/code&amp;gt;) или шестнадцатеричный (&amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt;). Последний случай встречается в &amp;lt;code&amp;gt;SCOPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 3A 08 1F 00 00 A4 03 E2 01 0D             DEFFN &#039; 31 HEX(0D)&lt;br /&gt;
&lt;br /&gt;
Подпрограммой такая метка не является: &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; задаёт текст, подставляемый при нажатии клавиши, и &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; на неё не переходит.&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; кодируется как индекс переменной, токен &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; и номера строк по два байта BCD подряд без разделителей.&lt;br /&gt;
&lt;br /&gt;
=== Неявные функции и уровни скобок ===&lt;br /&gt;
&lt;br /&gt;
Функции &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LEN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NUM(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt; закрывающей скобки в потоке не имеют: они заканчиваются на первом же знаке операции. Важно, что «своего» уровня — закрывающая скобка &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;, принадлежащая вложенной явной скобке, такую функцию не закрывает.&lt;br /&gt;
&lt;br /&gt;
 EDITOR, строка 265:&lt;br /&gt;
 EC  E1  E0 2A  E8 01  D0  D7  DE 20  D5  E8 00  D3 02 70&lt;br /&gt;
 POS(STR( V¤()  , 1    )   &amp;amp;lt;   20     )   &amp;amp;lt;&amp;amp;gt;  0   THEN 270&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; закрывает только &amp;lt;code&amp;gt;STR(&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt; остаётся открытой и заканчивается на &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;. Разборщик, считающий неявные скобки одним счётчиком, выдаст &amp;lt;code&amp;gt;POS(STR(V¤(),1))&amp;amp;lt;20&amp;amp;lt;&amp;amp;gt;0&amp;lt;/code&amp;gt; — с потерей смысла. Правильная модель — стек: на каждую явную скобку (включая список индексов массива) заводится уровень, неявные функции считаются внутри текущего уровня, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; закрывает сначала неявные функции своего уровня, затем сам уровень.&lt;br /&gt;
&lt;br /&gt;
=== Что не кодируется и восстанавливается по форме оператора ===&lt;br /&gt;
&lt;br /&gt;
Часть знаков препинания в потоке отсутствует: их положение определяется синтаксисом конкретного оператора, а не токенами.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Оператор !! В потоке !! В листинге&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INIT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;64 04 E3 01 2D 15&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INIT (&amp;quot;-&amp;quot;)U¤&amp;lt;/code&amp;gt; — значение в скобках, запятой нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;47 0F 48 D1 E1 … D0 E3 02 «##»&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;CONVERT P% TO STR(…),(##)&amp;lt;/code&amp;gt; — образ в скобках&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;¤GIO&amp;lt;/code&amp;gt; с адресом || &amp;lt;code&amp;gt;40 0D DC DE 34 DE E2 06 … 22&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤GIO /34,(HEX(…),A¤)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;¤GIO&amp;lt;/code&amp;gt; с апострофом || &amp;lt;code&amp;gt;40 … D5 E2 … 07 …&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤GIO &#039;HEX(…),D¤(2)&amp;lt;/code&amp;gt; — здесь скобок нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VERIFY&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;83 … 02 DB 39 E8 01 D0 DE 16 … 17 …&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;VERIFY T#D%(1),(X(1),Y(1))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 0C 06 0D DE 12 D0 DE 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤TRAN(Q¤,L0¤)R&amp;lt;/code&amp;gt; — запятая после &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; не печатается&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;LABEL&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 1E 0A E0 1F E8 03 DE DE DE E3 01 51&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LABEL B¤()3,,,&amp;quot;Q&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MAT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 01 04 E0 54 D9 EF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;MAT C%=ZER&amp;lt;/code&amp;gt; — имя массива без &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;51 05 E8 01 DE 48 50&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;RESTORE 1,4850&amp;lt;/code&amp;gt; — номер строки сырым BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2A 0A DD 10 52 15 DE 52 15 DE 52 25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SAVE Z¤5215,5215,5225&amp;lt;/code&amp;gt; — диапазон строк сырым BCD&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LINPUT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 24 2C E3 28 … E9 32&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LINPUT &amp;quot;…&amp;quot;,-L¤&amp;lt;/code&amp;gt; — запятая перед унарным минусом неявная&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Ссылка на массив целиком (&amp;lt;code&amp;gt;E0 &amp;amp;lt;индекс&amp;amp;gt;&amp;lt;/code&amp;gt;) — &#039;&#039;&#039;законченное значение&#039;&#039;&#039;: после неё разбор ожидает операцию или следующий элемент списка, а не индекс. В операторах, операнды которых представляют собой список значений (&amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LINPUT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INIT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;¤GIO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA LOAD&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIMITS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MAT READ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MAT INPUT&amp;lt;/code&amp;gt;), возведения в степень быть не может, поэтому &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; там всегда ссылка на массив. Иначе строка &amp;lt;code&amp;gt;DATA LOAD DA T#D%(D),(X(D))D¤,N¤(),T¤(),L¤(),B(D)&amp;lt;/code&amp;gt; читается как &amp;lt;code&amp;gt;…D¤^N¤()^T¤()…&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
=== Операторы, у которых закрывающая скобка не кодируется ===&lt;br /&gt;
&lt;br /&gt;
У глаголов, имя которых оканчивается на &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;, закрывающей скобки в потоке нет:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Глагол !! Форма !! Где находится закрывающая скобка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; AND(, &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; OR(, &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; XOR( || &amp;lt;code&amp;gt;AND(A¤,B¤)&amp;lt;/code&amp;gt; || в конце операторной части&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; PACK(, &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; UNPACK(, &amp;lt;code&amp;gt;06 0C&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;PACK(&amp;amp;lt;формат&amp;amp;gt;)…&amp;lt;/code&amp;gt; || сразу за литералом формата&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; BIN( || &amp;lt;code&amp;gt;BIN(&amp;amp;lt;приёмник&amp;amp;gt;[,2])=&amp;amp;lt;выражение&amp;amp;gt;&amp;lt;/code&amp;gt; || после приёмника, вместе со знаком &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 4B 02 22 3B                                   BIN(A¤)=J%&lt;br /&gt;
 4B … E1 23 36 D0 E8 13 DE E8 02 D0 DE DB EF … BIN(STR(A¤(I),13,2),2)=VAL(…)&lt;br /&gt;
&lt;br /&gt;
Пара &amp;lt;code&amp;gt;DE DB&amp;lt;/code&amp;gt; здесь означает «,2» — так же, как во втором аргументе функции &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt;. Смысл этого аргумента даёт руководство&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;: &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt; «преобразует двоичное значение содержимого первого байта или первых двух байтов» символьной переменной, то есть аргумент задаёт число байт, и грамматика допускает единственное значение 2. Отсюда и отдельный токен вместо константы: &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; в этой позиции и означает двойку, операндов у него нет. Порядок байт — старший первым, по приведённому в руководстве тождеству &amp;lt;code&amp;gt;VAL(X¤,2) = VAL(X¤)*256 + VAL(STR(X¤,2))&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Проверить наличие четырёхбайтового поля перед программой: если по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt; корректной записи строки нет, а по смещению на четыре больше есть — сдвинуть начало.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, беря с каждого ровно 254 байта &#039;&#039;&#039;без обрезки хвостовых нулей&#039;&#039;&#039;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Построить таблицу переменных: &amp;lt;code&amp;gt;N = L2/4 + L3/4&amp;lt;/code&amp;gt;; для каждой позиции &#039;&#039;pos&#039;&#039; индекс равен &amp;lt;code&amp;gt;N − 1 − pos&amp;lt;/code&amp;gt;, тип берётся из флага; записи с установленным битом 0 флага по порядку сопоставляются записям таблицы 1.&lt;br /&gt;
# Для каждой записи строки: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# После &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;: если весь остаток текущего 254-байтового куска нулевой, перейти к началу следующего куска.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;, учитывая двухбайтовые глаголы с префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Перед разбором операндов учесть особые формы: у &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; два последних байта — указатель цепочки, у дисковых операторов первый байт — код &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;, у &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; первый байт — двоичная метка, у &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; — собственный формат.&lt;br /&gt;
&lt;br /&gt;
Обработку файла следует прекращать на &#039;&#039;&#039;первом&#039;&#039;&#039; встреченном секторе с маркером &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, а не доходить до конца выделенного диапазона: за control record могут лежать остатки предыдущей, более длинной версии файла.&lt;br /&gt;
&lt;br /&gt;
Число записей в таблицах 2 и 3 равно &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt; — запись в них вдвое короче, чем в таблице 1.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге. Дополнительная проверка — совпадение числа записей таблиц 2 и 3 с установленным битом 0 флага и числа записей таблицы 1 (&amp;lt;code&amp;gt;L1 / 8&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x1E–0x83, операнды 0xCA–0xFE, индексы переменных 0x00–0xC9&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу, имена не хранятся&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x31–0x32, 0x38–0x39, 0x3B–0x3E, 0x49, 0x4F, 0x5B, 0x60, 0x65, 0x67, 0x69–0x6C, 0x73, 0x7F не занята в известной таблице.&lt;br /&gt;
# Имена операторов у глаголов &amp;lt;code&amp;gt;33&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;37&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;63&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;72&amp;lt;/code&amp;gt;, у подкодов &amp;lt;code&amp;gt;06 09&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06 0D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06 0E&amp;lt;/code&amp;gt;, а также у &amp;lt;code&amp;gt;06 00&amp;lt;/code&amp;gt; (вероятно &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Распределение имён &amp;lt;code&amp;gt;SIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCSIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCCOS&amp;lt;/code&amp;gt; по свободным токенам &amp;lt;code&amp;gt;F9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FC&amp;lt;/code&amp;gt;: программ с тригонометрией, сохранённых сразу в обоих представлениях, в наборе нет.&lt;br /&gt;
# Назначение четырёхбайтового поля &amp;lt;code&amp;gt;0A 19 &amp;amp;lt;BCD&amp;amp;gt;&amp;lt;/code&amp;gt; перед программой.&lt;br /&gt;
# Смысл поля по смещению 4–5 записи таблицы 1 у скалярных символьных переменных: у массивов там число элементов, у скаляров значения образуют ряд с шагом около 6 в порядке объявления независимо от длин, что указывает скорее на указатель, чем на характеристику самой переменной.&lt;br /&gt;
# Смысл байта 3 записей таблиц 2 и 3, а также битов 7 и 3 флага.&lt;br /&gt;
# Смысл поля 0–1 записей таблиц 2 и 3 у переменных, имеющих дескриптор в таблице 1: это не адрес, а небольшое число, растущее примерно на восемь.&lt;br /&gt;
# Однобайтовый операнд у &amp;lt;code&amp;gt;AND(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OR(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XOR(&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;43 03 15 DE F0&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;AND(A¤,F0)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;61 06 00 E8 01 D0 DE FF&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;OR(A¤(1),FF)&amp;lt;/code&amp;gt;. Похоже на шестнадцатеричную маску без &amp;lt;code&amp;gt;HEX()&amp;lt;/code&amp;gt;, но правило, по которому она отличается от ссылки на переменную, неизвестно.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов, встречающихся в указателе книги, но не найденных в наборе: &amp;lt;code&amp;gt;DATA SAVE DA END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MOVE END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COM CLEAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CLEAR N/P/V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST *&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST %&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST ¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 14.2, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные), &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (сохранён в обоих представлениях — 182 сектора, 1422 строки; основной материал для проверки структуры таблиц и таблицы токенов), &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; (защищённый и оттранслированный, с расчётами с плавающей точкой; материал для разбора формата констант и двузначности токенов), &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; (защищённый и оттранслированный; единственный образец с двумерным массивом), &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; (защищённый и оттранслированный, сокращённая версия той же программы; материал для разбора двухбайтовых глаголов), &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; (сохранён в обоих представлениях; единственный образец с оператором &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и непустой таблицей 3, а также с шестью двумерными массивами), &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; (защищённые и оттранслированные; материал для разбора условий появления дополнительных дескрипторов при &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; — единственный оттранслированный файл с заполненными адресами в таблице 1).&lt;br /&gt;
&lt;br /&gt;
Дамп &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; снят с удалённого файла, поэтому его целостность не гарантирована; выводы по нему опираются только на таблицу 1 и операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, взаимно согласованные по всем 23 объявленным переменным.&lt;br /&gt;
&lt;br /&gt;
Расшифрованный листинг &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; получен ранней версией инструментария и содержит дефект: в нём полностью отсутствует символ &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; (ноль вхождений при сотне вхождений &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;), из-за чего строки вида &amp;lt;code&amp;gt;IF N¤&amp;quot;????&amp;quot;THEN202&amp;lt;/code&amp;gt; выглядят без знака сравнения, хотя в токенах он есть (&amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;). Для сверки предпочтительны листинги &amp;lt;code&amp;gt;STAT0x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;M1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
При сверке представлений следует учитывать, что текстовая и оттранслированная копии одной программы на диске могут относиться к разным её версиям. В &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; текстовый листинг строки 240 содержит вызов &amp;lt;code&amp;gt;ABS&amp;lt;/code&amp;gt;, отсутствующий в оттранслированной копии, что подтверждается длиной оператора. У &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; расхождения версий заметны по номерам строк в &amp;lt;code&amp;gt;THEN&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Расширенный набор (2026): 51 оттранслированный файл и 28 текстовых листингов, в том числе 12 пар «текст + токены»: &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;M1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT001&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT02&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT09&amp;lt;/code&amp;gt;. Ключевые для этой статьи: &amp;lt;code&amp;gt;STAT04&amp;lt;/code&amp;gt; (константы, &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;STAT09&amp;lt;/code&amp;gt; (полный набор дисковых операторов), &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt; (единственная пара с целыми переменными), &amp;lt;code&amp;gt;M1&amp;lt;/code&amp;gt; (оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; (поведение &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;M4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;FAN01&amp;lt;/code&amp;gt; (графические операторы &amp;lt;code&amp;gt;DOT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DDRAW&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;S1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GC121&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;IF END THEN&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;UDAW&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;RND&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4289</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4289"/>
		<updated>2026-08-23T11:00:41Z</updated>

		<summary type="html">&lt;p&gt;Panther: new info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
Искра-226 поддерживает работу с двумя типами файлов: ПФ — «Программные файлы» и ФД — «Файлы данных». Программные файлы всегда содержат программу на Бейсике, в текстовом или упакованном токенизированном виде. Файлы данных, соответственно, данные, доступные из программ пользователя.&lt;br /&gt;
&lt;br /&gt;
В соответствии с документацией, Искра-226 поддерживает прямой доступ программ к секторам диска, при этом к записанным таким образом дискам всё нижеизложенное может быть неприменимо, так как форматом хранения полностью управляет программа пользователя по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
Также, в наличии имеется несколько системных дисков, на которых содержатся различные версии интерпретатора Бейсика, с которых производится начальная загрузка компьютера. Эти диски имеют свой формат и здесь не рассматриваются.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. &lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. В исследованном наборе наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое), &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное) и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; (токенизированное и защищённое).&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; наблюдались на дисковых образах (&amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; — у файла &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;, защищённого и оттранслированного одновременно), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; взято из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на четырёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; || 448 || 800 || 0 || 1254 || &amp;lt;code&amp;gt;10 % EDITOR.  ВЕРСИЯ 4.1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется. На расширенном наборе из 51 токенизированного файла она также не даёт сбоев: разбор каждого файла доходит до конца потока без рассинхронизации.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, которым нужен дескриптор размера&#039;&#039;&#039; — массивы и символьные переменные с явно заданной длиной. Оператор объявления при этом не важен: в таблицу попадают как переменные из &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, так и из &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; (аналог &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; для переменных, общих для нескольких программ). Числовые скаляры и символьные переменные с длиной по умолчанию в таблице 1 не описываются.&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; записей 13 при 10 переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;; лишние три — &amp;lt;code&amp;gt;C(14)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G(14)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N0¤21&amp;lt;/code&amp;gt;, объявленные в &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Запись — 8 байт:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || тип: &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; — символьная, &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; — числовая или целая&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || для массивов — число элементов, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || размерный код, младший байт первым&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размерный код равен &#039;&#039;&#039;&amp;lt;code&amp;gt;2 × размер элемента&amp;lt;/code&amp;gt;&#039;&#039;&#039;, а его младший бит означает, что длина была задана явно. Для числовых переменных код 16 (размер элемента 8 байт), для целых 4 (2 байта), для символьных &amp;lt;code&amp;gt;2 × длина + 1&amp;lt;/code&amp;gt;: длина 8 → 17, 64 → 129, 128 → 257, 253 → 507.&lt;br /&gt;
&lt;br /&gt;
Символьная переменная, объявленная без указания длины, получает длину по умолчанию 16 и &#039;&#039;&#039;чётный&#039;&#039;&#039; код 32. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; так объявлены &amp;lt;code&amp;gt;B6¤(400)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;B7¤(10)&amp;lt;/code&amp;gt;, у обоих код 32, тогда как у всех переменных с явной длиной в том же файле код нечётный и точен. Поэтому нечётность кода нельзя использовать как признак символьного типа — для этого служат байты 2–3.&lt;br /&gt;
&lt;br /&gt;
===== Двумерные массивы =====&lt;br /&gt;
&lt;br /&gt;
У двумерного массива вторая размерность записывается в байты 2–3, на место признака типа, а первая остаётся в поле числа элементов. Размерности &#039;&#039;&#039;не перемножаются&#039;&#039;&#039;, поэтому оператор &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; восстанавливается точно.&lt;br /&gt;
&lt;br /&gt;
Правило проверено на десяти массивах в четырёх файлах, включая &amp;lt;code&amp;gt;A(5,6)&amp;lt;/code&amp;gt; из &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; с двумя разными малыми размерностями. В &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; пять массивов вида &amp;lt;code&amp;gt;(2,99)&amp;lt;/code&amp;gt; дают в байтах 2–3 значение 99, а в поле числа элементов 2; контрольный &amp;lt;code&amp;gt;R(2,2)&amp;lt;/code&amp;gt; с равными размерностями даёт 2 и 2. Размер выделяемой памяти считается по общей формуле с перемножением размерностей: у &amp;lt;code&amp;gt;P(2,99)&amp;lt;/code&amp;gt; разность адресов равна 1590 = 2 × 99 × 8 + 6, у &amp;lt;code&amp;gt;R(2,2)&amp;lt;/code&amp;gt; — 38 = 2 × 2 × 8 + 6.&lt;br /&gt;
&lt;br /&gt;
Пример записи &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; из &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 00 00  08 00  07 00  10 00&lt;br /&gt;
&lt;br /&gt;
Байты 2–3 равны 8 (вторая размерность), байты 4–5 равны 7 (первая), размерный код 16 — числовая. Опознание надёжно: соседние записи таблицы содержат 13 и 8 элементов, а в тексте &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; вокруг &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; стоят &amp;lt;code&amp;gt;A(13)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E(8)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Практическое правило: &#039;&#039;&#039;старший байт поля 2–3 равен &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; — массив одномерный&#039;&#039;&#039;, иначе поле 2–3 целиком занято второй размерностью. Значения &amp;lt;code&amp;gt;08 2D&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;08 00&amp;lt;/code&amp;gt; не могут быть размерностью, так как означали бы 2093 и 2048 элементов по второму измерению.&lt;br /&gt;
&lt;br /&gt;
Вопрос «как при двумерности кодируется тип переменной» снимается: тип хранится не в таблице 1, а во флаге записи таблиц 2 и 3 (см. ниже), поэтому байты 2–3 таблицы 1 свободны под размерность. Символьные двумерные массивы в наборе есть — пятнадцать записей, у которых флаг помечает символьный тип, а старший байт поля 2–3 равен &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Исключение — &#039;&#039;&#039;неявно объявленные массивы&#039;&#039;&#039;. У переменной, к которой обратились с индексом без предварительного &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, число элементов всегда равно 10 (размерность массива по умолчанию), а в байтах 2–3 стоят значения &amp;lt;code&amp;gt;01 27&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;07 59&amp;lt;/code&amp;gt;, размерностями не являющиеся: в исследованном наборе они встречаются девять и семь раз соответственно и только при десяти элементах, в неродственных программах. Их природа не установлена. Такие массивы следует выводить как одномерные &amp;lt;code&amp;gt;(10)&amp;lt;/code&amp;gt;. Настоящий двумерный массив &amp;lt;code&amp;gt;(10,10)&amp;lt;/code&amp;gt; в наборе тоже есть — в &amp;lt;code&amp;gt;STATIST&amp;lt;/code&amp;gt;, там байты 2–3 равны &amp;lt;code&amp;gt;00 0A&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
===== Порядок записей обратен порядку объявления =====&lt;br /&gt;
&lt;br /&gt;
Память под переменные выделяется &#039;&#039;&#039;сверху вниз&#039;&#039;&#039;, от верхней границы, а записи в таблице отсортированы по возрастанию адреса. Поэтому &#039;&#039;&#039;первая переменная в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; оказывается последней записью таблицы&#039;&#039;&#039;, и сопоставлять их нужно с конца.&lt;br /&gt;
&lt;br /&gt;
Проверено на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;: 7 операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявляют 50 переменных, L1 = 448 = 56 записей. При обратном сопоставлении разность адресов соседних записей совпадает с ожидаемым размером переменной &#039;&#039;&#039;у 44 из 50&#039;&#039;&#039; точно, а оставшиеся 6 расходятся ровно на 1 байт — это нечётные длины (&amp;lt;code&amp;gt;A¤1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;K¤253&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G¤19&amp;lt;/code&amp;gt;), округляемые вверх до чётной.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Адреса в таблице 1 могут быть нулевыми.&#039;&#039;&#039; В файле &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; все 11 записей имеют адрес &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;, поэтому любое правило, опирающееся на разность адресов соседних записей, там неприменимо. Разборщику следует проверять адреса на ненулевое значение перед использованием.&lt;br /&gt;
&lt;br /&gt;
Остальные поля при этом заполнены и корректны: обратный порядок относительно &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; сохраняется, размерный код точен для всех строковых переменных, у массива &amp;lt;code&amp;gt;K(9)&amp;lt;/code&amp;gt; число элементов равно 9.}}&lt;br /&gt;
&lt;br /&gt;
Размер выделяемой памяти:&lt;br /&gt;
&lt;br /&gt;
* скалярная символьная переменная — объявленная длина, округлённая вверх до чётной;&lt;br /&gt;
* массив — &amp;lt;code&amp;gt;N × размер элемента + 6&amp;lt;/code&amp;gt;, где 6 байт занимает дескриптор.&lt;br /&gt;
&lt;br /&gt;
Формула для массивов проверена на 20 массивах &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; без единого расхождения: &amp;lt;code&amp;gt;V¤(20)64&amp;lt;/code&amp;gt; → 1286, &amp;lt;code&amp;gt;S¤(48)64&amp;lt;/code&amp;gt; → 3078, &amp;lt;code&amp;gt;P%(300)&amp;lt;/code&amp;gt; → 606, &amp;lt;code&amp;gt;X(2)&amp;lt;/code&amp;gt; → 22.&lt;br /&gt;
&lt;br /&gt;
===== Таблица отражает состояние на момент сохранения =====&lt;br /&gt;
&lt;br /&gt;
Число записей может превышать число переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; записей 26 при 23 объявленных переменных, и три лишние стоят в области самых низких адресов, то есть выделены последними.&lt;br /&gt;
&lt;br /&gt;
Число элементов у лишних записей соответствует не тексту программы, а значению, которое переменная получила при выполнении: в &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; у всех трёх лишних записей это 300, тогда как в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявлено 200. Программа содержит оператор &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, переопределяющий размерности во время работы, поэтому таблица описывает состояние памяти на момент сохранения, а не исходный текст.&lt;br /&gt;
&lt;br /&gt;
Косвенное подтверждение: в токенах &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; файла &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; переменные &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;G¤&amp;lt;/code&amp;gt; получили индексы &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt;, тогда как все остальные — обычные значения подряд.&lt;br /&gt;
&lt;br /&gt;
Причина этого выяснена на файле &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt;, сохранённом в обоих представлениях. Выросший массив получает не только новый дескриптор в таблице 1, но и &#039;&#039;&#039;новый индекс переменной&#039;&#039;&#039;, причём интерпретатор правит операнд в самом операторе &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, оставляя код и &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; работать со старым индексом. Оператор&lt;br /&gt;
&lt;br /&gt;
 20 DIM X(100),G¤(100)5,Q(5,100),D(6),E(5),A(5,6)&lt;br /&gt;
&lt;br /&gt;
кодируется как&lt;br /&gt;
&lt;br /&gt;
 46 06 19 1A 1B 03 04 05&lt;br /&gt;
&lt;br /&gt;
— первые три переменные записаны индексами &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1A&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1B&amp;lt;/code&amp;gt;, тогда как &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; в строке 200 обращается к ним же как &amp;lt;code&amp;gt;E0 00&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E0 01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E0 02&amp;lt;/code&amp;gt;. В таблицах 2 и 3 бит 0 флага установлен и у &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1A&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1B&amp;lt;/code&amp;gt;, и у &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;: первым соответствуют дескрипторы с 300 элементами (размер после переопределения), вторым — исходные, со 100.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Из этого следует, что операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; в оттранслированном файле нельзя использовать как источник соответствия «индекс — дескриптор»: там могут стоять «теневые» индексы. Надёжный источник — бит 0 флага записей таблиц 2 и 3.}}&lt;br /&gt;
&lt;br /&gt;
Дополнительный дескриптор создаётся &#039;&#039;&#039;только тогда, когда массив вырастает за пределы исходного выделения&#039;&#039;&#039;. Если новый размер не превышает объявленного в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, память переиспользуется на месте и запись в таблице остаётся одна.&lt;br /&gt;
&lt;br /&gt;
Наиболее наглядно это видно в &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; переопределяет шесть массивов, а лишних записей три:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Массив !! Объявлено !! После переопределения !! Дескриптор&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X(100)&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G¤(100)5&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Q(5,100)&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D(6)&amp;lt;/code&amp;gt; || 6 || не больше 6 || нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E(5)&amp;lt;/code&amp;gt; || 5 || не больше 5 || нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;A(5,6)&amp;lt;/code&amp;gt; || 5, 6 || не больше 5 и 6 || нет&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Правило согласуется и с остальными файлами: в &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; из одиннадцати переопределяемых массивов выросли три, в &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; из четырёх — два, и столько же лишних записей в каждом случае.&lt;br /&gt;
&lt;br /&gt;
Если программа не выполнялась после загрузки, оператор &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; не отрабатывает и лишних записей нет вовсе: в &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; записей ровно шесть при шести переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; шесть записей таблицы 1 не соответствуют ни одному &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. По флагам таблицы 2 они принадлежат переменным с индексами &amp;lt;code&amp;gt;39&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;92&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;93&amp;lt;/code&amp;gt;, причём у всех шести число элементов равно 10 — размерности массива по умолчанию. Это &#039;&#039;&#039;неявно объявленные массивы&#039;&#039;&#039;: переменная, к которой обратились с индексом без предварительного &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, получает десять элементов и полноценный дескриптор. Три из шести — целые (&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;), размерный код 4, три — действительные, код 16.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Таблицы 2 и 3 образуют &#039;&#039;&#039;один непрерывный массив дескрипторов переменных&#039;&#039;&#039;. Формат записей в обеих одинаков, граница между ними определяется только счётчиками пролога; число записей — &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt;, поскольку длины в прологе даны в байтах, а запись занимает 4 байта, а не 8.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым; &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;, если память не выделена&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 1 || флаг типа&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 1 || назначение не установлено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Порядок записей =====&lt;br /&gt;
&lt;br /&gt;
Записи описывают &#039;&#039;&#039;все&#039;&#039;&#039; переменные программы, а не только скалярные, и идут в порядке &#039;&#039;&#039;убывания индекса переменной&#039;&#039;&#039;. Если обозначить&lt;br /&gt;
&lt;br /&gt;
 N = L2 / 4 + L3 / 4&lt;br /&gt;
&lt;br /&gt;
то запись, описывающая переменную с индексом &#039;&#039;i&#039;&#039;, находится на позиции &amp;lt;code&amp;gt;N − 1 − i&amp;lt;/code&amp;gt;, если считать позиции подряд: сначала записи таблицы 2, затем записи таблицы 3.&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;&amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; — это общее число переменных программы&#039;&#039;&#039;, то есть наибольший использованный индекс плюс единица. Таблица 3 приходится на самые младшие индексы — именно те, которые занимает оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;: он всегда выполняется первым и получает индексы с нуля.&lt;br /&gt;
&lt;br /&gt;
Правило проверено на всех файлах исследованного набора, разбор которых не срывается на бинарных полезных нагрузках операторов &amp;lt;code&amp;gt;ASMB&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;$GIO&amp;lt;/code&amp;gt;: для 28 файлов совпадение точное.&lt;br /&gt;
&lt;br /&gt;
===== Флаг типа =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Бит !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 5 (&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;) || символьная переменная&lt;br /&gt;
|-&lt;br /&gt;
| 4 (&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;) || числовая переменная (действительная)&lt;br /&gt;
|-&lt;br /&gt;
| ни 5, ни 4 || &#039;&#039;&#039;целая переменная&#039;&#039;&#039; (суффикс &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 0 (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;) || у переменной есть дескриптор в таблице 1 — то есть это массив либо символьная переменная с явно заданной длиной&lt;br /&gt;
|-&lt;br /&gt;
| 7, 3 || назначение не установлено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Признак целого типа установлен на файле &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt;, единственном в наборе, где есть и целые переменные, и обе копии программы. Ровно три записи таблицы 2 имеют &amp;lt;code&amp;gt;флаг &amp;amp;amp; 0x30 = 0&amp;lt;/code&amp;gt; — те, что соответствуют индексам &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;33&amp;lt;/code&amp;gt;. В текстовом листинге ровно три целых переменных, и их индексы совпадают: &amp;lt;code&amp;gt;E%&amp;lt;/code&amp;gt; — строка 98 (&amp;lt;code&amp;gt;E%=0&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;36 04 23 D9 E8 00&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;E7%&amp;lt;/code&amp;gt; — строка 1010, &amp;lt;code&amp;gt;E3%&amp;lt;/code&amp;gt; — строка 5070. У всех троих адрес равен &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;: целым скалярам в общей области скаляров место не отводится.&lt;br /&gt;
&lt;br /&gt;
Признак символьного типа согласуется с прежним наблюдением: в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; у &amp;lt;code&amp;gt;N¤&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N1¤&amp;lt;/code&amp;gt; флаг &amp;lt;code&amp;gt;A8&amp;lt;/code&amp;gt;, а адреса этих переменных отстоят от соседних на 16 байт — длина символьной переменной по умолчанию.&lt;br /&gt;
&lt;br /&gt;
===== Связь с таблицей 1 =====&lt;br /&gt;
&lt;br /&gt;
Число записей с установленным битом 0 флага &#039;&#039;&#039;в точности равно &amp;lt;code&amp;gt;L1 / 8&amp;lt;/code&amp;gt;&#039;&#039;&#039; во всех файлах набора. Более того, соответствие оказывается порядковым: &#039;&#039;k&#039;&#039;-я по счёту такая запись (в порядке файла) описывает ту же переменную, что и &#039;&#039;k&#039;&#039;-я запись таблицы 1.&lt;br /&gt;
&lt;br /&gt;
 k = 0&lt;br /&gt;
 для pos = 0 … N−1:&lt;br /&gt;
     если флаг[pos] и 1:&lt;br /&gt;
         дескриптор_переменной(N − 1 − pos) = запись таблицы 1 номер k&lt;br /&gt;
         k = k + 1&lt;br /&gt;
&lt;br /&gt;
Это даёт &#039;&#039;&#039;точное соответствие «индекс переменной → запись таблицы 1» без разбора операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Прежний способ — сопоставление по порядку объявления — ошибочен по двум причинам:&lt;br /&gt;
&lt;br /&gt;
* оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; объявляет и обычные скаляры, у которых записи в таблице 1 нет: в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; из тринадцати объявленных переменных дескриптор имеют только три (&amp;lt;code&amp;gt;C(14)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G(14)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N0¤21&amp;lt;/code&amp;gt;);&lt;br /&gt;
* после &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; в операнде &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; могут стоять «теневые» индексы (см. ниже).&lt;br /&gt;
&lt;br /&gt;
Три записи таблицы 3 в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; с низкими значениями поля 0–1 (&amp;lt;code&amp;gt;0014&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;000D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0005&amp;lt;/code&amp;gt;) — это как раз те три переменные &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;, которые описаны в таблице 1. У всех переменных с дескриптором таблицы 1 поле 0–1 содержит не адрес, а небольшое число, растущее примерно на восемь с каждой такой переменной (в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; — 5, 13, 20, 29, 38, 46, 54, 62, 70, 78, 85, 93, 101). Назначение этого поля не установлено.&lt;br /&gt;
&lt;br /&gt;
===== Практическое следствие =====&lt;br /&gt;
&lt;br /&gt;
Хотя имена переменных в оттранслированном файле не сохраняются, для &#039;&#039;&#039;каждой&#039;&#039;&#039; переменной восстанавливаются:&lt;br /&gt;
&lt;br /&gt;
* тип — действительная, целая (&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;) или символьная (&amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;);&lt;br /&gt;
* массив это или скаляр;&lt;br /&gt;
* размерности массива и длина элемента.&lt;br /&gt;
&lt;br /&gt;
Разборщику не нужны ни эвристики «массив или скаляр» по разностям адресов (в защищённых файлах адреса нулевые), ни разбор операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Индексы переменных и их имена ===&lt;br /&gt;
&lt;br /&gt;
Переменные адресуются в коде однобайтовым индексом. Индексы назначаются &#039;&#039;&#039;в порядке первого появления переменной в тексте программы&#039;&#039;&#039;, а не по алфавиту и не по типу.&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; делят единое пространство индексов: в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; занимает индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt;, а следующий за ним &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; продолжает с &amp;lt;code&amp;gt;0D&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Для переменных, объявленных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, это даёт прямое соответствие: операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют свои переменные подряд, в том же порядке, в каком они записаны в исходном тексте. В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; семь операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; занимают индексы &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;32&amp;lt;/code&amp;gt; непрерывно; индекс &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; достался переменной &amp;lt;code&amp;gt;R2%&amp;lt;/code&amp;gt;, встретившейся раньше — в строке 30, до первого &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;, где до &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; переменных не было, нумерация начинается с &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Имена переменных в оттранслированном файле не сохраняются.&#039;&#039;&#039; Таблицы содержат дескрипторы памяти — адрес, тип, размер, — но не имена.&lt;br /&gt;
&lt;br /&gt;
Проверка на &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;, где программа сохранена одновременно в текстовом и оттранслированном виде: сопоставление 866 общих строк дало однозначное имя для 146 индексов из 160, и ни одно поле таблиц с этими именами не коррелирует. В таблице 1 поле по смещению 4–5 совпадает у &amp;lt;code&amp;gt;Y¤4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Z¤253&amp;lt;/code&amp;gt; (72), у &amp;lt;code&amp;gt;D¤8&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Q5¤40&amp;lt;/code&amp;gt; (204); в таблице 2 последний байт записи совпадает у заведомо разных переменных (&amp;lt;code&amp;gt;D%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;I%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;J%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Это согласуется с назначением параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;: при выполнении имена не нужны, всё адресуется по индексу, а отказ от их хранения и даёт заявленную экономию места. Практическое следствие — &#039;&#039;&#039;читаемый листинг из оттранслированного файла восстановить нельзя&#039;&#039;&#039;. Восстанавливается структура программы, но переменные остаются безымянными, если не сохранилась текстовая версия того же исходника.&lt;br /&gt;
&lt;br /&gt;
Не хранится только само имя. Тип переменной — действительная, целая или символьная — и её размерности восстанавливаются полностью по таблицам 2, 3 и 1, поэтому в листинге можно выводить корректные суффиксы &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; и корректные размерности массивов.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
==== Выравнивание в конце сектора ====&lt;br /&gt;
&lt;br /&gt;
Если очередная запись не помещается в остаток сектора, остаток заполняется нулями, а запись начинается с первого байта следующего сектора. Такие нули стоят &#039;&#039;&#039;после&#039;&#039;&#039; разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; и в длину записи не входят.&lt;br /&gt;
&lt;br /&gt;
Точное правило формулируется через границы секторов, а не через длину заголовка. Поток рассматривается как последовательность 254-байтовых кусков — по одному на сектор, &#039;&#039;&#039;без обрезки хвостовых нулей&#039;&#039;&#039;. После разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;, стоящего по смещению &#039;&#039;q&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 b = (⌊q / 254⌋ + 1) × 254&lt;br /&gt;
 если b &amp;gt; q и все байты потока с q по b−1 нулевые, то q = b&lt;br /&gt;
&lt;br /&gt;
То есть переход к следующему сектору выполняется только тогда, когда весь остаток текущего куска нулевой.&lt;br /&gt;
&lt;br /&gt;
С этим правилом разбор всех 51 токенизированного файла исследованного набора проходит без единой рассинхронизации, а &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; даёт ровно 1422 записи строк — столько же, сколько строк в его текстовой версии. Эвристика «пропустить до трёх нулей после &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;» этого не обеспечивает: длина выравнивания доходит до шести байт.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Строка с номером 0 кодируется байтами &amp;lt;code&amp;gt;00 00 &amp;amp;lt;len&amp;amp;gt;&amp;lt;/code&amp;gt; — такая строка есть в файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;). Разборщик, безусловно пропускающий пару нулей перед номером строки, разрушает разбор подобных файлов. Нули следует пропускать только по правилу выше.}}&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || IF END THEN || выведено из данных; операнд — 2 байта BCD, номер строки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt; || RETURN CLEAR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt; || ON ERROR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3A&amp;lt;/code&amp;gt; || DEFFN&#039; с текстовым определением || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (краткая форма REM) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51&amp;lt;/code&amp;gt; || RESTORE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;63&amp;lt;/code&amp;gt; || &#039;&#039;(операция над символьными переменными, имя не установлено)&#039;&#039; || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;66&amp;lt;/code&amp;gt; || DATA LOAD BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;68&amp;lt;/code&amp;gt; || DATA SAVE BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6E&amp;lt;/code&amp;gt; || DATA SAVE BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; || DATA LOAD BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;71&amp;lt;/code&amp;gt; || DATA LOAD DA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;76&amp;lt;/code&amp;gt; || DATA SAVE DC || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;77&amp;lt;/code&amp;gt; || DATA SAVE DC CLOSE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;78&amp;lt;/code&amp;gt; || DATA SAVE DC OPEN T || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7C&amp;lt;/code&amp;gt; || LIST DC || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt; || LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; || SAVE DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;82&amp;lt;/code&amp;gt; || SCRATCH DISK || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Пометка «подтверждено» означает сверку с текстовым листингом той же программы. Основная часть подтверждений получена на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; автоматическим сопоставлением 866 общих строк: в строках, где число операторов в обоих представлениях совпало, первый глагол каждого оператора сверялся с первым словом соответствующего оператора текста. Так подтверждены 34 значения, включая &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; = GOTO (147 совпадений), &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; = PRINT (212), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; = IF (266).&lt;br /&gt;
&lt;br /&gt;
Отдельно стоит краткая форма комментария &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt;): она встречается в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; 122 раза против 7 у полного &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt;), и её операнд записывается сырым текстом без префикса &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; — так же, как у &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Все три найдены: &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt; — токен &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; — отдельный токен &amp;lt;code&amp;gt;77&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; оказался не отдельным глаголом, а обычным &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;76&amp;lt;/code&amp;gt;) с единственным операндом &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; — ключевым словом &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Операнды дисковых операторов ===&lt;br /&gt;
&lt;br /&gt;
Первый байт операндов дискового оператора — &#039;&#039;&#039;код устройства или режима&#039;&#039;&#039;, а не ссылка на переменную:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Байт !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt; — первый дисковод&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; — второй дисковод&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; — обращение по номеру файла (&amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Правило проверено на &amp;lt;code&amp;gt;LIST DC F&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;7C 01 00&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST DC R&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;7C 01 01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD DC F/1C,&amp;quot;М2&amp;quot;&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;7D 08 00 DC DE 1C DE E3 02 ED 32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SCRATCH R&amp;quot;VIC&amp;quot;&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;81 05 01 E3 03 56 49 43&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SCRATCH T#D,F1¤&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;81 05 02 DB 22 DE 4C&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC OPEN T(700)A¤&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;78 07 02 EB E7 07 00 D0 09&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ключевые слова конца и начала файла кодируются токенами, у которых в позиции операции другое значение:&lt;br /&gt;
&lt;br /&gt;
 79 01 D6              DBACKSPACE BEG&lt;br /&gt;
 7A 01 D7              DSKIP END&lt;br /&gt;
 76 01 D7              DATA SAVE DC END&lt;br /&gt;
 79 04 DB E8 01 DE D6  DBACKSPACE #1,BEG&lt;br /&gt;
&lt;br /&gt;
Тот же &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt; в операторах &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt; печатается как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;D2&amp;lt;/code&amp;gt; (обычно &amp;lt;code&amp;gt;STEP&amp;lt;/code&amp;gt;) — как параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 76 07 D6 DB E8 02 DE E0 12                  DATA SAVE DC ¤#2,W()&lt;br /&gt;
 80 0E 01 D6 D2 EB E3 03 «VIC» D0 E3 03 «VIC»  SAVE DC R¤T(&amp;quot;VIC&amp;quot;)&amp;quot;VIC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; использует ключевые слова &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 82 0B 01 06 D9 E8 05 DE D7 D9 E7 10 00      SCRATCH DISK RLS=5,END=1000&lt;br /&gt;
 82 0B 00 06 D9 E8 05 DE D7 D9 E7 10 00      SCRATCH DISK FLS=5,END=1000&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — дисковод, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; — ключевое слово &amp;lt;code&amp;gt;LS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; — знак равенства, &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Списки переменных и списки выражений ===&lt;br /&gt;
&lt;br /&gt;
Список &#039;&#039;&#039;принимающих&#039;&#039;&#039; переменных пишется &#039;&#039;&#039;без разделителей&#039;&#039;&#039; — соседние ссылки на переменные и есть список:&lt;br /&gt;
&lt;br /&gt;
 41 02 0A 0B                                 INPUT T0,N0&lt;br /&gt;
 74 03 05 0C 0D                              DATA LOAD DC A1¤,E1,E2&lt;br /&gt;
 7B 08 02 DB 22 DE 4C 4D 4E 36 4F            LIMITS T#D,F1¤,O,A,Q,R&lt;br /&gt;
 46 04 00 01 02 03                           DIM X(300),Y(300),N(2),G¤(300)5&lt;br /&gt;
&lt;br /&gt;
Список &#039;&#039;&#039;выражений&#039;&#039;&#039; разделяется &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 76 06 D6 05 DE 0A DE 0B                     DATA SAVE DC ¤A1¤,T0,N0&lt;br /&gt;
 28 0B E7 04 70 DE 0F DE 10 DE 00 10 D0      PRINTUSING 470,I,D,X(D)&lt;br /&gt;
&lt;br /&gt;
Запятая между приглашением и переменной в операторе &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; не кодируется:&lt;br /&gt;
&lt;br /&gt;
 41 14 E3 11 «СТЕПЕНЬ  СВОБОДЫ » 00          INPUT &amp;quot;СТЕПЕНЬ  СВОБОДЫ &amp;quot;,K&lt;br /&gt;
&lt;br /&gt;
Номер строки-образа в &amp;lt;code&amp;gt;PRINTUSING&amp;lt;/code&amp;gt; — обычная константа &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, а диапазоны строк в &amp;lt;code&amp;gt;SAVE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt; записываются &#039;&#039;&#039;сырым двухбайтовым BCD&#039;&#039;&#039; без токена:&lt;br /&gt;
&lt;br /&gt;
 80 … 90 00 DE 90 90                         SAVE DC …&amp;quot;*ASMBBAS&amp;quot; 9000,9090&lt;br /&gt;
 2A 0A DD 10 52 15 DE 52 15 DE 52 25         SAVE Z¤5215,5215,5225&lt;br /&gt;
&lt;br /&gt;
У оператора &amp;lt;code&amp;gt;BIN(&amp;lt;/code&amp;gt; закрывающая скобка и знак равенства не кодируются, как у &amp;lt;code&amp;gt;PACK(&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;UNPACK(&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 4B 02 22 3B                                 BIN(A¤)=J%&lt;br /&gt;
&lt;br /&gt;
=== Двухбайтовые глаголы ===&lt;br /&gt;
&lt;br /&gt;
Матричные и графические операторы кодируются двумя байтами: префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; и подкодом. Длина операторной части следует за подкодом на обычном месте:&lt;br /&gt;
&lt;br /&gt;
 06 &amp;amp;lt;подкод&amp;amp;gt; &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;операнды&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий однобайтовый глагол, на таких строках теряет синхронизацию.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Подкод !! Оператор !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; (?) || выведено из данных, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || MAT (присваивание) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || MAT REDIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || MAT READ || по контексту: &amp;lt;code&amp;gt;RESTORE 1,X:06 03 02 E0 24&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;04&amp;lt;/code&amp;gt; || MAT INPUT || по контексту: приглашение &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;, затем &amp;lt;code&amp;gt;06 04 02 E0 32&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; || MAT COPY || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; || MAT SEARCH || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤TRAN(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤OPEN&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt; || DOT || сопоставление идиом двух программ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; || DDRAW || сопоставление идиом двух программ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || DRAW || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt; || NPLOT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; || &#039;&#039;(массив и четыре числа; вероятно &amp;lt;code&amp;gt;FRAME&amp;lt;/code&amp;gt;)&#039;&#039; || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || LABEL || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤COPY&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤LET&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || WINDOW || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || LINPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || ASMB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || REPLACE || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;DOT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DDRAW&amp;lt;/code&amp;gt; опознаны совпадением идиомы в двух программах. Текстовый листинг &amp;lt;code&amp;gt;FAN01&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 1540 T3=1:FOR T=2TOT4:NPLOT B6¤(),(M6+M8*(T-T3)),P7+3:DDRAW B6¤(),0,-3:NEXT T&lt;br /&gt;
 1560 …:DOT B6¤(),R8,R9:DDRAW B6¤(),R6,R7:NEXT T&lt;br /&gt;
&lt;br /&gt;
Токены &amp;lt;code&amp;gt;M4&amp;lt;/code&amp;gt; в тех же конструкциях (рисование засечки на оси и отрезка по приращениям):&lt;br /&gt;
&lt;br /&gt;
 06 19 … : 06 14 09 E0 10 DE E8 00 DE E9 E8 03      NPLOT …:DDRAW A(),0,-3&lt;br /&gt;
 06 13 06 E0 10 DE 2A DE 2B : 06 14 06 E0 10 DE 2C DE 1C&lt;br /&gt;
&lt;br /&gt;
==== Подкод 00 ====&lt;br /&gt;
&lt;br /&gt;
Операнды состоят из групп, ограниченных &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; … &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; (то есть &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; … &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;) и разделённых &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;; внутри группы до трёх элементов, тоже через &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Третий элемент (перо) может отсутствовать, быть выражением, строковым литералом или одним из токенов &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 00 09 D7 E8 00 DE E8 10 DE E6 D4                    &amp;amp;lt;0,16,…&amp;amp;gt;&lt;br /&gt;
 06 00 … D7 E8 56 DE E7 02 55 DE D4 DE D7 DE 2E E9 E7 02 25 DE E6 D4 …&lt;br /&gt;
&lt;br /&gt;
Такой синтаксис соответствует оператору &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; системы Wang 2200, где аргументы записываются в угловых скобках. В указателе операторов книги&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; присутствует только как имя устройства вывода, поэтому имя оператора считается вероятным, но не доказанным.&lt;br /&gt;
&lt;br /&gt;
Примеры из &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 02 19 E0 00 EB 09 D0 DE E0 01 EB 08 D0 DE …   MAT REDIM X(…),Y(…),…&lt;br /&gt;
 06 01 04 E0 07 D9 EF                             MAT S0=ZER&lt;br /&gt;
 06 19 08 E0 12 DE 26 DE E7 02 50                 NPLOT B6¤(),C1,250&lt;br /&gt;
 06 1F 06 DC DE 14 DE E0 12                       ¤COPY /14,B6¤()&lt;br /&gt;
&lt;br /&gt;
В матричном присваивании &amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; в позиции операнда означает &amp;lt;code&amp;gt;ZER&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В операторе &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; размерности массива, в отличие от обращения к элементу, заключаются в &#039;&#039;&#039;явную&#039;&#039;&#039; открывающую скобку &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt;, а между собой разделяются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Длина элемента символьного массива указывается после закрывающей скобки:&lt;br /&gt;
&lt;br /&gt;
 E0 02 EB 0E DE 0D D0        Q(M1,N)   — двумерный&lt;br /&gt;
 E0 05 EB 0E DE 0F D0        A(M1,M2)&lt;br /&gt;
 E0 01 EB 0D D0 E8 05        G¤(N)5    — длина элемента после скобки&lt;br /&gt;
&lt;br /&gt;
==== Пропущенные параметры ====&lt;br /&gt;
&lt;br /&gt;
Пропущенный параметр не кодируется ничем: между разделителями &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; просто нет операнда. Оператор &amp;lt;code&amp;gt;LABEL B6¤(),,,B3¤(1)&amp;lt;/code&amp;gt; с тремя пропущенными параметрами даёт три подряд идущих &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 1E 09 E0 12 DE DE DE 11 E8 01 D0&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt; || FROM (в &amp;lt;code&amp;gt;PACK&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;UNPACK&amp;lt;/code&amp;gt;) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CB&amp;lt;/code&amp;gt; || ALL (в &amp;lt;code&amp;gt;RETURN CLEAR ALL&amp;lt;/code&amp;gt;) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; || GOSUB в составе &amp;lt;code&amp;gt;ON … GOSUB&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; || GOTO в составе &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D2&amp;lt;/code&amp;gt; || STEP; параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt; в позиции операции; &amp;lt;code&amp;gt;BEG&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; в позиции операции; &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; в позиции операции, ссылка на массив целиком в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E1&amp;lt;/code&amp;gt; || функция &amp;lt;code&amp;gt;STR&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || число с фиксированной точкой, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || число с порядком, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, бинарный или унарный || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ED&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;POS(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LEN(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NUM(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VAL(&amp;lt;/code&amp;gt; — без закрывающей скобки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt; || математическая функция, имя не установлено || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt; — константа π || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ABS(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INT(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;RND(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SGN(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SQR(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LOG(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;EXP(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FC&amp;lt;/code&amp;gt; || математические функции, имена не установлены || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ARCTAN(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Математические функции ===&lt;br /&gt;
&lt;br /&gt;
Книга&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; (разд. 4.7) перечисляет пятнадцать функций: &amp;lt;code&amp;gt;SIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCSIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCCOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCTAN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RND&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ABS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SGN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOG&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EXP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SQR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ROUND&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt;. Все они, кроме пяти тригонометрических, размещены по токенам:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;STAT04&amp;lt;/code&amp;gt; выражение &amp;lt;code&amp;gt;SQR(2*#PI)&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;F6 E8 02 DF F1 D0&amp;lt;/code&amp;gt;; сверено с текстовой копией той же программы.&lt;br /&gt;
* &amp;lt;code&amp;gt;F4&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;RND(&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;UDAW&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E8 50 DF F4 E8 01 D0 EA E8 15&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;50*RND(1)+15&amp;lt;/code&amp;gt;, а в соседней строке &amp;lt;code&amp;gt;10*RND(1)&amp;amp;lt;9.68&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SGN(&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; строка 6717: &amp;lt;code&amp;gt;4E D9 F5 65 E9 04 34 D0 D0&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;B%=SGN(B-P%(I))&amp;lt;/code&amp;gt;; сверено с текстовой копией.&lt;br /&gt;
* &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt; в позиции операнда, см. ниже.&lt;br /&gt;
* &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; — вероятно &amp;lt;code&amp;gt;ARCTAN(&amp;lt;/code&amp;gt;: в &amp;lt;code&amp;gt;M3&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;P3&amp;lt;/code&amp;gt; её единственный аргумент всегда отношение (&amp;lt;code&amp;gt;FD 25 DC 26 D0&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
На пять оставшихся имён (&amp;lt;code&amp;gt;SIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCSIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCCOS&amp;lt;/code&amp;gt;) приходится ровно пять свободных токенов — &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;F9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FC&amp;lt;/code&amp;gt;, — но программ, сохранённых одновременно в обоих представлениях и использующих тригонометрию, в исследованном наборе нет, поэтому распределение имён по токенам не установлено.&lt;br /&gt;
&lt;br /&gt;
=== Двузначность токенов старшей половины ===&lt;br /&gt;
&lt;br /&gt;
Часть токенов диапазона &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; читается по-разному в зависимости от того, ожидается ли на их месте знак операции или очередной операнд. Интерпретатор различает их по состоянию разбора, отдельного признака в файле нет.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! В позиции операции !! В позиции операнда&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D2&amp;lt;/code&amp;gt; || STEP || параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; оператора &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;BEG&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; после &amp;lt;code&amp;gt;DATA SAVE DC&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SAVE DC&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ROUND(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; || ссылка на массив целиком&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; бинарный || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; унарный&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Двузначность &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; подтверждена тремя независимыми строками с текстовой сверкой:&lt;br /&gt;
&lt;br /&gt;
 2F D9 D8 EF 11 DE DB DC 17 DE E8 01 D0     Y=ROUND(VAL(Y2¤,2)/K7,1)&lt;br /&gt;
 D8 E5 14 21 17 DF 64 E8 07 D0 DE E8 00 D0  ROUND(2.117*P(7),0)&lt;br /&gt;
 B1 D9 D8 B1 DC 9A DE E8 00 D0              Q5=ROUND(Q5/P4,0)&lt;br /&gt;
&lt;br /&gt;
В операторе &amp;lt;code&amp;gt;MAT SEARCH&amp;lt;/code&amp;gt; знак сравнения стоит &#039;&#039;&#039;в позиции операнда&#039;&#039;&#039; — сразу после запятой, отделяющей искомое значение:&lt;br /&gt;
&lt;br /&gt;
 06 0A 08 E0 20 DE D4 22 D1 E0 1E           MAT SEARCH L4¤(),&amp;amp;gt;A¤TON4¤()&lt;br /&gt;
 06 0A 0F E1 0D E8 01 DE 45 D0 DE D9 E3 01 20 D1 E0 20   MAT SEARCH STR(Q¤,1,M%),=&amp;quot; &amp;quot;TOL4¤()&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Ссылками на переменные являются значения &#039;&#039;&#039;&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt;&#039;&#039;&#039;, а не &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;BF&amp;lt;/code&amp;gt;: первый токен — &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;). Индексы &amp;lt;code&amp;gt;C0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;C9&amp;lt;/code&amp;gt; реально встречаются в крупных программах (в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; 200 переменных), например &amp;lt;code&amp;gt;C1 D9 9C&amp;lt;/code&amp;gt; — присваивание переменной с индексом &amp;lt;code&amp;gt;C1&amp;lt;/code&amp;gt;. Разборщик с границей &amp;lt;code&amp;gt;C0&amp;lt;/code&amp;gt; портит листинг таких программ.}}&lt;br /&gt;
&lt;br /&gt;
Ссылка на массив целиком записывается как &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; и порядковый номер переменной в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;74 02 E0 09&amp;lt;/code&amp;gt; соответствует &amp;lt;code&amp;gt;DATA LOAD DC G¤()&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;E0 09 D1 E0 00&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;G¤()TOX()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Каждое прочтение подтверждено не менее чем двумя независимыми строками &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;TAB(17)&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;DF E8 17 D0&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;.5*LOG(&amp;lt;/code&amp;gt; — как &amp;lt;code&amp;gt;E5 01 50 DF F7&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K(1)&amp;amp;lt;&amp;amp;gt;1&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;PRINT AT(9,10)&amp;lt;/code&amp;gt; оба дают &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K0*(-1)&amp;lt;/code&amp;gt; даёт &amp;lt;code&amp;gt;DF EB E9 E8 01 D0&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; стоит в позиции операнда.&lt;br /&gt;
&lt;br /&gt;
Разборщик с одним фиксированным значением на токен на таких строках даёт неверный листинг, поэтому таблицу операндов нужно применять с учётом позиции.&lt;br /&gt;
&lt;br /&gt;
=== Оператор SELECT ===&lt;br /&gt;
&lt;br /&gt;
Первый байт операндов — код группы устройств, записи разделяются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Ширина строки, если она задана, записывается после &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; как &#039;&#039;&#039;двоичное 16-битное число, старший байт первым&#039;&#039;&#039; (не BCD).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Код !! Группа !! Пример&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || файл &amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt;: номер, адрес и, необязательно, дисковод || &amp;lt;code&amp;gt;00 01 18&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#118&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;00 01 18 00&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;#118F&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || без параметров; вероятно режим тригонометрии (&amp;lt;code&amp;gt;SELECT D&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;) || &amp;lt;code&amp;gt;54 01 01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; — пауза после каждой выводимой строки || &amp;lt;code&amp;gt;05 01&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT P1&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT P&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; || устройство, вероятно &amp;lt;code&amp;gt;LIST&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;06 0C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;07 0C EB 00 82&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT PRINT0C(130)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; || вероятно &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;08 10 DE …&amp;lt;/code&amp;gt; (адрес 10 — блок отображения графической информации)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;DISK&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0A 18 01&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;SELECT DISK18R&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; || устройство, вероятно &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0C 05 EB 00 50&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Опознание кодов &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;08&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; косвенное. В книге&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; перечислены группы &amp;lt;code&amp;gt;CI&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAPE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DISK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#n&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;; строка 300 файла &amp;lt;code&amp;gt;GC121&amp;lt;/code&amp;gt; выполняет &amp;lt;code&amp;gt;0C 05(80), 07 05(80), 06 05&amp;lt;/code&amp;gt; — типичный возврат &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;LIST&amp;lt;/code&amp;gt; на экран.&lt;br /&gt;
&lt;br /&gt;
В записях группы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; дисковод указывается не всегда: &amp;lt;code&amp;gt;SELECT #118&amp;lt;/code&amp;gt; даёт трёхбайтовую запись, &amp;lt;code&amp;gt;SELECT #118F&amp;lt;/code&amp;gt; — четырёхбайтовую. Разборщик, всегда читающий четыре байта, съедает разделитель следующей записи.&lt;br /&gt;
&lt;br /&gt;
=== Числовые константы ===&lt;br /&gt;
&lt;br /&gt;
Целые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999).&lt;br /&gt;
&lt;br /&gt;
Для дробных чисел служат токены &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;. За токеном следует байт-описатель, затем цифры числа в BCD по две на байт; если цифр нечётное число, последняя тетрада заполняется нулём. В описателе &#039;&#039;&#039;старшая тетрада — количество цифр до запятой, младшая — общее количество цифр&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Запись !! Байты !! Описатель !! Цифры&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 01 50&amp;lt;/code&amp;gt; || 0 / 1 || 5&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.08&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 02 08&amp;lt;/code&amp;gt; || 0 / 2 || 08&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 12 25&amp;lt;/code&amp;gt; || 1 / 2 || 25&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.196854&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 19 68 54&amp;lt;/code&amp;gt; || 0 / 6 || 196854&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.000344&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 00 03 44&amp;lt;/code&amp;gt; || 0 / 6 || 000344&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; устроен так же, но после цифр мантиссы идёт дополнительный байт порядка: &amp;lt;code&amp;gt;1E6&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;E6 11 10 06&amp;lt;/code&amp;gt; — одна цифра мантиссы, одна цифра до запятой, порядок 6.&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; служит и для &#039;&#039;&#039;целых чисел больше 9999&#039;&#039;&#039; — всего, что не помещается в &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;. Дробной части при этом нет, обе тетрады описателя равны:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Запись !! Байты !! Описатель !! Цифры&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51840&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 55 51 84 00&amp;lt;/code&amp;gt; || 5 / 5 || 51840&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;248830&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 66 24 88 30&amp;lt;/code&amp;gt; || 6 / 6 || 248830&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2488320&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 77 24 88 32 00&amp;lt;/code&amp;gt; || 7 / 7 || 2488320&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.718281828&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 1A 27 18 28 18 28&amp;lt;/code&amp;gt; || 1 / 10 || 2718281828&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Длина хвоста токена — &amp;lt;code&amp;gt;1 + ⌈&#039;&#039;младшая тетрада&#039;&#039; / 2⌉&amp;lt;/code&amp;gt; байт для &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; и на один байт больше для &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;. Разборщик, не потребляющий эти байты, теряет синхронизацию до конца оператора; в исследованном наборе &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; встречается в 407 операторах, &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; — в 210.&lt;br /&gt;
&lt;br /&gt;
Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD. То же относится к первому байту операндов оператора &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Цепочка операторов DATA ===&lt;br /&gt;
&lt;br /&gt;
Два последних байта операндов каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; — &#039;&#039;&#039;указатель на следующий оператор &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt;, младший байт первым&#039;&#039;&#039;. У последнего оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; в программе он равен &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt;. По этой цепочке работают операторы &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;RESTORE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Значения указателей&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 03C0, 03E7, 040E, 0435, 045C, …, 0594, 0000&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;M0&amp;lt;/code&amp;gt; || 0443, 046A, 0491, 04B8, …, 0617, 0000&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt; || 0A97, 0ABE, 0AE5, 0B0C, …, 0C6B, 0000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Шаг постоянен, когда постоянна длина операторов, но значения — адреса в памяти интерпретатора, а не смещения в потоке файла, поэтому пересчёт по потоку сходится не всегда.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Эти два байта нельзя разбирать как токены. Именно они выглядели как «неопознанные токены» в конце строк &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;C0 14&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FA 0E&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CF 0B&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E4 2C&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;F9 2C&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
=== Подпрограммы с параметрами ===&lt;br /&gt;
&lt;br /&gt;
Аргументы &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; следуют сразу за байтом метки и разделяются токеном &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;; скобки не кодируются. Вызов &amp;lt;code&amp;gt;GOSUB &#039; 5(1,1,N-2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 23 0B 05 E8 01 DE E8 01 DE 0D E9 E8 02&lt;br /&gt;
&lt;br /&gt;
Объявление &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; содержит метку, четыре нулевых байта и индексы формальных параметров. Нули, по-видимому, отведены под адрес возврата, заполняемый при выполнении. Объявление &amp;lt;code&amp;gt;DEFFN &#039; 5(N1,D1,D2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 27 08 05 00 00 00 00 12 20 21&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; кодируется как индекс переменной, токен &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; и номера строк по два байта BCD подряд без разделителей.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, беря с каждого ровно 254 байта &#039;&#039;&#039;без обрезки хвостовых нулей&#039;&#039;&#039;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Построить таблицу переменных: &amp;lt;code&amp;gt;N = L2/4 + L3/4&amp;lt;/code&amp;gt;; для каждой позиции &#039;&#039;pos&#039;&#039; индекс равен &amp;lt;code&amp;gt;N − 1 − pos&amp;lt;/code&amp;gt;, тип берётся из флага; записи с установленным битом 0 флага по порядку сопоставляются записям таблицы 1.&lt;br /&gt;
# Для каждой записи строки: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# После &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;: если весь остаток текущего 254-байтового куска нулевой, перейти к началу следующего куска.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;, учитывая двухбайтовые глаголы с префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Перед разбором операндов учесть особые формы: у &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; два последних байта — указатель цепочки, у дисковых операторов первый байт — код &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;, у &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; первый байт — двоичная метка, у &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; — собственный формат.&lt;br /&gt;
&lt;br /&gt;
Обработку файла следует прекращать на &#039;&#039;&#039;первом&#039;&#039;&#039; встреченном секторе с маркером &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, а не доходить до конца выделенного диапазона: за control record могут лежать остатки предыдущей, более длинной версии файла.&lt;br /&gt;
&lt;br /&gt;
Число записей в таблицах 2 и 3 равно &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt; — запись в них вдвое короче, чем в таблице 1.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге. Дополнительная проверка — совпадение числа записей таблиц 2 и 3 с установленным битом 0 флага и числа записей таблицы 1 (&amp;lt;code&amp;gt;L1 / 8&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x1E–0x83, операнды 0xCA–0xFE, индексы переменных 0x00–0xC9&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу, имена не хранятся&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x31–0x33, 0x37–0x39, 0x3B–0x3E, 0x49, 0x4F, 0x5B, 0x60, 0x65, 0x67, 0x69–0x6C, 0x72, 0x73, 0x7F не занята в известной таблице.&lt;br /&gt;
# Имя оператора у глаголов &amp;lt;code&amp;gt;37&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;63&amp;lt;/code&amp;gt;, у подкода &amp;lt;code&amp;gt;06 00&amp;lt;/code&amp;gt; (вероятно &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt;) и &amp;lt;code&amp;gt;06 1C&amp;lt;/code&amp;gt; (вероятно &amp;lt;code&amp;gt;FRAME&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Распределение имён &amp;lt;code&amp;gt;SIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCSIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ARCCOS&amp;lt;/code&amp;gt; по свободным токенам &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;F9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FA&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FC&amp;lt;/code&amp;gt;: программ с тригонометрией, сохранённых сразу в обоих представлениях, в наборе нет.&lt;br /&gt;
# Смысл поля по смещению 4–5 записи таблицы 1 у скалярных символьных переменных: у массивов там число элементов, у скаляров значения образуют ряд с шагом около 6 в порядке объявления независимо от длин, что указывает скорее на указатель, чем на характеристику самой переменной.&lt;br /&gt;
# Смысл байта 3 записей таблиц 2 и 3, а также битов 7 и 3 флага.&lt;br /&gt;
# Смысл поля 0–1 записей таблиц 2 и 3 у переменных, имеющих дескриптор в таблице 1: это не адрес, а небольшое число, растущее примерно на восемь.&lt;br /&gt;
# Что кодирует токен &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; как второй аргумент функции &amp;lt;code&amp;gt;VAL&amp;lt;/code&amp;gt;: во всём наборе встречается только &amp;lt;code&amp;gt;VAL(x,2)&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Однобайтовый операнд у &amp;lt;code&amp;gt;AND(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OR(&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XOR(&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;43 03 15 DE F0&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;AND(A¤,F0)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;61 06 00 E8 01 D0 DE FF&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;OR(A¤(1),FF)&amp;lt;/code&amp;gt;. Похоже на шестнадцатеричную маску без &amp;lt;code&amp;gt;HEX()&amp;lt;/code&amp;gt;, но правило, по которому она отличается от ссылки на переменную, неизвестно.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов, встречающихся в указателе книги, но не найденных в наборе: &amp;lt;code&amp;gt;DATA SAVE DA END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MOVE END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COM CLEAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CLEAR N/P/V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST *&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST %&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LIST ¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные), &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (сохранён в обоих представлениях — 182 сектора, 1422 строки; основной материал для проверки структуры таблиц и таблицы токенов), &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; (защищённый и оттранслированный, с расчётами с плавающей точкой; материал для разбора формата констант и двузначности токенов), &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; (защищённый и оттранслированный; единственный образец с двумерным массивом), &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; (защищённый и оттранслированный, сокращённая версия той же программы; материал для разбора двухбайтовых глаголов), &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; (сохранён в обоих представлениях; единственный образец с оператором &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и непустой таблицей 3, а также с шестью двумерными массивами), &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; (защищённые и оттранслированные; материал для разбора условий появления дополнительных дескрипторов при &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; — единственный оттранслированный файл с заполненными адресами в таблице 1).&lt;br /&gt;
&lt;br /&gt;
Дамп &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; снят с удалённого файла, поэтому его целостность не гарантирована; выводы по нему опираются только на таблицу 1 и операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, взаимно согласованные по всем 23 объявленным переменным.&lt;br /&gt;
&lt;br /&gt;
Расшифрованный листинг &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; получен ранней версией инструментария и содержит дефект: в нём полностью отсутствует символ &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; (ноль вхождений при сотне вхождений &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;), из-за чего строки вида &amp;lt;code&amp;gt;IF N¤&amp;quot;????&amp;quot;THEN202&amp;lt;/code&amp;gt; выглядят без знака сравнения, хотя в токенах он есть (&amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;). Для сверки предпочтительны листинги &amp;lt;code&amp;gt;STAT0x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;M1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
При сверке представлений следует учитывать, что текстовая и оттранслированная копии одной программы на диске могут относиться к разным её версиям. В &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; текстовый листинг строки 240 содержит вызов &amp;lt;code&amp;gt;ABS&amp;lt;/code&amp;gt;, отсутствующий в оттранслированной копии, что подтверждается длиной оператора. У &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; расхождения версий заметны по номерам строк в &amp;lt;code&amp;gt;THEN&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Расширенный набор (2026): 51 оттранслированный файл и 28 текстовых листингов, в том числе 12 пар «текст + токены»: &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;M1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT001&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT01&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT02&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STAT09&amp;lt;/code&amp;gt;. Ключевые для этой статьи: &amp;lt;code&amp;gt;STAT04&amp;lt;/code&amp;gt; (константы, &amp;lt;code&amp;gt;#PI&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;STAT09&amp;lt;/code&amp;gt; (полный набор дисковых операторов), &amp;lt;code&amp;gt;VICT&amp;lt;/code&amp;gt; (единственная пара с целыми переменными), &amp;lt;code&amp;gt;M1&amp;lt;/code&amp;gt; (оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; (поведение &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;M4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;FAN01&amp;lt;/code&amp;gt; (графические операторы &amp;lt;code&amp;gt;DOT&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DDRAW&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;S1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GC121&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;IF END THEN&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;UDAW&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;RND&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4288</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4288"/>
		<updated>2026-08-12T20:59:54Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Запись каталога */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
Искра-226 поддерживает работу с двумя типами файлов: ПФ — «Программные файлы» и ФД — «Файлы данных». Программные файлы всегда содержат программу на Бейсике, в текстовом или упакованном токенизированном виде. Файлы данных, соответственно, данные, доступные из программ пользователя.&lt;br /&gt;
&lt;br /&gt;
В соответствии с документацией, Искра-226 поддерживает прямой доступ программ к секторам диска, при этом к записанным таким образом дискам всё нижеизложенное может быть неприменимо, так как форматом хранения полностью управляет программа пользователя по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
Также, в наличии имеется несколько системных дисков, на которых содержатся различные версии интерпретатора Бейсика, с которых производится начальная загрузка компьютера. Эти диски имеют свой формат и здесь не рассматриваются.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. &lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; наблюдались на дисковых образах (&amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; — у файла &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;, защищённого и оттранслированного одновременно), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; взято из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на четырёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; || 448 || 800 || 0 || 1254 || &amp;lt;code&amp;gt;10 % EDITOR.  ВЕРСИЯ 4.1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, которым нужен дескриптор размера&#039;&#039;&#039; — массивы и символьные переменные с явно заданной длиной. Оператор объявления при этом не важен: в таблицу попадают как переменные из &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, так и из &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; (аналог &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; для переменных, общих для нескольких программ). Числовые скаляры и символьные переменные с длиной по умолчанию в таблице 1 не описываются.&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; записей 13 при 10 переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;; лишние три — &amp;lt;code&amp;gt;C(14)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G(14)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N0¤21&amp;lt;/code&amp;gt;, объявленные в &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Запись — 8 байт:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || тип: &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; — символьная, &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; — числовая или целая&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || для массивов — число элементов, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || размерный код, младший байт первым&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размерный код равен &#039;&#039;&#039;&amp;lt;code&amp;gt;2 × размер элемента&amp;lt;/code&amp;gt;&#039;&#039;&#039;, а его младший бит означает, что длина была задана явно. Для числовых переменных код 16 (размер элемента 8 байт), для целых 4 (2 байта), для символьных &amp;lt;code&amp;gt;2 × длина + 1&amp;lt;/code&amp;gt;: длина 8 → 17, 64 → 129, 128 → 257, 253 → 507.&lt;br /&gt;
&lt;br /&gt;
Символьная переменная, объявленная без указания длины, получает длину по умолчанию 16 и &#039;&#039;&#039;чётный&#039;&#039;&#039; код 32. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; так объявлены &amp;lt;code&amp;gt;B6¤(400)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;B7¤(10)&amp;lt;/code&amp;gt;, у обоих код 32, тогда как у всех переменных с явной длиной в том же файле код нечётный и точен. Поэтому нечётность кода нельзя использовать как признак символьного типа — для этого служат байты 2–3.&lt;br /&gt;
&lt;br /&gt;
===== Двумерные массивы =====&lt;br /&gt;
&lt;br /&gt;
У двумерного массива вторая размерность записывается в байты 2–3, на место признака типа, а первая остаётся в поле числа элементов. Размерности &#039;&#039;&#039;не перемножаются&#039;&#039;&#039;, поэтому оператор &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; восстанавливается точно.&lt;br /&gt;
&lt;br /&gt;
Правило проверено на десяти массивах в четырёх файлах, включая &amp;lt;code&amp;gt;A(5,6)&amp;lt;/code&amp;gt; из &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; с двумя разными малыми размерностями. В &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; пять массивов вида &amp;lt;code&amp;gt;(2,99)&amp;lt;/code&amp;gt; дают в байтах 2–3 значение 99, а в поле числа элементов 2; контрольный &amp;lt;code&amp;gt;R(2,2)&amp;lt;/code&amp;gt; с равными размерностями даёт 2 и 2. Размер выделяемой памяти считается по общей формуле с перемножением размерностей: у &amp;lt;code&amp;gt;P(2,99)&amp;lt;/code&amp;gt; разность адресов равна 1590 = 2 × 99 × 8 + 6, у &amp;lt;code&amp;gt;R(2,2)&amp;lt;/code&amp;gt; — 38 = 2 × 2 × 8 + 6.&lt;br /&gt;
&lt;br /&gt;
Пример записи &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; из &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 00 00  08 00  07 00  10 00&lt;br /&gt;
&lt;br /&gt;
Байты 2–3 равны 8 (вторая размерность), байты 4–5 равны 7 (первая), размерный код 16 — числовая. Опознание надёжно: соседние записи таблицы содержат 13 и 8 элементов, а в тексте &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; вокруг &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; стоят &amp;lt;code&amp;gt;A(13)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E(8)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Практическое правило: если байты 2–3 не равны &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; и не &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt;, запись описывает двумерный массив, а в этих байтах лежит вторая размерность.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Как при двумерности кодируется тип переменной, установить не удалось: байты 2–3 заняты размерностью, и признака типа в записи не остаётся. Все восемь исследованных двумерных массивов числовые; символьный двумерный массив в материале не встретился.}}&lt;br /&gt;
&lt;br /&gt;
===== Порядок записей обратен порядку объявления =====&lt;br /&gt;
&lt;br /&gt;
Память под переменные выделяется &#039;&#039;&#039;сверху вниз&#039;&#039;&#039;, от верхней границы, а записи в таблице отсортированы по возрастанию адреса. Поэтому &#039;&#039;&#039;первая переменная в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; оказывается последней записью таблицы&#039;&#039;&#039;, и сопоставлять их нужно с конца.&lt;br /&gt;
&lt;br /&gt;
Проверено на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;: 7 операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявляют 50 переменных, L1 = 448 = 56 записей. При обратном сопоставлении разность адресов соседних записей совпадает с ожидаемым размером переменной &#039;&#039;&#039;у 44 из 50&#039;&#039;&#039; точно, а оставшиеся 6 расходятся ровно на 1 байт — это нечётные длины (&amp;lt;code&amp;gt;A¤1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;K¤253&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G¤19&amp;lt;/code&amp;gt;), округляемые вверх до чётной.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Адреса в таблице 1 могут быть нулевыми.&#039;&#039;&#039; В файле &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; все 11 записей имеют адрес &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;, поэтому любое правило, опирающееся на разность адресов соседних записей, там неприменимо. Разборщику следует проверять адреса на ненулевое значение перед использованием.&lt;br /&gt;
&lt;br /&gt;
Остальные поля при этом заполнены и корректны: обратный порядок относительно &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; сохраняется, размерный код точен для всех строковых переменных, у массива &amp;lt;code&amp;gt;K(9)&amp;lt;/code&amp;gt; число элементов равно 9.}}&lt;br /&gt;
&lt;br /&gt;
Размер выделяемой памяти:&lt;br /&gt;
&lt;br /&gt;
* скалярная символьная переменная — объявленная длина, округлённая вверх до чётной;&lt;br /&gt;
* массив — &amp;lt;code&amp;gt;N × размер элемента + 6&amp;lt;/code&amp;gt;, где 6 байт занимает дескриптор.&lt;br /&gt;
&lt;br /&gt;
Формула для массивов проверена на 20 массивах &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; без единого расхождения: &amp;lt;code&amp;gt;V¤(20)64&amp;lt;/code&amp;gt; → 1286, &amp;lt;code&amp;gt;S¤(48)64&amp;lt;/code&amp;gt; → 3078, &amp;lt;code&amp;gt;P%(300)&amp;lt;/code&amp;gt; → 606, &amp;lt;code&amp;gt;X(2)&amp;lt;/code&amp;gt; → 22.&lt;br /&gt;
&lt;br /&gt;
===== Таблица отражает состояние на момент сохранения =====&lt;br /&gt;
&lt;br /&gt;
Число записей может превышать число переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; записей 26 при 23 объявленных переменных, и три лишние стоят в области самых низких адресов, то есть выделены последними.&lt;br /&gt;
&lt;br /&gt;
Число элементов у лишних записей соответствует не тексту программы, а значению, которое переменная получила при выполнении: в &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; у всех трёх лишних записей это 300, тогда как в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявлено 200. Программа содержит оператор &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, переопределяющий размерности во время работы, поэтому таблица описывает состояние памяти на момент сохранения, а не исходный текст.&lt;br /&gt;
&lt;br /&gt;
Косвенное подтверждение: в токенах &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; файла &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; переменные &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;G¤&amp;lt;/code&amp;gt; получили индексы &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt;, тогда как все остальные — обычные значения подряд.&lt;br /&gt;
&lt;br /&gt;
Дополнительный дескриптор создаётся &#039;&#039;&#039;только тогда, когда массив вырастает за пределы исходного выделения&#039;&#039;&#039;. Если новый размер не превышает объявленного в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, память переиспользуется на месте и запись в таблице остаётся одна.&lt;br /&gt;
&lt;br /&gt;
Наиболее наглядно это видно в &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; переопределяет шесть массивов, а лишних записей три:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Массив !! Объявлено !! После переопределения !! Дескриптор&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X(100)&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G¤(100)5&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Q(5,100)&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D(6)&amp;lt;/code&amp;gt; || 6 || не больше 6 || нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E(5)&amp;lt;/code&amp;gt; || 5 || не больше 5 || нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;A(5,6)&amp;lt;/code&amp;gt; || 5, 6 || не больше 5 и 6 || нет&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Правило согласуется и с остальными файлами: в &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; из одиннадцати переопределяемых массивов выросли три, в &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; из четырёх — два, и столько же лишних записей в каждом случае.&lt;br /&gt;
&lt;br /&gt;
Если программа не выполнялась после загрузки, оператор &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; не отрабатывает и лишних записей нет вовсе: в &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; записей ровно шесть при шести переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; шесть записей таблицы 1 также не соответствуют ни одному &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;; их тип (&amp;lt;code&amp;gt;59 07&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;27 01&amp;lt;/code&amp;gt;) отличается от остальных, и связать их с конкретными переменными не удалось.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
Число записей — &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt;: длины в прологе даны в байтах, а запись занимает 4 байта, а не 8.&lt;br /&gt;
&lt;br /&gt;
Область скалярных переменных расположена ниже области массивов: в &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; адреса таблицы 2 занимают диапазон &amp;lt;code&amp;gt;E534&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;E68C&amp;lt;/code&amp;gt;, а первая запись таблицы 1 начинается с &amp;lt;code&amp;gt;E694&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таблица 2 содержит скалярные переменные, не описанные в таблице 1. Их адреса образуют ряд с шагом 8 — под числовой скаляр отводится 8 байт. Записи с нулевым адресом встречаются вперемешку с обычными; вероятно, это слоты, которым память не выделена.&lt;br /&gt;
&lt;br /&gt;
===== Таблица 3 и область COM =====&lt;br /&gt;
&lt;br /&gt;
Таблица 3 описывает скалярные переменные, объявленные оператором &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;. Во всех файлах, кроме &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt;, она пуста, поскольку &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; в них не используется.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; десять из тринадцати записей имеют адреса в диапазоне &amp;lt;code&amp;gt;FEB2&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;FF0A&amp;lt;/code&amp;gt; и соответствуют десяти скалярным переменным &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; в порядке объявления. Шаг адресов — 8 байт у числовых и 16 у символьных &amp;lt;code&amp;gt;N¤&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N1¤&amp;lt;/code&amp;gt;, объявленных без явной длины.&lt;br /&gt;
&lt;br /&gt;
Область &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; расположена выше области переменных &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; и смыкается с ней вплотную: описанная в таблице 1 переменная &amp;lt;code&amp;gt;N0¤21&amp;lt;/code&amp;gt; занимает 21 байт по адресу &amp;lt;code&amp;gt;FE9C&amp;lt;/code&amp;gt;, а первый скаляр &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; начинается с &amp;lt;code&amp;gt;FEB2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Оставшиеся три записи таблицы 3 имеют низкие адреса (&amp;lt;code&amp;gt;0014&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;000D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0005&amp;lt;/code&amp;gt;) и в эту схему не укладываются.&lt;br /&gt;
&lt;br /&gt;
===== Тип переменной во флаге =====&lt;br /&gt;
&lt;br /&gt;
Байт флага записей таблиц 2 и 3 несёт признак типа. В &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; у символьных &amp;lt;code&amp;gt;N¤&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N1¤&amp;lt;/code&amp;gt; флаг равен &amp;lt;code&amp;gt;A8&amp;lt;/code&amp;gt;, у соседних числовых скаляров — &amp;lt;code&amp;gt;98&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;18&amp;lt;/code&amp;gt;: символьные помечены битом 5, числовые битом 4.&lt;br /&gt;
&lt;br /&gt;
Наблюдение подтверждено на втором файле: в &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; символьная переменная &amp;lt;code&amp;gt;A¤&amp;lt;/code&amp;gt; имеет флаг &amp;lt;code&amp;gt;A8&amp;lt;/code&amp;gt; и занимает 16 байт, тогда как соседние числовые скаляры помечены &amp;lt;code&amp;gt;18&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;98&amp;lt;/code&amp;gt; и занимают по 8.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Кодировка целых переменных во флаге остаётся неизвестной: проверка на &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; соответствия между старшим битом флага и целым типом дала результат на уровне случайного совпадения.}}&lt;br /&gt;
&lt;br /&gt;
=== Индексы переменных и их имена ===&lt;br /&gt;
&lt;br /&gt;
Переменные адресуются в коде однобайтовым индексом. Индексы назначаются &#039;&#039;&#039;в порядке первого появления переменной в тексте программы&#039;&#039;&#039;, а не по алфавиту и не по типу.&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; делят единое пространство индексов: в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; занимает индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt;, а следующий за ним &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; продолжает с &amp;lt;code&amp;gt;0D&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Для переменных, объявленных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, это даёт прямое соответствие: операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют свои переменные подряд, в том же порядке, в каком они записаны в исходном тексте. В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; семь операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; занимают индексы &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;32&amp;lt;/code&amp;gt; непрерывно; индекс &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; достался переменной &amp;lt;code&amp;gt;R2%&amp;lt;/code&amp;gt;, встретившейся раньше — в строке 30, до первого &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;, где до &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; переменных не было, нумерация начинается с &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Имена переменных в оттранслированном файле не сохраняются.&#039;&#039;&#039; Таблицы содержат дескрипторы памяти — адрес, тип, размер, — но не имена.&lt;br /&gt;
&lt;br /&gt;
Проверка на &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;, где программа сохранена одновременно в текстовом и оттранслированном виде: сопоставление 866 общих строк дало однозначное имя для 146 индексов из 160, и ни одно поле таблиц с этими именами не коррелирует. В таблице 1 поле по смещению 4–5 совпадает у &amp;lt;code&amp;gt;Y¤4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Z¤253&amp;lt;/code&amp;gt; (72), у &amp;lt;code&amp;gt;D¤8&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Q5¤40&amp;lt;/code&amp;gt; (204); в таблице 2 последний байт записи совпадает у заведомо разных переменных (&amp;lt;code&amp;gt;D%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;I%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;J%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Это согласуется с назначением параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;: при выполнении имена не нужны, всё адресуется по индексу, а отказ от их хранения и даёт заявленную экономию места. Практическое следствие — &#039;&#039;&#039;читаемый листинг из оттранслированного файла восстановить нельзя&#039;&#039;&#039;. Восстанавливается структура программы, но переменные остаются безымянными, если не сохранилась текстовая версия того же исходника.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
==== Выравнивание в конце сектора ====&lt;br /&gt;
&lt;br /&gt;
Если до конца сектора остаётся слишком мало места, чтобы разместить трёхбайтовый заголовок очередной записи, остаток сектора заполняется нулями, а запись начинается с первого байта следующего сектора. Такие нули стоят &#039;&#039;&#039;после&#039;&#039;&#039; разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; и в длину записи не входят.&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (1422 строки) это встречается 9 раз, все — на позициях 248–251 от начала содержимого сектора. Разборщик, не учитывающий выравнивание, теряет синхронизацию именно в этих местах.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt; || RETURN CLEAR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt; || ON ERROR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (краткая форма REM) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51&amp;lt;/code&amp;gt; || RESTORE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;66&amp;lt;/code&amp;gt; || DATA LOAD BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;68&amp;lt;/code&amp;gt; || DATA SAVE BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6E&amp;lt;/code&amp;gt; || DATA SAVE BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; || DATA LOAD BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;71&amp;lt;/code&amp;gt; || DATA LOAD DA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;78&amp;lt;/code&amp;gt; || DATA SAVE DC OPEN T || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7C&amp;lt;/code&amp;gt; || LIST DC || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt; || LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; || SAVE DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Пометка «подтверждено» означает сверку с текстовым листингом той же программы. Основная часть подтверждений получена на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; автоматическим сопоставлением 866 общих строк: в строках, где число операторов в обоих представлениях совпало, первый глагол каждого оператора сверялся с первым словом соответствующего оператора текста. Так подтверждены 34 значения, включая &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; = GOTO (147 совпадений), &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; = PRINT (212), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; = IF (266).&lt;br /&gt;
&lt;br /&gt;
Отдельно стоит краткая форма комментария &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt;): она встречается в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; 122 раза против 7 у полного &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt;), и её операнд записывается сырым текстом без префикса &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; — так же, как у &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Двухбайтовые глаголы ===&lt;br /&gt;
&lt;br /&gt;
Матричные и графические операторы кодируются двумя байтами: префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; и подкодом. Длина операторной части следует за подкодом на обычном месте:&lt;br /&gt;
&lt;br /&gt;
 06 &amp;amp;lt;подкод&amp;amp;gt; &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;операнды&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий однобайтовый глагол, на таких строках теряет синхронизацию.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Подкод !! Оператор !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || MAT (присваивание) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || MAT REDIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤OPEN&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || DRAW || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt; || NPLOT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || LABEL || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤COPY&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Примеры из &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 02 19 E0 00 EB 09 D0 DE E0 01 EB 08 D0 DE …   MAT REDIM X(…),Y(…),…&lt;br /&gt;
 06 01 04 E0 07 D9 EF                             MAT S0=ZER&lt;br /&gt;
 06 19 08 E0 12 DE 26 DE E7 02 50                 NPLOT B6¤(),C1,250&lt;br /&gt;
 06 1F 06 DC DE 14 DE E0 12                       ¤COPY /14,B6¤()&lt;br /&gt;
&lt;br /&gt;
В матричном присваивании &amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; в позиции операнда означает &amp;lt;code&amp;gt;ZER&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В операторе &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; размерности массива, в отличие от обращения к элементу, заключаются в &#039;&#039;&#039;явную&#039;&#039;&#039; открывающую скобку &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt;, а между собой разделяются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Длина элемента символьного массива указывается после закрывающей скобки:&lt;br /&gt;
&lt;br /&gt;
 E0 02 EB 0E DE 0D D0        Q(M1,N)   — двумерный&lt;br /&gt;
 E0 05 EB 0E DE 0F D0        A(M1,M2)&lt;br /&gt;
 E0 01 EB 0D D0 E8 05        G¤(N)5    — длина элемента после скобки&lt;br /&gt;
&lt;br /&gt;
==== Пропущенные параметры ====&lt;br /&gt;
&lt;br /&gt;
Пропущенный параметр не кодируется ничем: между разделителями &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; просто нет операнда. Оператор &amp;lt;code&amp;gt;LABEL B6¤(),,,B3¤(1)&amp;lt;/code&amp;gt; с тремя пропущенными параметрами даёт три подряд идущих &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 1E 09 E0 12 DE DE DE 11 E8 01 D0&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; || GOSUB в составе &amp;lt;code&amp;gt;ON … GOSUB&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; || GOTO в составе &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || остальные знаки сравнения || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; в позиции операции, ссылка на массив целиком в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E1&amp;lt;/code&amp;gt; || функция &amp;lt;code&amp;gt;STR&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || число с фиксированной точкой, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || число с порядком, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, бинарный или унарный || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ABS(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INT(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SQR(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LOG(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Двузначность токенов старшей половины ===&lt;br /&gt;
&lt;br /&gt;
Часть токенов диапазона &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; читается по-разному в зависимости от того, ожидается ли на их месте знак операции или очередной операнд. Интерпретатор различает их по состоянию разбора, отдельного признака в файле нет.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! В позиции операции !! В позиции операнда&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; бинарный || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; унарный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; || ссылка на массив целиком&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ссылка на массив целиком записывается как &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; и порядковый номер переменной в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;74 02 E0 09&amp;lt;/code&amp;gt; соответствует &amp;lt;code&amp;gt;DATA LOAD DC G¤()&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;E0 09 D1 E0 00&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;G¤()TOX()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Каждое прочтение подтверждено не менее чем двумя независимыми строками &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;TAB(17)&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;DF E8 17 D0&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;.5*LOG(&amp;lt;/code&amp;gt; — как &amp;lt;code&amp;gt;E5 01 50 DF F7&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K(1)&amp;amp;lt;&amp;amp;gt;1&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;PRINT AT(9,10)&amp;lt;/code&amp;gt; оба дают &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K0*(-1)&amp;lt;/code&amp;gt; даёт &amp;lt;code&amp;gt;DF EB E9 E8 01 D0&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; стоит в позиции операнда.&lt;br /&gt;
&lt;br /&gt;
Разборщик с одним фиксированным значением на токен на таких строках даёт неверный листинг, поэтому таблицу операндов нужно применять с учётом позиции.&lt;br /&gt;
&lt;br /&gt;
У дисковых операторов (&amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;) первый операнд — идентификатор дисковода: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; означает &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;. Тот же байт завершает операнды &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; и адресацию устройства в &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;54 03 0A 18 01&amp;lt;/code&amp;gt; соответствует &amp;lt;code&amp;gt;SELECT DISK18R&amp;lt;/code&amp;gt;, где за подкодом устройства следуют адрес и идентификатор дисковода.&lt;br /&gt;
&lt;br /&gt;
=== Числовые константы ===&lt;br /&gt;
&lt;br /&gt;
Целые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999).&lt;br /&gt;
&lt;br /&gt;
Для дробных чисел служат токены &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;. За токеном следует байт-описатель, затем цифры числа в BCD по две на байт; если цифр нечётное число, последняя тетрада заполняется нулём. В описателе &#039;&#039;&#039;старшая тетрада — количество цифр до запятой, младшая — общее количество цифр&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Запись !! Байты !! Описатель !! Цифры&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 01 50&amp;lt;/code&amp;gt; || 0 / 1 || 5&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.08&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 02 08&amp;lt;/code&amp;gt; || 0 / 2 || 08&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 12 25&amp;lt;/code&amp;gt; || 1 / 2 || 25&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.196854&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 19 68 54&amp;lt;/code&amp;gt; || 0 / 6 || 196854&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.000344&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 00 03 44&amp;lt;/code&amp;gt; || 0 / 6 || 000344&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; устроен так же, но после цифр мантиссы идёт дополнительный байт порядка: &amp;lt;code&amp;gt;1E6&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;E6 11 10 06&amp;lt;/code&amp;gt; — одна цифра мантиссы, одна цифра до запятой, порядок 6.&lt;br /&gt;
&lt;br /&gt;
Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Подпрограммы с параметрами ===&lt;br /&gt;
&lt;br /&gt;
Аргументы &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; следуют сразу за байтом метки и разделяются токеном &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;; скобки не кодируются. Вызов &amp;lt;code&amp;gt;GOSUB &#039; 5(1,1,N-2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 23 0B 05 E8 01 DE E8 01 DE 0D E9 E8 02&lt;br /&gt;
&lt;br /&gt;
Объявление &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; содержит метку, четыре нулевых байта и индексы формальных параметров. Нули, по-видимому, отведены под адрес возврата, заполняемый при выполнении. Объявление &amp;lt;code&amp;gt;DEFFN &#039; 5(N1,D1,D2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 27 08 05 00 00 00 00 12 20 21&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; кодируется как индекс переменной, токен &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; и номера строк по два байта BCD подряд без разделителей.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# После &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; пропустить нулевые байты выравнивания, если следующая запись не помещалась в остаток сектора.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обработку файла следует прекращать на &#039;&#039;&#039;первом&#039;&#039;&#039; встреченном секторе с маркером &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, а не доходить до конца выделенного диапазона: за control record могут лежать остатки предыдущей, более длинной версии файла.&lt;br /&gt;
&lt;br /&gt;
Число записей в таблицах 2 и 3 равно &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt; — запись в них вдвое короче, чем в таблице 1.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу, имена не хранятся&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x31–0x33, 0x37–0x3E, 0x49, 0x4F, 0x5B, 0x60, 0x63, 0x65, 0x67, 0x69–0x6C, 0x72, 0x73, 0x76–0x78, 0x7C, 0x7F, 0x82 не занята в известной таблице.&lt;br /&gt;
# Смысл поля по смещению 4–5 записи таблицы 1 у скалярных переменных: у массивов там число элементов, у скаляров значения повторяются у разных переменных и с именем не связаны. В &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; у десяти скалярных строк это поле образует убывающую последовательность с шагом 6 в порядке объявления (205, 200, 194, 188, …, 152) независимо от их длин, что указывает скорее на указатель, чем на характеристику самой переменной.&lt;br /&gt;
# Кодировка целого типа во флаге записей таблиц 2 и 3: символьный и числовой типы различаются битами 5 и 4, признак целого не найден.&lt;br /&gt;
# Три записи таблицы 3 в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; с низкими адресами, не соответствующие ни одной переменной &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Шесть записей таблицы 1 в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; с типами &amp;lt;code&amp;gt;59 07&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;27 01&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Кодировка типа переменной у двумерных массивов: байты 2–3 заняты второй размерностью, признака типа в записи не остаётся. Символьный двумерный массив в материале не встретился.&lt;br /&gt;
# Причина, по которой отдельные переменные получают в токенах &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; индексы из диапазона &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; и выше.&lt;br /&gt;
# Полный перечень подкодов двухбайтовых глаголов с префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Точное соответствие индексов переменных записям таблицы 2.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные), &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (сохранён в обоих представлениях — 182 сектора, 1422 строки; основной материал для проверки структуры таблиц и таблицы токенов), &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; (защищённый и оттранслированный, с расчётами с плавающей точкой; материал для разбора формата констант и двузначности токенов), &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; (защищённый и оттранслированный; единственный образец с двумерным массивом), &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; (защищённый и оттранслированный, сокращённая версия той же программы; материал для разбора двухбайтовых глаголов), &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; (сохранён в обоих представлениях; единственный образец с оператором &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и непустой таблицей 3, а также с шестью двумерными массивами), &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; (защищённые и оттранслированные; материал для разбора условий появления дополнительных дескрипторов при &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; — единственный оттранслированный файл с заполненными адресами в таблице 1).&lt;br /&gt;
&lt;br /&gt;
Дамп &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; снят с удалённого файла, поэтому его целостность не гарантирована; выводы по нему опираются только на таблицу 1 и операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, взаимно согласованные по всем 23 объявленным переменным.&lt;br /&gt;
&lt;br /&gt;
При сверке представлений следует учитывать, что текстовая и оттранслированная копии одной программы на диске могут относиться к разным её версиям. В &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; текстовый листинг строки 240 содержит вызов &amp;lt;code&amp;gt;ABS&amp;lt;/code&amp;gt;, отсутствующий в оттранслированной копии, что подтверждается длиной оператора.&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4287</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4287"/>
		<updated>2026-08-12T20:06:48Z</updated>

		<summary type="html">&lt;p&gt;Panther: update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
Искра-226 поддерживает работу с двумя типами файлов: ПФ — «Программные файлы» и ФД — «Файлы данных». Программные файлы всегда содержат программу на Бейсике, в текстовом или упакованном токенизированном виде. Файлы данных, соответственно, данные, доступные из программ пользователя.&lt;br /&gt;
&lt;br /&gt;
В соответствии с документацией, Искра-226 поддерживает прямой доступ программ к секторам диска, при этом к записанным таким образом дискам всё нижеизложенное может быть неприменимо, так как форматом хранения полностью управляет программа пользователя по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
Также, в наличии имеется несколько системных дисков, на которых содержатся различные версии интерпретатора Бейсика, с которых производится начальная загрузка компьютера. Эти диски имеют свой формат и здесь не рассматриваются.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. Номер сектора указателя, в который попадает имя файла, вычисляется функцией от самого имени, поэтому порядок имён в указателе не совпадает с порядком размещения файлов в области каталога.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; наблюдались на дисковых образах (&amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; — у файла &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;, защищённого и оттранслированного одновременно), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; взято из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на четырёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; || 448 || 800 || 0 || 1254 || &amp;lt;code&amp;gt;10 % EDITOR.  ВЕРСИЯ 4.1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, которым нужен дескриптор размера&#039;&#039;&#039; — массивы и символьные переменные с явно заданной длиной. Оператор объявления при этом не важен: в таблицу попадают как переменные из &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, так и из &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; (аналог &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; для переменных, общих для нескольких программ). Числовые скаляры и символьные переменные с длиной по умолчанию в таблице 1 не описываются.&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; записей 13 при 10 переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;; лишние три — &amp;lt;code&amp;gt;C(14)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G(14)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N0¤21&amp;lt;/code&amp;gt;, объявленные в &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Запись — 8 байт:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || тип: &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; — символьная, &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; — числовая или целая&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || для массивов — число элементов, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || размерный код, младший байт первым&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размерный код равен &#039;&#039;&#039;&amp;lt;code&amp;gt;2 × размер элемента&amp;lt;/code&amp;gt;&#039;&#039;&#039;, а его младший бит означает, что длина была задана явно. Для числовых переменных код 16 (размер элемента 8 байт), для целых 4 (2 байта), для символьных &amp;lt;code&amp;gt;2 × длина + 1&amp;lt;/code&amp;gt;: длина 8 → 17, 64 → 129, 128 → 257, 253 → 507.&lt;br /&gt;
&lt;br /&gt;
Символьная переменная, объявленная без указания длины, получает длину по умолчанию 16 и &#039;&#039;&#039;чётный&#039;&#039;&#039; код 32. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; так объявлены &amp;lt;code&amp;gt;B6¤(400)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;B7¤(10)&amp;lt;/code&amp;gt;, у обоих код 32, тогда как у всех переменных с явной длиной в том же файле код нечётный и точен. Поэтому нечётность кода нельзя использовать как признак символьного типа — для этого служат байты 2–3.&lt;br /&gt;
&lt;br /&gt;
===== Двумерные массивы =====&lt;br /&gt;
&lt;br /&gt;
У двумерного массива вторая размерность записывается в байты 2–3, на место признака типа, а первая остаётся в поле числа элементов. Размерности &#039;&#039;&#039;не перемножаются&#039;&#039;&#039;, поэтому оператор &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; восстанавливается точно.&lt;br /&gt;
&lt;br /&gt;
Правило проверено на десяти массивах в четырёх файлах, включая &amp;lt;code&amp;gt;A(5,6)&amp;lt;/code&amp;gt; из &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; с двумя разными малыми размерностями. В &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; пять массивов вида &amp;lt;code&amp;gt;(2,99)&amp;lt;/code&amp;gt; дают в байтах 2–3 значение 99, а в поле числа элементов 2; контрольный &amp;lt;code&amp;gt;R(2,2)&amp;lt;/code&amp;gt; с равными размерностями даёт 2 и 2. Размер выделяемой памяти считается по общей формуле с перемножением размерностей: у &amp;lt;code&amp;gt;P(2,99)&amp;lt;/code&amp;gt; разность адресов равна 1590 = 2 × 99 × 8 + 6, у &amp;lt;code&amp;gt;R(2,2)&amp;lt;/code&amp;gt; — 38 = 2 × 2 × 8 + 6.&lt;br /&gt;
&lt;br /&gt;
Пример записи &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; из &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 00 00  08 00  07 00  10 00&lt;br /&gt;
&lt;br /&gt;
Байты 2–3 равны 8 (вторая размерность), байты 4–5 равны 7 (первая), размерный код 16 — числовая. Опознание надёжно: соседние записи таблицы содержат 13 и 8 элементов, а в тексте &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; вокруг &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; стоят &amp;lt;code&amp;gt;A(13)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E(8)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Практическое правило: если байты 2–3 не равны &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; и не &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt;, запись описывает двумерный массив, а в этих байтах лежит вторая размерность.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Как при двумерности кодируется тип переменной, установить не удалось: байты 2–3 заняты размерностью, и признака типа в записи не остаётся. Все восемь исследованных двумерных массивов числовые; символьный двумерный массив в материале не встретился.}}&lt;br /&gt;
&lt;br /&gt;
===== Порядок записей обратен порядку объявления =====&lt;br /&gt;
&lt;br /&gt;
Память под переменные выделяется &#039;&#039;&#039;сверху вниз&#039;&#039;&#039;, от верхней границы, а записи в таблице отсортированы по возрастанию адреса. Поэтому &#039;&#039;&#039;первая переменная в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; оказывается последней записью таблицы&#039;&#039;&#039;, и сопоставлять их нужно с конца.&lt;br /&gt;
&lt;br /&gt;
Проверено на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;: 7 операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявляют 50 переменных, L1 = 448 = 56 записей. При обратном сопоставлении разность адресов соседних записей совпадает с ожидаемым размером переменной &#039;&#039;&#039;у 44 из 50&#039;&#039;&#039; точно, а оставшиеся 6 расходятся ровно на 1 байт — это нечётные длины (&amp;lt;code&amp;gt;A¤1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;K¤253&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G¤19&amp;lt;/code&amp;gt;), округляемые вверх до чётной.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Адреса в таблице 1 могут быть нулевыми.&#039;&#039;&#039; В файле &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; все 11 записей имеют адрес &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;, поэтому любое правило, опирающееся на разность адресов соседних записей, там неприменимо. Разборщику следует проверять адреса на ненулевое значение перед использованием.&lt;br /&gt;
&lt;br /&gt;
Остальные поля при этом заполнены и корректны: обратный порядок относительно &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; сохраняется, размерный код точен для всех строковых переменных, у массива &amp;lt;code&amp;gt;K(9)&amp;lt;/code&amp;gt; число элементов равно 9.}}&lt;br /&gt;
&lt;br /&gt;
Размер выделяемой памяти:&lt;br /&gt;
&lt;br /&gt;
* скалярная символьная переменная — объявленная длина, округлённая вверх до чётной;&lt;br /&gt;
* массив — &amp;lt;code&amp;gt;N × размер элемента + 6&amp;lt;/code&amp;gt;, где 6 байт занимает дескриптор.&lt;br /&gt;
&lt;br /&gt;
Формула для массивов проверена на 20 массивах &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; без единого расхождения: &amp;lt;code&amp;gt;V¤(20)64&amp;lt;/code&amp;gt; → 1286, &amp;lt;code&amp;gt;S¤(48)64&amp;lt;/code&amp;gt; → 3078, &amp;lt;code&amp;gt;P%(300)&amp;lt;/code&amp;gt; → 606, &amp;lt;code&amp;gt;X(2)&amp;lt;/code&amp;gt; → 22.&lt;br /&gt;
&lt;br /&gt;
===== Таблица отражает состояние на момент сохранения =====&lt;br /&gt;
&lt;br /&gt;
Число записей может превышать число переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; записей 26 при 23 объявленных переменных, и три лишние стоят в области самых низких адресов, то есть выделены последними.&lt;br /&gt;
&lt;br /&gt;
Число элементов у лишних записей соответствует не тексту программы, а значению, которое переменная получила при выполнении: в &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; у всех трёх лишних записей это 300, тогда как в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявлено 200. Программа содержит оператор &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, переопределяющий размерности во время работы, поэтому таблица описывает состояние памяти на момент сохранения, а не исходный текст.&lt;br /&gt;
&lt;br /&gt;
Косвенное подтверждение: в токенах &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; файла &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; переменные &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;G¤&amp;lt;/code&amp;gt; получили индексы &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt;, тогда как все остальные — обычные значения подряд.&lt;br /&gt;
&lt;br /&gt;
Дополнительный дескриптор создаётся &#039;&#039;&#039;только тогда, когда массив вырастает за пределы исходного выделения&#039;&#039;&#039;. Если новый размер не превышает объявленного в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, память переиспользуется на месте и запись в таблице остаётся одна.&lt;br /&gt;
&lt;br /&gt;
Наиболее наглядно это видно в &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; переопределяет шесть массивов, а лишних записей три:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Массив !! Объявлено !! После переопределения !! Дескриптор&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X(100)&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G¤(100)5&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Q(5,100)&amp;lt;/code&amp;gt; || 100 || 300 || добавлен&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D(6)&amp;lt;/code&amp;gt; || 6 || не больше 6 || нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E(5)&amp;lt;/code&amp;gt; || 5 || не больше 5 || нет&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;A(5,6)&amp;lt;/code&amp;gt; || 5, 6 || не больше 5 и 6 || нет&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Правило согласуется и с остальными файлами: в &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; из одиннадцати переопределяемых массивов выросли три, в &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; из четырёх — два, и столько же лишних записей в каждом случае.&lt;br /&gt;
&lt;br /&gt;
Если программа не выполнялась после загрузки, оператор &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; не отрабатывает и лишних записей нет вовсе: в &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; записей ровно шесть при шести переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; шесть записей таблицы 1 также не соответствуют ни одному &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;; их тип (&amp;lt;code&amp;gt;59 07&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;27 01&amp;lt;/code&amp;gt;) отличается от остальных, и связать их с конкретными переменными не удалось.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
Число записей — &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt;: длины в прологе даны в байтах, а запись занимает 4 байта, а не 8.&lt;br /&gt;
&lt;br /&gt;
Область скалярных переменных расположена ниже области массивов: в &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; адреса таблицы 2 занимают диапазон &amp;lt;code&amp;gt;E534&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;E68C&amp;lt;/code&amp;gt;, а первая запись таблицы 1 начинается с &amp;lt;code&amp;gt;E694&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таблица 2 содержит скалярные переменные, не описанные в таблице 1. Их адреса образуют ряд с шагом 8 — под числовой скаляр отводится 8 байт. Записи с нулевым адресом встречаются вперемешку с обычными; вероятно, это слоты, которым память не выделена.&lt;br /&gt;
&lt;br /&gt;
===== Таблица 3 и область COM =====&lt;br /&gt;
&lt;br /&gt;
Таблица 3 описывает скалярные переменные, объявленные оператором &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;. Во всех файлах, кроме &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt;, она пуста, поскольку &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; в них не используется.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; десять из тринадцати записей имеют адреса в диапазоне &amp;lt;code&amp;gt;FEB2&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;FF0A&amp;lt;/code&amp;gt; и соответствуют десяти скалярным переменным &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; в порядке объявления. Шаг адресов — 8 байт у числовых и 16 у символьных &amp;lt;code&amp;gt;N¤&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N1¤&amp;lt;/code&amp;gt;, объявленных без явной длины.&lt;br /&gt;
&lt;br /&gt;
Область &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; расположена выше области переменных &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; и смыкается с ней вплотную: описанная в таблице 1 переменная &amp;lt;code&amp;gt;N0¤21&amp;lt;/code&amp;gt; занимает 21 байт по адресу &amp;lt;code&amp;gt;FE9C&amp;lt;/code&amp;gt;, а первый скаляр &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; начинается с &amp;lt;code&amp;gt;FEB2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Оставшиеся три записи таблицы 3 имеют низкие адреса (&amp;lt;code&amp;gt;0014&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;000D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0005&amp;lt;/code&amp;gt;) и в эту схему не укладываются.&lt;br /&gt;
&lt;br /&gt;
===== Тип переменной во флаге =====&lt;br /&gt;
&lt;br /&gt;
Байт флага записей таблиц 2 и 3 несёт признак типа. В &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; у символьных &amp;lt;code&amp;gt;N¤&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;N1¤&amp;lt;/code&amp;gt; флаг равен &amp;lt;code&amp;gt;A8&amp;lt;/code&amp;gt;, у соседних числовых скаляров — &amp;lt;code&amp;gt;98&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;18&amp;lt;/code&amp;gt;: символьные помечены битом 5, числовые битом 4.&lt;br /&gt;
&lt;br /&gt;
Наблюдение подтверждено на втором файле: в &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; символьная переменная &amp;lt;code&amp;gt;A¤&amp;lt;/code&amp;gt; имеет флаг &amp;lt;code&amp;gt;A8&amp;lt;/code&amp;gt; и занимает 16 байт, тогда как соседние числовые скаляры помечены &amp;lt;code&amp;gt;18&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;98&amp;lt;/code&amp;gt; и занимают по 8.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Кодировка целых переменных во флаге остаётся неизвестной: проверка на &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; соответствия между старшим битом флага и целым типом дала результат на уровне случайного совпадения.}}&lt;br /&gt;
&lt;br /&gt;
=== Индексы переменных и их имена ===&lt;br /&gt;
&lt;br /&gt;
Переменные адресуются в коде однобайтовым индексом. Индексы назначаются &#039;&#039;&#039;в порядке первого появления переменной в тексте программы&#039;&#039;&#039;, а не по алфавиту и не по типу.&lt;br /&gt;
&lt;br /&gt;
Операторы &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; делят единое пространство индексов: в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; оператор &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; занимает индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt;, а следующий за ним &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; продолжает с &amp;lt;code&amp;gt;0D&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Для переменных, объявленных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, это даёт прямое соответствие: операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют свои переменные подряд, в том же порядке, в каком они записаны в исходном тексте. В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; семь операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; занимают индексы &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;32&amp;lt;/code&amp;gt; непрерывно; индекс &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; достался переменной &amp;lt;code&amp;gt;R2%&amp;lt;/code&amp;gt;, встретившейся раньше — в строке 30, до первого &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;, где до &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; переменных не было, нумерация начинается с &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Имена переменных в оттранслированном файле не сохраняются.&#039;&#039;&#039; Таблицы содержат дескрипторы памяти — адрес, тип, размер, — но не имена.&lt;br /&gt;
&lt;br /&gt;
Проверка на &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;, где программа сохранена одновременно в текстовом и оттранслированном виде: сопоставление 866 общих строк дало однозначное имя для 146 индексов из 160, и ни одно поле таблиц с этими именами не коррелирует. В таблице 1 поле по смещению 4–5 совпадает у &amp;lt;code&amp;gt;Y¤4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Z¤253&amp;lt;/code&amp;gt; (72), у &amp;lt;code&amp;gt;D¤8&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Q5¤40&amp;lt;/code&amp;gt; (204); в таблице 2 последний байт записи совпадает у заведомо разных переменных (&amp;lt;code&amp;gt;D%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;I%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;J%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Это согласуется с назначением параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;: при выполнении имена не нужны, всё адресуется по индексу, а отказ от их хранения и даёт заявленную экономию места. Практическое следствие — &#039;&#039;&#039;читаемый листинг из оттранслированного файла восстановить нельзя&#039;&#039;&#039;. Восстанавливается структура программы, но переменные остаются безымянными, если не сохранилась текстовая версия того же исходника.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
==== Выравнивание в конце сектора ====&lt;br /&gt;
&lt;br /&gt;
Если до конца сектора остаётся слишком мало места, чтобы разместить трёхбайтовый заголовок очередной записи, остаток сектора заполняется нулями, а запись начинается с первого байта следующего сектора. Такие нули стоят &#039;&#039;&#039;после&#039;&#039;&#039; разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; и в длину записи не входят.&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (1422 строки) это встречается 9 раз, все — на позициях 248–251 от начала содержимого сектора. Разборщик, не учитывающий выравнивание, теряет синхронизацию именно в этих местах.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt; || RETURN CLEAR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt; || ON ERROR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (краткая форма REM) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51&amp;lt;/code&amp;gt; || RESTORE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;66&amp;lt;/code&amp;gt; || DATA LOAD BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;68&amp;lt;/code&amp;gt; || DATA SAVE BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6E&amp;lt;/code&amp;gt; || DATA SAVE BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; || DATA LOAD BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;71&amp;lt;/code&amp;gt; || DATA LOAD DA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;78&amp;lt;/code&amp;gt; || DATA SAVE DC OPEN T || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7C&amp;lt;/code&amp;gt; || LIST DC || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt; || LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; || SAVE DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Пометка «подтверждено» означает сверку с текстовым листингом той же программы. Основная часть подтверждений получена на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; автоматическим сопоставлением 866 общих строк: в строках, где число операторов в обоих представлениях совпало, первый глагол каждого оператора сверялся с первым словом соответствующего оператора текста. Так подтверждены 34 значения, включая &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; = GOTO (147 совпадений), &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; = PRINT (212), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; = IF (266).&lt;br /&gt;
&lt;br /&gt;
Отдельно стоит краткая форма комментария &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt;): она встречается в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; 122 раза против 7 у полного &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt;), и её операнд записывается сырым текстом без префикса &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; — так же, как у &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Двухбайтовые глаголы ===&lt;br /&gt;
&lt;br /&gt;
Матричные и графические операторы кодируются двумя байтами: префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt; и подкодом. Длина операторной части следует за подкодом на обычном месте:&lt;br /&gt;
&lt;br /&gt;
 06 &amp;amp;lt;подкод&amp;amp;gt; &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;операнды&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий однобайтовый глагол, на таких строках теряет синхронизацию.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Подкод !! Оператор !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; || MAT (присваивание) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || MAT REDIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤OPEN&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || DRAW || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;19&amp;lt;/code&amp;gt; || NPLOT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1E&amp;lt;/code&amp;gt; || LABEL || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤COPY&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Примеры из &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 02 19 E0 00 EB 09 D0 DE E0 01 EB 08 D0 DE …   MAT REDIM X(…),Y(…),…&lt;br /&gt;
 06 01 04 E0 07 D9 EF                             MAT S0=ZER&lt;br /&gt;
 06 19 08 E0 12 DE 26 DE E7 02 50                 NPLOT B6¤(),C1,250&lt;br /&gt;
 06 1F 06 DC DE 14 DE E0 12                       ¤COPY /14,B6¤()&lt;br /&gt;
&lt;br /&gt;
В матричном присваивании &amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; в позиции операнда означает &amp;lt;code&amp;gt;ZER&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В операторе &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt; размерности массива, в отличие от обращения к элементу, заключаются в &#039;&#039;&#039;явную&#039;&#039;&#039; открывающую скобку &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt;, а между собой разделяются &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;. Длина элемента символьного массива указывается после закрывающей скобки:&lt;br /&gt;
&lt;br /&gt;
 E0 02 EB 0E DE 0D D0        Q(M1,N)   — двумерный&lt;br /&gt;
 E0 05 EB 0E DE 0F D0        A(M1,M2)&lt;br /&gt;
 E0 01 EB 0D D0 E8 05        G¤(N)5    — длина элемента после скобки&lt;br /&gt;
&lt;br /&gt;
==== Пропущенные параметры ====&lt;br /&gt;
&lt;br /&gt;
Пропущенный параметр не кодируется ничем: между разделителями &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; просто нет операнда. Оператор &amp;lt;code&amp;gt;LABEL B6¤(),,,B3¤(1)&amp;lt;/code&amp;gt; с тремя пропущенными параметрами даёт три подряд идущих &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 06 1E 09 E0 12 DE DE DE 11 E8 01 D0&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; || GOSUB в составе &amp;lt;code&amp;gt;ON … GOSUB&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; || GOTO в составе &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || остальные знаки сравнения || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; в позиции операции, ссылка на массив целиком в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E1&amp;lt;/code&amp;gt; || функция &amp;lt;code&amp;gt;STR&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || число с фиксированной точкой, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || число с порядком, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, бинарный или унарный || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ABS(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INT(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SQR(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LOG(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Двузначность токенов старшей половины ===&lt;br /&gt;
&lt;br /&gt;
Часть токенов диапазона &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; читается по-разному в зависимости от того, ожидается ли на их месте знак операции или очередной операнд. Интерпретатор различает их по состоянию разбора, отдельного признака в файле нет.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! В позиции операции !! В позиции операнда&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; бинарный || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; унарный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; || ссылка на массив целиком&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ссылка на массив целиком записывается как &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; и порядковый номер переменной в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;74 02 E0 09&amp;lt;/code&amp;gt; соответствует &amp;lt;code&amp;gt;DATA LOAD DC G¤()&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;E0 09 D1 E0 00&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;G¤()TOX()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Каждое прочтение подтверждено не менее чем двумя независимыми строками &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;TAB(17)&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;DF E8 17 D0&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;.5*LOG(&amp;lt;/code&amp;gt; — как &amp;lt;code&amp;gt;E5 01 50 DF F7&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K(1)&amp;amp;lt;&amp;amp;gt;1&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;PRINT AT(9,10)&amp;lt;/code&amp;gt; оба дают &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K0*(-1)&amp;lt;/code&amp;gt; даёт &amp;lt;code&amp;gt;DF EB E9 E8 01 D0&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; стоит в позиции операнда.&lt;br /&gt;
&lt;br /&gt;
Разборщик с одним фиксированным значением на токен на таких строках даёт неверный листинг, поэтому таблицу операндов нужно применять с учётом позиции.&lt;br /&gt;
&lt;br /&gt;
У дисковых операторов (&amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;) первый операнд — идентификатор дисковода: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; означает &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;. Тот же байт завершает операнды &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; и адресацию устройства в &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;54 03 0A 18 01&amp;lt;/code&amp;gt; соответствует &amp;lt;code&amp;gt;SELECT DISK18R&amp;lt;/code&amp;gt;, где за подкодом устройства следуют адрес и идентификатор дисковода.&lt;br /&gt;
&lt;br /&gt;
=== Числовые константы ===&lt;br /&gt;
&lt;br /&gt;
Целые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999).&lt;br /&gt;
&lt;br /&gt;
Для дробных чисел служат токены &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;. За токеном следует байт-описатель, затем цифры числа в BCD по две на байт; если цифр нечётное число, последняя тетрада заполняется нулём. В описателе &#039;&#039;&#039;старшая тетрада — количество цифр до запятой, младшая — общее количество цифр&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Запись !! Байты !! Описатель !! Цифры&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 01 50&amp;lt;/code&amp;gt; || 0 / 1 || 5&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.08&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 02 08&amp;lt;/code&amp;gt; || 0 / 2 || 08&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 12 25&amp;lt;/code&amp;gt; || 1 / 2 || 25&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.196854&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 19 68 54&amp;lt;/code&amp;gt; || 0 / 6 || 196854&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.000344&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 00 03 44&amp;lt;/code&amp;gt; || 0 / 6 || 000344&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; устроен так же, но после цифр мантиссы идёт дополнительный байт порядка: &amp;lt;code&amp;gt;1E6&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;E6 11 10 06&amp;lt;/code&amp;gt; — одна цифра мантиссы, одна цифра до запятой, порядок 6.&lt;br /&gt;
&lt;br /&gt;
Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Подпрограммы с параметрами ===&lt;br /&gt;
&lt;br /&gt;
Аргументы &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; следуют сразу за байтом метки и разделяются токеном &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;; скобки не кодируются. Вызов &amp;lt;code&amp;gt;GOSUB &#039; 5(1,1,N-2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 23 0B 05 E8 01 DE E8 01 DE 0D E9 E8 02&lt;br /&gt;
&lt;br /&gt;
Объявление &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; содержит метку, четыре нулевых байта и индексы формальных параметров. Нули, по-видимому, отведены под адрес возврата, заполняемый при выполнении. Объявление &amp;lt;code&amp;gt;DEFFN &#039; 5(N1,D1,D2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 27 08 05 00 00 00 00 12 20 21&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; кодируется как индекс переменной, токен &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; и номера строк по два байта BCD подряд без разделителей.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# После &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; пропустить нулевые байты выравнивания, если следующая запись не помещалась в остаток сектора.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обработку файла следует прекращать на &#039;&#039;&#039;первом&#039;&#039;&#039; встреченном секторе с маркером &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, а не доходить до конца выделенного диапазона: за control record могут лежать остатки предыдущей, более длинной версии файла.&lt;br /&gt;
&lt;br /&gt;
Число записей в таблицах 2 и 3 равно &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt; — запись в них вдвое короче, чем в таблице 1.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу, имена не хранятся&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x31–0x33, 0x37–0x3E, 0x49, 0x4F, 0x5B, 0x60, 0x63, 0x65, 0x67, 0x69–0x6C, 0x72, 0x73, 0x76–0x78, 0x7C, 0x7F, 0x82 не занята в известной таблице.&lt;br /&gt;
# Смысл поля по смещению 4–5 записи таблицы 1 у скалярных переменных: у массивов там число элементов, у скаляров значения повторяются у разных переменных и с именем не связаны. В &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; у десяти скалярных строк это поле образует убывающую последовательность с шагом 6 в порядке объявления (205, 200, 194, 188, …, 152) независимо от их длин, что указывает скорее на указатель, чем на характеристику самой переменной.&lt;br /&gt;
# Кодировка целого типа во флаге записей таблиц 2 и 3: символьный и числовой типы различаются битами 5 и 4, признак целого не найден.&lt;br /&gt;
# Три записи таблицы 3 в &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; с низкими адресами, не соответствующие ни одной переменной &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Шесть записей таблицы 1 в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; с типами &amp;lt;code&amp;gt;59 07&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;27 01&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Кодировка типа переменной у двумерных массивов: байты 2–3 заняты второй размерностью, признака типа в записи не остаётся. Символьный двумерный массив в материале не встретился.&lt;br /&gt;
# Причина, по которой отдельные переменные получают в токенах &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; индексы из диапазона &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; и выше.&lt;br /&gt;
# Полный перечень подкодов двухбайтовых глаголов с префиксом &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Точное соответствие индексов переменных записям таблицы 2.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные), &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (сохранён в обоих представлениях — 182 сектора, 1422 строки; основной материал для проверки структуры таблиц и таблицы токенов), &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; (защищённый и оттранслированный, с расчётами с плавающей точкой; материал для разбора формата констант и двузначности токенов), &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; (защищённый и оттранслированный; единственный образец с двумерным массивом), &amp;lt;code&amp;gt;STAT00&amp;lt;/code&amp;gt; (защищённый и оттранслированный, сокращённая версия той же программы; материал для разбора двухбайтовых глаголов), &amp;lt;code&amp;gt;М1.Х&amp;lt;/code&amp;gt; (сохранён в обоих представлениях; единственный образец с оператором &amp;lt;code&amp;gt;COM&amp;lt;/code&amp;gt; и непустой таблицей 3, а также с шестью двумерными массивами), &amp;lt;code&amp;gt;STAT03&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; (защищённые и оттранслированные; материал для разбора условий появления дополнительных дескрипторов при &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;STAT08&amp;lt;/code&amp;gt; — единственный оттранслированный файл с заполненными адресами в таблице 1).&lt;br /&gt;
&lt;br /&gt;
Дамп &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; снят с удалённого файла, поэтому его целостность не гарантирована; выводы по нему опираются только на таблицу 1 и операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, взаимно согласованные по всем 23 объявленным переменным.&lt;br /&gt;
&lt;br /&gt;
При сверке представлений следует учитывать, что текстовая и оттранслированная копии одной программы на диске могут относиться к разным её версиям. В &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; текстовый листинг строки 240 содержит вызов &amp;lt;code&amp;gt;ABS&amp;lt;/code&amp;gt;, отсутствующий в оттранслированной копии, что подтверждается длиной оператора.&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4286</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4286"/>
		<updated>2026-08-12T19:27:55Z</updated>

		<summary type="html">&lt;p&gt;Panther: new data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
Искра-226 поддерживает работу с двумя типами файлов: ПФ — «Программные файлы» и ФД — «Файлы данных». Программные файлы всегда содержат программу на Бейсике, в текстовом или упакованном токенизированном виде. Файлы данных, соответственно, данные, доступные из программ пользователя.&lt;br /&gt;
&lt;br /&gt;
В соответствии с документацией, Искра-226 поддерживает прямой доступ программ к секторам диска, при этом к записанным таким образом дискам всё нижеизложенное может быть неприменимо, так как форматом хранения полностью управляет программа пользователя по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
Также, в наличии имеется несколько системных дисков, на которых содержатся различные версии интерпретатора Бейсика, с которых производится начальная загрузка компьютера. Эти диски имеют свой формат и здесь не рассматриваются.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. Номер сектора указателя, в который попадает имя файла, вычисляется функцией от самого имени, поэтому порядок имён в указателе не совпадает с порядком размещения файлов в области каталога.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; наблюдались на дисковых образах (&amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; — у файла &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;, защищённого и оттранслированного одновременно), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; взято из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на четырёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; || 448 || 800 || 0 || 1254 || &amp;lt;code&amp;gt;10 % EDITOR.  ВЕРСИЯ 4.1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;.&#039;&#039;&#039; Запись — 8 байт:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || тип: &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; — символьная, &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; — числовая или целая&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || для массивов — число элементов, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || размерный код, младший байт первым&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размерный код равен &#039;&#039;&#039;&amp;lt;code&amp;gt;2 × размер элемента&amp;lt;/code&amp;gt;&#039;&#039;&#039;, а его младший бит означает, что длина была задана явно. Для числовых переменных код 16 (размер элемента 8 байт), для целых 4 (2 байта), для символьных &amp;lt;code&amp;gt;2 × длина + 1&amp;lt;/code&amp;gt;: длина 8 → 17, 64 → 129, 128 → 257, 253 → 507.&lt;br /&gt;
&lt;br /&gt;
Символьная переменная, объявленная без указания длины, получает длину по умолчанию 16 и &#039;&#039;&#039;чётный&#039;&#039;&#039; код 32. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; так объявлены &amp;lt;code&amp;gt;B6¤(400)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;B7¤(10)&amp;lt;/code&amp;gt;, у обоих код 32, тогда как у всех переменных с явной длиной в том же файле код нечётный и точен. Поэтому нечётность кода нельзя использовать как признак символьного типа — для этого служат байты 2–3.&lt;br /&gt;
&lt;br /&gt;
===== Двумерные массивы =====&lt;br /&gt;
&lt;br /&gt;
У двумерного массива вторая размерность записывается в байты 2–3, на место признака типа, а первая остаётся в поле числа элементов. Размерности &#039;&#039;&#039;не перемножаются&#039;&#039;&#039;, поэтому оператор &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; восстанавливается точно.&lt;br /&gt;
&lt;br /&gt;
Единственный исследованный пример — &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; в файле &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 00 00  08 00  07 00  10 00&lt;br /&gt;
&lt;br /&gt;
Байты 2–3 равны 8 (вторая размерность), байты 4–5 равны 7 (первая), размерный код 16 — числовая. Опознание надёжно: соседние записи таблицы содержат 13 и 8 элементов, а в тексте &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; вокруг &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; стоят &amp;lt;code&amp;gt;A(13)&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E(8)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Практическое правило: если байты 2–3 не равны &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; и не &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt;, запись описывает двумерный массив, а в этих байтах лежит вторая размерность.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Пример единственный и получен из удалённого файла, целостность которого не гарантирована. Как при двумерности кодируется тип переменной, установить не удалось: у &amp;lt;code&amp;gt;Q(7,8)&amp;lt;/code&amp;gt; байты 2–3 заняты размерностью, и признака числового типа в записи не остаётся. Символьный двумерный массив в материале не встретился.}}&lt;br /&gt;
&lt;br /&gt;
===== Порядок записей обратен порядку объявления =====&lt;br /&gt;
&lt;br /&gt;
Память под переменные выделяется &#039;&#039;&#039;сверху вниз&#039;&#039;&#039;, от верхней границы, а записи в таблице отсортированы по возрастанию адреса. Поэтому &#039;&#039;&#039;первая переменная в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; оказывается последней записью таблицы&#039;&#039;&#039;, и сопоставлять их нужно с конца.&lt;br /&gt;
&lt;br /&gt;
Проверено на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;: 7 операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявляют 50 переменных, L1 = 448 = 56 записей. При обратном сопоставлении разность адресов соседних записей совпадает с ожидаемым размером переменной &#039;&#039;&#039;у 44 из 50&#039;&#039;&#039; точно, а оставшиеся 6 расходятся ровно на 1 байт — это нечётные длины (&amp;lt;code&amp;gt;A¤1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;K¤253&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G¤19&amp;lt;/code&amp;gt;), округляемые вверх до чётной.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Адреса в таблице 1 могут быть нулевыми.&#039;&#039;&#039; В файле &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; все 11 записей имеют адрес &amp;lt;code&amp;gt;0000&amp;lt;/code&amp;gt;, поэтому любое правило, опирающееся на разность адресов соседних записей, там неприменимо. Разборщику следует проверять адреса на ненулевое значение перед использованием.&lt;br /&gt;
&lt;br /&gt;
Остальные поля при этом заполнены и корректны: обратный порядок относительно &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; сохраняется, размерный код точен для всех строковых переменных, у массива &amp;lt;code&amp;gt;K(9)&amp;lt;/code&amp;gt; число элементов равно 9.}}&lt;br /&gt;
&lt;br /&gt;
Размер выделяемой памяти:&lt;br /&gt;
&lt;br /&gt;
* скалярная символьная переменная — объявленная длина, округлённая вверх до чётной;&lt;br /&gt;
* массив — &amp;lt;code&amp;gt;N × размер элемента + 6&amp;lt;/code&amp;gt;, где 6 байт занимает дескриптор.&lt;br /&gt;
&lt;br /&gt;
Формула для массивов проверена на 20 массивах &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; без единого расхождения: &amp;lt;code&amp;gt;V¤(20)64&amp;lt;/code&amp;gt; → 1286, &amp;lt;code&amp;gt;S¤(48)64&amp;lt;/code&amp;gt; → 3078, &amp;lt;code&amp;gt;P%(300)&amp;lt;/code&amp;gt; → 606, &amp;lt;code&amp;gt;X(2)&amp;lt;/code&amp;gt; → 22.&lt;br /&gt;
&lt;br /&gt;
===== Таблица отражает состояние на момент сохранения =====&lt;br /&gt;
&lt;br /&gt;
Число записей может превышать число переменных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; записей 26 при 23 объявленных переменных, и три лишние стоят в области самых низких адресов, то есть выделены последними.&lt;br /&gt;
&lt;br /&gt;
Это переменные &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;G¤&amp;lt;/code&amp;gt;, переопределённые оператором &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;: у каждой в таблице по два дескриптора — исходный из &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; с числом элементов 200 и текущий с числом 300, где 300 является значением времени выполнения. Подтверждается с другой стороны: в токенах &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; именно эти три переменные получили индексы &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt;, тогда как все остальные — обычные значения подряд.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; шесть записей таблицы 1 также не соответствуют ни одному &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;; их тип (&amp;lt;code&amp;gt;59 07&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;27 01&amp;lt;/code&amp;gt;) отличается от остальных, и связать их с конкретными переменными не удалось.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
Число записей — &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt;: длины в прологе даны в байтах, а запись занимает 4 байта, а не 8.&lt;br /&gt;
&lt;br /&gt;
Таблица 2 содержит скалярные переменные, не объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. Их адреса образуют ряд с шагом 8 — под скаляр отводится 8 байт независимо от того, числовой он или целый. Записи с нулевым адресом встречаются вперемешку с обычными; вероятно, это слоты, которым память не выделена.&lt;br /&gt;
&lt;br /&gt;
=== Индексы переменных и их имена ===&lt;br /&gt;
&lt;br /&gt;
Переменные адресуются в коде однобайтовым индексом. Индексы назначаются &#039;&#039;&#039;в порядке первого появления переменной в тексте программы&#039;&#039;&#039;, а не по алфавиту и не по типу.&lt;br /&gt;
&lt;br /&gt;
Для переменных, объявленных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, это даёт прямое соответствие: операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют свои переменные подряд, в том же порядке, в каком они записаны в исходном тексте. В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; семь операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; занимают индексы &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;32&amp;lt;/code&amp;gt; непрерывно; индекс &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; достался переменной &amp;lt;code&amp;gt;R2%&amp;lt;/code&amp;gt;, встретившейся раньше — в строке 30, до первого &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;, где до &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; переменных не было, нумерация начинается с &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Имена переменных в оттранслированном файле не сохраняются.&#039;&#039;&#039; Таблицы содержат дескрипторы памяти — адрес, тип, размер, — но не имена.&lt;br /&gt;
&lt;br /&gt;
Проверка на &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;, где программа сохранена одновременно в текстовом и оттранслированном виде: сопоставление 866 общих строк дало однозначное имя для 146 индексов из 160, и ни одно поле таблиц с этими именами не коррелирует. В таблице 1 поле по смещению 4–5 совпадает у &amp;lt;code&amp;gt;Y¤4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Z¤253&amp;lt;/code&amp;gt; (72), у &amp;lt;code&amp;gt;D¤8&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Q5¤40&amp;lt;/code&amp;gt; (204); в таблице 2 последний байт записи совпадает у заведомо разных переменных (&amp;lt;code&amp;gt;D%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;I%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;J%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Это согласуется с назначением параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;: при выполнении имена не нужны, всё адресуется по индексу, а отказ от их хранения и даёт заявленную экономию места. Практическое следствие — &#039;&#039;&#039;читаемый листинг из оттранслированного файла восстановить нельзя&#039;&#039;&#039;. Восстанавливается структура программы, но переменные остаются безымянными, если не сохранилась текстовая версия того же исходника.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
==== Выравнивание в конце сектора ====&lt;br /&gt;
&lt;br /&gt;
Если до конца сектора остаётся слишком мало места, чтобы разместить трёхбайтовый заголовок очередной записи, остаток сектора заполняется нулями, а запись начинается с первого байта следующего сектора. Такие нули стоят &#039;&#039;&#039;после&#039;&#039;&#039; разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; и в длину записи не входят.&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (1422 строки) это встречается 9 раз, все — на позициях 248–251 от начала содержимого сектора. Разборщик, не учитывающий выравнивание, теряет синхронизацию именно в этих местах.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt; || RETURN CLEAR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt; || ON ERROR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (краткая форма REM) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51&amp;lt;/code&amp;gt; || RESTORE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;66&amp;lt;/code&amp;gt; || DATA LOAD BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;68&amp;lt;/code&amp;gt; || DATA SAVE BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6E&amp;lt;/code&amp;gt; || DATA SAVE BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; || DATA LOAD BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;71&amp;lt;/code&amp;gt; || DATA LOAD DA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt; || LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; || SAVE DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Пометка «подтверждено» означает сверку с текстовым листингом той же программы. Основная часть подтверждений получена на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; автоматическим сопоставлением 866 общих строк: в строках, где число операторов в обоих представлениях совпало, первый глагол каждого оператора сверялся с первым словом соответствующего оператора текста. Так подтверждены 34 значения, включая &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; = GOTO (147 совпадений), &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; = PRINT (212), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; = IF (266).&lt;br /&gt;
&lt;br /&gt;
Отдельно стоит краткая форма комментария &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt;): она встречается в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; 122 раза против 7 у полного &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt;), и её операнд записывается сырым текстом без префикса &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; — так же, как у &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; || GOSUB в составе &amp;lt;code&amp;gt;ON … GOSUB&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; || GOTO в составе &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || остальные знаки сравнения || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; в позиции операции, &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; в позиции операции, ссылка на массив целиком в позиции операнда || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E1&amp;lt;/code&amp;gt; || функция &amp;lt;code&amp;gt;STR&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; || число с фиксированной точкой, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || число с порядком, см. ниже || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, бинарный или унарный || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ABS(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;INT(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;SQR(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;LOG(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Двузначность токенов старшей половины ===&lt;br /&gt;
&lt;br /&gt;
Часть токенов диапазона &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;EF&amp;lt;/code&amp;gt; читается по-разному в зависимости от того, ожидается ли на их месте знак операции или очередной операнд. Интерпретатор различает их по состоянию разбора, отдельного признака в файле нет.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! В позиции операции !! В позиции операнда&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;AT(&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; бинарный || &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; унарный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; || ссылка на массив целиком&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ссылка на массив целиком записывается как &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; и порядковый номер переменной в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;74 02 E0 09&amp;lt;/code&amp;gt; соответствует &amp;lt;code&amp;gt;DATA LOAD DC G¤()&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;E0 09 D1 E0 00&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;G¤()TOX()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Каждое прочтение подтверждено не менее чем двумя независимыми строками &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;TAB(17)&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;DF E8 17 D0&amp;lt;/code&amp;gt;, а &amp;lt;code&amp;gt;.5*LOG(&amp;lt;/code&amp;gt; — как &amp;lt;code&amp;gt;E5 01 50 DF F7&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K(1)&amp;amp;lt;&amp;amp;gt;1&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;PRINT AT(9,10)&amp;lt;/code&amp;gt; оба дают &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;K0*(-1)&amp;lt;/code&amp;gt; даёт &amp;lt;code&amp;gt;DF EB E9 E8 01 D0&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; стоит в позиции операнда.&lt;br /&gt;
&lt;br /&gt;
Разборщик с одним фиксированным значением на токен на таких строках даёт неверный листинг, поэтому таблицу операндов нужно применять с учётом позиции.&lt;br /&gt;
&lt;br /&gt;
У дисковых операторов (&amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;) первый операнд — идентификатор дисковода: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; означает &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Числовые константы ===&lt;br /&gt;
&lt;br /&gt;
Целые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999).&lt;br /&gt;
&lt;br /&gt;
Для дробных чисел служат токены &amp;lt;code&amp;gt;E5&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt;. За токеном следует байт-описатель, затем цифры числа в BCD по две на байт; если цифр нечётное число, последняя тетрада заполняется нулём. В описателе &#039;&#039;&#039;старшая тетрада — количество цифр до запятой, младшая — общее количество цифр&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Запись !! Байты !! Описатель !! Цифры&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 01 50&amp;lt;/code&amp;gt; || 0 / 1 || 5&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.08&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 02 08&amp;lt;/code&amp;gt; || 0 / 2 || 08&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 12 25&amp;lt;/code&amp;gt; || 1 / 2 || 25&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.196854&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 19 68 54&amp;lt;/code&amp;gt; || 0 / 6 || 196854&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.000344&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;E5 06 00 03 44&amp;lt;/code&amp;gt; || 0 / 6 || 000344&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; устроен так же, но после цифр мантиссы идёт дополнительный байт порядка: &amp;lt;code&amp;gt;1E6&amp;lt;/code&amp;gt; кодируется как &amp;lt;code&amp;gt;E6 11 10 06&amp;lt;/code&amp;gt; — одна цифра мантиссы, одна цифра до запятой, порядок 6.&lt;br /&gt;
&lt;br /&gt;
Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Подпрограммы с параметрами ===&lt;br /&gt;
&lt;br /&gt;
Аргументы &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; следуют сразу за байтом метки и разделяются токеном &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;; скобки не кодируются. Вызов &amp;lt;code&amp;gt;GOSUB &#039; 5(1,1,N-2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 23 0B 05 E8 01 DE E8 01 DE 0D E9 E8 02&lt;br /&gt;
&lt;br /&gt;
Объявление &amp;lt;code&amp;gt;DEFFN&#039;&amp;lt;/code&amp;gt; содержит метку, четыре нулевых байта и индексы формальных параметров. Нули, по-видимому, отведены под адрес возврата, заполняемый при выполнении. Объявление &amp;lt;code&amp;gt;DEFFN &#039; 5(N1,D1,D2)&amp;lt;/code&amp;gt; даёт:&lt;br /&gt;
&lt;br /&gt;
 27 08 05 00 00 00 00 12 20 21&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; кодируется как индекс переменной, токен &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; и номера строк по два байта BCD подряд без разделителей.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# После &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; пропустить нулевые байты выравнивания, если следующая запись не помещалась в остаток сектора.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обработку файла следует прекращать на &#039;&#039;&#039;первом&#039;&#039;&#039; встреченном секторе с маркером &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, а не доходить до конца выделенного диапазона: за control record могут лежать остатки предыдущей, более длинной версии файла.&lt;br /&gt;
&lt;br /&gt;
Число записей в таблицах 2 и 3 равно &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt; — запись в них вдвое короче, чем в таблице 1.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу, имена не хранятся&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x31–0x33, 0x37–0x3E, 0x49, 0x4F, 0x5B, 0x60, 0x63, 0x65, 0x67, 0x69–0x6C, 0x72, 0x73, 0x76–0x78, 0x7C, 0x7F, 0x82 не занята в известной таблице.&lt;br /&gt;
# Смысл поля по смещению 4–5 записи таблицы 1 у скалярных переменных: у массивов там число элементов, у скаляров значения повторяются у разных переменных и с именем не связаны. В &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; у десяти скалярных строк это поле образует убывающую последовательность с шагом 6 в порядке объявления (205, 200, 194, 188, …, 152) независимо от их длин, что указывает скорее на указатель, чем на характеристику самой переменной.&lt;br /&gt;
# Назначение байтов 2–3 записей таблиц 2 и 3 и шести записей таблицы 1 с типами &amp;lt;code&amp;gt;59 07&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;27 01&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Кодировка типа переменной у двумерных массивов: байты 2–3 заняты второй размерностью, признака типа в записи не остаётся. Символьный двумерный массив в материале не встретился.&lt;br /&gt;
# Причина, по которой переменные, переопределённые оператором &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;, получают в токенах &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; индексы из диапазона &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; и выше.&lt;br /&gt;
# Точное соответствие индексов переменных записям таблицы 2.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные), &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (сохранён в обоих представлениях — 182 сектора, 1422 строки; основной материал для проверки структуры таблиц и таблицы токенов), &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; (защищённый и оттранслированный, с расчётами с плавающей точкой; материал для разбора формата констант и двузначности токенов), &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; (защищённый и оттранслированный; единственный образец с двумерным массивом и с переменными, переопределёнными через &amp;lt;code&amp;gt;MAT REDIM&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Дамп &amp;lt;code&amp;gt;STAT01A&amp;lt;/code&amp;gt; снят с удалённого файла, поэтому его целостность не гарантирована; выводы по нему опираются только на таблицу 1 и операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, взаимно согласованные по всем 23 объявленным переменным.&lt;br /&gt;
&lt;br /&gt;
При сверке представлений следует учитывать, что текстовая и оттранслированная копии одной программы на диске могут относиться к разным её версиям. В &amp;lt;code&amp;gt;STAT05&amp;lt;/code&amp;gt; текстовый листинг строки 240 содержит вызов &amp;lt;code&amp;gt;ABS&amp;lt;/code&amp;gt;, отсутствующий в оттранслированной копии, что подтверждается длиной оператора.&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4285</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4285"/>
		<updated>2026-08-12T12:40:06Z</updated>

		<summary type="html">&lt;p&gt;Panther: new info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
Искра-226 поддерживает работу с двумя типами файлов: ПФ — «Программные файлы» и ФД — «Файлы данных». Программные файлы всегда содержат программу на Бейсике, в текстовом или упакованном токенизированном виде. Файлы данных, соответственно, данные, доступные из программ пользователя.&lt;br /&gt;
&lt;br /&gt;
В соответствии с документацией, Искра-226 поддерживает прямой доступ программ к секторам диска, при этом к записанным таким образом дискам всё нижеизложенное может быть неприменимо, так как форматом хранения полностью управляет программа пользователя по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
Также, в наличии имеется несколько системных дисков, на которых содержатся различные версии интерпретатора Бейсика, с которых производится начальная загрузка компьютера. Эти диски имеют свой формат и здесь не рассматриваются.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. Номер сектора указателя, в который попадает имя файла, вычисляется функцией от самого имени, поэтому порядок имён в указателе не совпадает с порядком размещения файлов в области каталога.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; наблюдались на дисковых образах, &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; взяты из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на четырёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; || 448 || 800 || 0 || 1254 || &amp;lt;code&amp;gt;10 % EDITOR.  ВЕРСИЯ 4.1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;.&#039;&#039;&#039; Запись — 8 байт:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0–1 || 2 || адрес переменной в памяти, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || тип: &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; — символьная, &amp;lt;code&amp;gt;2D 08&amp;lt;/code&amp;gt; — числовая или целая&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || для массивов — число элементов, младший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || размерный код, младший байт первым&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Размерный код: для символьных переменных &amp;lt;code&amp;gt;2 × длина + 1&amp;lt;/code&amp;gt; (длина 8 → 17, 64 → 129, 128 → 257, 253 → 507), для числовых 16, для целых 4.&lt;br /&gt;
&lt;br /&gt;
===== Порядок записей обратен порядку объявления =====&lt;br /&gt;
&lt;br /&gt;
Память под переменные выделяется &#039;&#039;&#039;сверху вниз&#039;&#039;&#039;, от верхней границы, а записи в таблице отсортированы по возрастанию адреса. Поэтому &#039;&#039;&#039;первая переменная в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; оказывается последней записью таблицы&#039;&#039;&#039;, и сопоставлять их нужно с конца.&lt;br /&gt;
&lt;br /&gt;
Проверено на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;: 7 операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; объявляют 50 переменных, L1 = 448 = 56 записей. При обратном сопоставлении разность адресов соседних записей совпадает с ожидаемым размером переменной &#039;&#039;&#039;у 44 из 50&#039;&#039;&#039; точно, а оставшиеся 6 расходятся ровно на 1 байт — это нечётные длины (&amp;lt;code&amp;gt;A¤1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;K¤253&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;G¤19&amp;lt;/code&amp;gt;), округляемые вверх до чётной.&lt;br /&gt;
&lt;br /&gt;
Размер выделяемой памяти:&lt;br /&gt;
&lt;br /&gt;
* скалярная символьная переменная — объявленная длина, округлённая вверх до чётной;&lt;br /&gt;
* массив — &amp;lt;code&amp;gt;N × размер элемента + 6&amp;lt;/code&amp;gt;, где 6 байт занимает дескриптор.&lt;br /&gt;
&lt;br /&gt;
Формула для массивов проверена на 20 массивах &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; без единого расхождения: &amp;lt;code&amp;gt;V¤(20)64&amp;lt;/code&amp;gt; → 1286, &amp;lt;code&amp;gt;S¤(48)64&amp;lt;/code&amp;gt; → 3078, &amp;lt;code&amp;gt;P%(300)&amp;lt;/code&amp;gt; → 606, &amp;lt;code&amp;gt;X(2)&amp;lt;/code&amp;gt; → 22.&lt;br /&gt;
&lt;br /&gt;
Шесть записей таблицы 1, не соответствующих ни одному &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, находятся в области самых низких адресов, то есть выделены последними. Их тип (&amp;lt;code&amp;gt;59 07&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;27 01&amp;lt;/code&amp;gt;) отличается от остальных; назначение не установлено.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
Число записей — &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt;: длины в прологе даны в байтах, а запись занимает 4 байта, а не 8.&lt;br /&gt;
&lt;br /&gt;
Таблица 2 содержит скалярные переменные, не объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. Их адреса образуют ряд с шагом 8 — под скаляр отводится 8 байт независимо от того, числовой он или целый. Записи с нулевым адресом встречаются вперемешку с обычными; вероятно, это слоты, которым память не выделена.&lt;br /&gt;
&lt;br /&gt;
=== Индексы переменных и их имена ===&lt;br /&gt;
&lt;br /&gt;
Переменные адресуются в коде однобайтовым индексом. Индексы назначаются &#039;&#039;&#039;в порядке первого появления переменной в тексте программы&#039;&#039;&#039;, а не по алфавиту и не по типу.&lt;br /&gt;
&lt;br /&gt;
Для переменных, объявленных в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, это даёт прямое соответствие: операторы &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют свои переменные подряд, в том же порядке, в каком они записаны в исходном тексте. В &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; семь операторов &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; занимают индексы &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;32&amp;lt;/code&amp;gt; непрерывно; индекс &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; достался переменной &amp;lt;code&amp;gt;R2%&amp;lt;/code&amp;gt;, встретившейся раньше — в строке 30, до первого &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;, где до &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; переменных не было, нумерация начинается с &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=&#039;&#039;&#039;Имена переменных в оттранслированном файле не сохраняются.&#039;&#039;&#039; Таблицы содержат дескрипторы памяти — адрес, тип, размер, — но не имена.&lt;br /&gt;
&lt;br /&gt;
Проверка на &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;, где программа сохранена одновременно в текстовом и оттранслированном виде: сопоставление 866 общих строк дало однозначное имя для 146 индексов из 160, и ни одно поле таблиц с этими именами не коррелирует. В таблице 1 поле по смещению 4–5 совпадает у &amp;lt;code&amp;gt;Y¤4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Z¤253&amp;lt;/code&amp;gt; (72), у &amp;lt;code&amp;gt;D¤8&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;Q5¤40&amp;lt;/code&amp;gt; (204); в таблице 2 последний байт записи совпадает у заведомо разных переменных (&amp;lt;code&amp;gt;D%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;I%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;J%&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Это согласуется с назначением параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;: при выполнении имена не нужны, всё адресуется по индексу, а отказ от их хранения и даёт заявленную экономию места. Практическое следствие — &#039;&#039;&#039;читаемый листинг из оттранслированного файла восстановить нельзя&#039;&#039;&#039;. Восстанавливается структура программы, но переменные остаются безымянными, если не сохранилась текстовая версия того же исходника.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
==== Выравнивание в конце сектора ====&lt;br /&gt;
&lt;br /&gt;
Если до конца сектора остаётся слишком мало места, чтобы разместить трёхбайтовый заголовок очередной записи, остаток сектора заполняется нулями, а запись начинается с первого байта следующего сектора. Такие нули стоят &#039;&#039;&#039;после&#039;&#039;&#039; разделителя &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; и в длину записи не входят.&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (1422 строки) это встречается 9 раз, все — на позициях 248–251 от начала содержимого сектора. Разборщик, не учитывающий выравнивание, теряет синхронизацию именно в этих местах.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt; || RETURN CLEAR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;34&amp;lt;/code&amp;gt; || ON ERROR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (краткая форма REM) || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;51&amp;lt;/code&amp;gt; || RESTORE || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;66&amp;lt;/code&amp;gt; || DATA LOAD BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;68&amp;lt;/code&amp;gt; || DATA SAVE BT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6E&amp;lt;/code&amp;gt; || DATA SAVE BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; || DATA LOAD BA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;71&amp;lt;/code&amp;gt; || DATA LOAD DA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt; || LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; || SAVE DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Пометка «подтверждено» означает сверку с текстовым листингом той же программы. Основная часть подтверждений получена на файле &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; автоматическим сопоставлением 866 общих строк: в строках, где число операторов в обоих представлениях совпало, первый глагол каждого оператора сверялся с первым словом соответствующего оператора текста. Так подтверждены 34 значения, включая &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; = GOTO (147 совпадений), &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; = PRINT (212), &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; = IF (266).&lt;br /&gt;
&lt;br /&gt;
Отдельно стоит краткая форма комментария &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt;): она встречается в &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; 122 раза против 7 у полного &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt; (токен &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt;), и её операнд записывается сырым текстом без префикса &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; — так же, как у &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D6&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D8&amp;lt;/code&amp;gt; || остальные знаки сравнения || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; || GOSUB в составе &amp;lt;code&amp;gt;ON … GOSUB&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CD&amp;lt;/code&amp;gt; || GOTO в составе &amp;lt;code&amp;gt;ON … GOTO&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || ссылка на массив, далее индекс переменной || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E1&amp;lt;/code&amp;gt; || функция &amp;lt;code&amp;gt;STR&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;OR&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
У дисковых операторов (&amp;lt;code&amp;gt;7D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;) первый операнд — идентификатор дисковода: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; означает &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Числовые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999). Представление дробных констант в исследованных файлах не встретилось. Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# После &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; пропустить нулевые байты выравнивания, если следующая запись не помещалась в остаток сектора.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обработку файла следует прекращать на &#039;&#039;&#039;первом&#039;&#039;&#039; встреченном секторе с маркером &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, а не доходить до конца выделенного диапазона: за control record могут лежать остатки предыдущей, более длинной версии файла.&lt;br /&gt;
&lt;br /&gt;
Число записей в таблицах 2 и 3 равно &amp;lt;code&amp;gt;L2 / 4&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;L3 / 4&amp;lt;/code&amp;gt; — запись в них вдвое короче, чем в таблице 1.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу, имена не хранятся&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x31–0x33, 0x37–0x3E, 0x49, 0x4F, 0x5B, 0x60, 0x63, 0x65, 0x67, 0x69–0x6C, 0x72, 0x73, 0x76–0x78, 0x7C, 0x7F, 0x82 не занята в известной таблице.&lt;br /&gt;
# Представление дробных числовых констант.&lt;br /&gt;
# Смысл поля по смещению 4–5 записи таблицы 1 у скалярных переменных: у массивов там число элементов, у скаляров значения повторяются у разных переменных и с именем не связаны.&lt;br /&gt;
# Назначение байтов 2–3 записей таблиц 2 и 3 и шести записей таблицы 1 с типами &amp;lt;code&amp;gt;59 07&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;27 01&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Точное соответствие индексов переменных записям таблицы 2.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные), &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt; (сохранён в обоих представлениях — 182 сектора, 1422 строки; основной материал для проверки структуры таблиц и таблицы токенов).&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4284</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4284"/>
		<updated>2026-08-11T13:02:02Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Общее устройство */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
Искра-226 поддерживает работу с двумя типами файлов: ПФ — «Программные файлы» и ФД — «Файлы данных». Программные файлы всегда содержат программу на Бейсике, в текстовом или упакованном токенизированном виде. Файлы данных, соответственно, данные, доступные из программ пользователя.&lt;br /&gt;
&lt;br /&gt;
В соответствии с документацией, Искра-226 поддерживает прямой доступ программ к секторам диска, при этом к записанным таким образом дискам всё нижеизложенное может быть неприменимо, так как форматом хранения полностью управляет программа пользователя по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
Также, в наличии имеется несколько системных дисков, на которых содержатся различные версии интерпретатора Бейсика, с которых производится начальная загрузка компьютера. Эти диски имеют свой формат и здесь не рассматриваются.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. Номер сектора указателя, в который попадает имя файла, вычисляется функцией от самого имени, поэтому порядок имён в указателе не совпадает с порядком размещения файлов в области каталога.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; наблюдались на дисковых образах, &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; взяты из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на трёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 8 байт. Байты 0–1 — адрес, младший первым, строго возрастающий от записи к записи. Шаг между соседними адресами принимает значения 2, 4, 8, 12, 48, что соответствует размерам объектов: 2 байта — целочисленная переменная BASIC 02, 8 байт — число в BCD, кратные — массивы. Назначение байтов 2–7 не установлено.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;,&#039;&#039;&#039; и номер записи в ней равен индексу переменной в коде. В файле &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; три оператора &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt;, то есть 49 переменных подряд; L1 = 392 = 49 × 8. Совпадение точное.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Нумерация индексов сквозная&#039;&#039;&#039;: таблица 1 занимает индексы от 0 до (L1/8 − 1), таблица 2 продолжает нумерацию. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; индексы &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; адресуют первые пятнадцать записей таблицы 2, и именно у этих пятнадцати адреса образуют непрерывный ряд с шагом 8 (8-байтовые числа BCD).&lt;br /&gt;
&lt;br /&gt;
Оставшиеся записи таблицы 2 в коде не адресуются, а их количество равно числу записей таблицы 1 — 49 в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; и 3 в &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;. Похоже, каждой размерной переменной соответствует второй дескриптор в низкой области памяти, однако на третьем файле это разбиение не проверяется, поэтому пока наблюдение, а не правило.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Соответствие «индекс переменной в коде → имя переменной» не установлено. В таблицах имена в явном виде отсутствуют. Индексы, судя по наблюдениям, назначаются по порядку объявления и первого появления переменной: в &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;F¤&amp;lt;/code&amp;gt;=00, &amp;lt;code&amp;gt;N3&amp;lt;/code&amp;gt;=0E, &amp;lt;code&amp;gt;N6&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;F1¤&amp;lt;/code&amp;gt;=12, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;=1B, &amp;lt;code&amp;gt;E7%&amp;lt;/code&amp;gt;=1C, &amp;lt;code&amp;gt;U1¤()&amp;lt;/code&amp;gt;=30, &amp;lt;code&amp;gt;F%&amp;lt;/code&amp;gt;=5C, &amp;lt;code&amp;gt;N7&amp;lt;/code&amp;gt;=5D, &amp;lt;code&amp;gt;W0&amp;lt;/code&amp;gt;=7D, &amp;lt;code&amp;gt;U9%&amp;lt;/code&amp;gt;=81. Это главное препятствие для получения читаемого листинга.&lt;br /&gt;
&lt;br /&gt;
Известно, что имена ограничены буквой с необязательной цифрой — оператор &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt; выводит переменные в алфавитном порядке от &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; до &amp;lt;code&amp;gt;Z9&amp;lt;/code&amp;gt;, группируя их по типам: целые, действительные, символьные, затем массивы целых, действительных и символьных.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; Такое имя укладывается в девять бит, что делает вероятным его размещение в паре «флаг + байт» записей таблиц 2 и 3. Порядок записей в таблицах при этом не алфавитный, а соответствует порядку объявления переменных.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || ссылка на массив, далее индекс переменной || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Числовые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999). Представление дробных констант в исследованных файлах не встретилось. Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Имена переменных.&#039;&#039;&#039; Главное препятствие для читаемого листинга. Возможный путь — сопоставление токенизированной и текстовой версий одной программы, если обе сохранились на диске.&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x30–0x34, 0x37–0x3F, 0x65–0x78 не занята в известной таблице.&lt;br /&gt;
# Представление дробных числовых констант.&lt;br /&gt;
# Байты 2–7 записи таблицы 1 и байты 2–3 записей таблиц 2 и 3.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные).&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4283</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4283"/>
		<updated>2026-08-11T12:51:21Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Пример */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
Искра-226 поддерживает работу с двумя типами файлов: ПФ — «Программные файлы» и ФД — «Файлы данных». Программные файлы всегда содержат программу на Бейсике, в текстовом или упакованном токенизированном виде. Файлы данных, соответственно, данные, доступные из программ пользователя.&lt;br /&gt;
&lt;br /&gt;
В соответствии с документацией, Искра-226 поддерживает прямой доступ программ к секторам диска, при этом к записанным таким образом дискам всё нижеизложенное может быть неприменимо, так как форматом хранения полностью управляет программа пользователя по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. Номер сектора указателя, в который попадает имя файла, вычисляется функцией от самого имени, поэтому порядок имён в указателе не совпадает с порядком размещения файлов в области каталога.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
 └───┘ └───┘ └───┘       └─────────────────────┘&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; наблюдались на дисковых образах, &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; взяты из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на трёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 8 байт. Байты 0–1 — адрес, младший первым, строго возрастающий от записи к записи. Шаг между соседними адресами принимает значения 2, 4, 8, 12, 48, что соответствует размерам объектов: 2 байта — целочисленная переменная BASIC 02, 8 байт — число в BCD, кратные — массивы. Назначение байтов 2–7 не установлено.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;,&#039;&#039;&#039; и номер записи в ней равен индексу переменной в коде. В файле &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; три оператора &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt;, то есть 49 переменных подряд; L1 = 392 = 49 × 8. Совпадение точное.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Нумерация индексов сквозная&#039;&#039;&#039;: таблица 1 занимает индексы от 0 до (L1/8 − 1), таблица 2 продолжает нумерацию. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; индексы &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; адресуют первые пятнадцать записей таблицы 2, и именно у этих пятнадцати адреса образуют непрерывный ряд с шагом 8 (8-байтовые числа BCD).&lt;br /&gt;
&lt;br /&gt;
Оставшиеся записи таблицы 2 в коде не адресуются, а их количество равно числу записей таблицы 1 — 49 в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; и 3 в &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;. Похоже, каждой размерной переменной соответствует второй дескриптор в низкой области памяти, однако на третьем файле это разбиение не проверяется, поэтому пока наблюдение, а не правило.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Соответствие «индекс переменной в коде → имя переменной» не установлено. В таблицах имена в явном виде отсутствуют. Индексы, судя по наблюдениям, назначаются по порядку объявления и первого появления переменной: в &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;F¤&amp;lt;/code&amp;gt;=00, &amp;lt;code&amp;gt;N3&amp;lt;/code&amp;gt;=0E, &amp;lt;code&amp;gt;N6&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;F1¤&amp;lt;/code&amp;gt;=12, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;=1B, &amp;lt;code&amp;gt;E7%&amp;lt;/code&amp;gt;=1C, &amp;lt;code&amp;gt;U1¤()&amp;lt;/code&amp;gt;=30, &amp;lt;code&amp;gt;F%&amp;lt;/code&amp;gt;=5C, &amp;lt;code&amp;gt;N7&amp;lt;/code&amp;gt;=5D, &amp;lt;code&amp;gt;W0&amp;lt;/code&amp;gt;=7D, &amp;lt;code&amp;gt;U9%&amp;lt;/code&amp;gt;=81. Это главное препятствие для получения читаемого листинга.&lt;br /&gt;
&lt;br /&gt;
Известно, что имена ограничены буквой с необязательной цифрой — оператор &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt; выводит переменные в алфавитном порядке от &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; до &amp;lt;code&amp;gt;Z9&amp;lt;/code&amp;gt;, группируя их по типам: целые, действительные, символьные, затем массивы целых, действительных и символьных.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; Такое имя укладывается в девять бит, что делает вероятным его размещение в паре «флаг + байт» записей таблиц 2 и 3. Порядок записей в таблицах при этом не алфавитный, а соответствует порядку объявления переменных.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || ссылка на массив, далее индекс переменной || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Числовые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999). Представление дробных констант в исследованных файлах не встретилось. Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Имена переменных.&#039;&#039;&#039; Главное препятствие для читаемого листинга. Возможный путь — сопоставление токенизированной и текстовой версий одной программы, если обе сохранились на диске.&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x30–0x34, 0x37–0x3F, 0x65–0x78 не занята в известной таблице.&lt;br /&gt;
# Представление дробных числовых констант.&lt;br /&gt;
# Байты 2–7 записи таблицы 1 и байты 2–3 записей таблиц 2 и 3.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные).&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4282</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4282"/>
		<updated>2026-08-11T12:45:54Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Общее устройство */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
Искра-226 поддерживает работу с двумя типами файлов: ПФ — «Программные файлы» и ФД — «Файлы данных». Программные файлы всегда содержат программу на Бейсике, в текстовом или упакованном токенизированном виде. Файлы данных, соответственно, данные, доступные из программ пользователя.&lt;br /&gt;
&lt;br /&gt;
В соответствии с документацией, Искра-226 поддерживает прямой доступ программ к секторам диска, при этом к записанным таким образом дискам всё нижеизложенное может быть неприменимо, так как форматом хранения полностью управляет программа пользователя по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. Номер сектора указателя, в который попадает имя файла, вычисляется функцией от самого имени, поэтому порядок имён в указателе не совпадает с порядком размещения файлов в области каталога.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; наблюдались на дисковых образах, &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; взяты из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на трёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 8 байт. Байты 0–1 — адрес, младший первым, строго возрастающий от записи к записи. Шаг между соседними адресами принимает значения 2, 4, 8, 12, 48, что соответствует размерам объектов: 2 байта — целочисленная переменная BASIC 02, 8 байт — число в BCD, кратные — массивы. Назначение байтов 2–7 не установлено.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;,&#039;&#039;&#039; и номер записи в ней равен индексу переменной в коде. В файле &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; три оператора &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt;, то есть 49 переменных подряд; L1 = 392 = 49 × 8. Совпадение точное.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Нумерация индексов сквозная&#039;&#039;&#039;: таблица 1 занимает индексы от 0 до (L1/8 − 1), таблица 2 продолжает нумерацию. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; индексы &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; адресуют первые пятнадцать записей таблицы 2, и именно у этих пятнадцати адреса образуют непрерывный ряд с шагом 8 (8-байтовые числа BCD).&lt;br /&gt;
&lt;br /&gt;
Оставшиеся записи таблицы 2 в коде не адресуются, а их количество равно числу записей таблицы 1 — 49 в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; и 3 в &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;. Похоже, каждой размерной переменной соответствует второй дескриптор в низкой области памяти, однако на третьем файле это разбиение не проверяется, поэтому пока наблюдение, а не правило.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Соответствие «индекс переменной в коде → имя переменной» не установлено. В таблицах имена в явном виде отсутствуют. Индексы, судя по наблюдениям, назначаются по порядку объявления и первого появления переменной: в &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;F¤&amp;lt;/code&amp;gt;=00, &amp;lt;code&amp;gt;N3&amp;lt;/code&amp;gt;=0E, &amp;lt;code&amp;gt;N6&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;F1¤&amp;lt;/code&amp;gt;=12, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;=1B, &amp;lt;code&amp;gt;E7%&amp;lt;/code&amp;gt;=1C, &amp;lt;code&amp;gt;U1¤()&amp;lt;/code&amp;gt;=30, &amp;lt;code&amp;gt;F%&amp;lt;/code&amp;gt;=5C, &amp;lt;code&amp;gt;N7&amp;lt;/code&amp;gt;=5D, &amp;lt;code&amp;gt;W0&amp;lt;/code&amp;gt;=7D, &amp;lt;code&amp;gt;U9%&amp;lt;/code&amp;gt;=81. Это главное препятствие для получения читаемого листинга.&lt;br /&gt;
&lt;br /&gt;
Известно, что имена ограничены буквой с необязательной цифрой — оператор &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt; выводит переменные в алфавитном порядке от &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; до &amp;lt;code&amp;gt;Z9&amp;lt;/code&amp;gt;, группируя их по типам: целые, действительные, символьные, затем массивы целых, действительных и символьных.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; Такое имя укладывается в девять бит, что делает вероятным его размещение в паре «флаг + байт» записей таблиц 2 и 3. Порядок записей в таблицах при этом не алфавитный, а соответствует порядку объявления переменных.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || ссылка на массив, далее индекс переменной || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Числовые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999). Представление дробных констант в исследованных файлах не встретилось. Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Имена переменных.&#039;&#039;&#039; Главное препятствие для читаемого листинга. Возможный путь — сопоставление токенизированной и текстовой версий одной программы, если обе сохранились на диске.&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x30–0x34, 0x37–0x3F, 0x65–0x78 не занята в известной таблице.&lt;br /&gt;
# Представление дробных числовых констант.&lt;br /&gt;
# Байты 2–7 записи таблицы 1 и байты 2–3 записей таблиц 2 и 3.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные).&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4281</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4281"/>
		<updated>2026-08-11T12:27:48Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Запись каталога */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
== Указатель каталога ==&lt;br /&gt;
Начиная с 0 сектора на диске располагается «Указатель каталога».&lt;br /&gt;
&lt;br /&gt;
Первые 16 байт содержат служебную информацию в следующем составе:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0-1 || 2 || размер Указателя каталога в секторах, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 2-3 || 2 || номер последнего использованного сектора, 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || размер тома (обычно 1000), 16 бит big-endian&lt;br /&gt;
|-&lt;br /&gt;
| 6–15 || 10 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
После служебной информации идут 16-байтовые записи каталога, описывающие файлы. По непонятной причине записи каталога не сгруппированы в начале указателя, а распределены по всем его секторам. Неиспользованные записи заполнены нулями. Следовательно, для чтения указателя каталога необходимо пройти все его сектора, игнорируя нулевые строки.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. Номер сектора указателя, в который попадает имя файла, вычисляется функцией от самого имени, поэтому порядок имён в указателе не совпадает с порядком размещения файлов в области каталога.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; наблюдались на дисковых образах, &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; взяты из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на трёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 8 байт. Байты 0–1 — адрес, младший первым, строго возрастающий от записи к записи. Шаг между соседними адресами принимает значения 2, 4, 8, 12, 48, что соответствует размерам объектов: 2 байта — целочисленная переменная BASIC 02, 8 байт — число в BCD, кратные — массивы. Назначение байтов 2–7 не установлено.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;,&#039;&#039;&#039; и номер записи в ней равен индексу переменной в коде. В файле &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; три оператора &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt;, то есть 49 переменных подряд; L1 = 392 = 49 × 8. Совпадение точное.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Нумерация индексов сквозная&#039;&#039;&#039;: таблица 1 занимает индексы от 0 до (L1/8 − 1), таблица 2 продолжает нумерацию. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; индексы &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; адресуют первые пятнадцать записей таблицы 2, и именно у этих пятнадцати адреса образуют непрерывный ряд с шагом 8 (8-байтовые числа BCD).&lt;br /&gt;
&lt;br /&gt;
Оставшиеся записи таблицы 2 в коде не адресуются, а их количество равно числу записей таблицы 1 — 49 в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; и 3 в &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;. Похоже, каждой размерной переменной соответствует второй дескриптор в низкой области памяти, однако на третьем файле это разбиение не проверяется, поэтому пока наблюдение, а не правило.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Соответствие «индекс переменной в коде → имя переменной» не установлено. В таблицах имена в явном виде отсутствуют. Индексы, судя по наблюдениям, назначаются по порядку объявления и первого появления переменной: в &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;F¤&amp;lt;/code&amp;gt;=00, &amp;lt;code&amp;gt;N3&amp;lt;/code&amp;gt;=0E, &amp;lt;code&amp;gt;N6&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;F1¤&amp;lt;/code&amp;gt;=12, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;=1B, &amp;lt;code&amp;gt;E7%&amp;lt;/code&amp;gt;=1C, &amp;lt;code&amp;gt;U1¤()&amp;lt;/code&amp;gt;=30, &amp;lt;code&amp;gt;F%&amp;lt;/code&amp;gt;=5C, &amp;lt;code&amp;gt;N7&amp;lt;/code&amp;gt;=5D, &amp;lt;code&amp;gt;W0&amp;lt;/code&amp;gt;=7D, &amp;lt;code&amp;gt;U9%&amp;lt;/code&amp;gt;=81. Это главное препятствие для получения читаемого листинга.&lt;br /&gt;
&lt;br /&gt;
Известно, что имена ограничены буквой с необязательной цифрой — оператор &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt; выводит переменные в алфавитном порядке от &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; до &amp;lt;code&amp;gt;Z9&amp;lt;/code&amp;gt;, группируя их по типам: целые, действительные, символьные, затем массивы целых, действительных и символьных.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; Такое имя укладывается в девять бит, что делает вероятным его размещение в паре «флаг + байт» записей таблиц 2 и 3. Порядок записей в таблицах при этом не алфавитный, а соответствует порядку объявления переменных.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || ссылка на массив, далее индекс переменной || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Числовые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999). Представление дробных констант в исследованных файлах не встретилось. Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Имена переменных.&#039;&#039;&#039; Главное препятствие для читаемого листинга. Возможный путь — сопоставление токенизированной и текстовой версий одной программы, если обе сохранились на диске.&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x30–0x34, 0x37–0x3F, 0x65–0x78 не занята в известной таблице.&lt;br /&gt;
# Представление дробных числовых констант.&lt;br /&gt;
# Байты 2–7 записи таблицы 1 и байты 2–3 записей таблиц 2 и 3.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные).&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4280</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4280"/>
		<updated>2026-08-11T12:18:46Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Общее устройство */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
На диске располагаются физические сектора размером 128 байт — 77 дорожек, 26 секторов на дорожке, одна сторона. Физические сектора попарно объединены в логические размером 256 байт со сквозной нумерацией. Далее везде будут подразумеваться логические сектора.&lt;br /&gt;
&lt;br /&gt;
Файлу выделяется непрерывный диапазон секторов, границы которого записаны в «Указателе каталога». Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом, любой файл занимает на диске как минимум на 512 байт больше, чем размер его полезных данных.&lt;br /&gt;
&lt;br /&gt;
Размер файла на диске уменьшать нельзя, поэтому при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в хвосте не затираются&#039;&#039;&#039;. Там могут остаться читаемые фрагменты предыдущих версий файла, иногда в другом представлении. Их нельзя принимать за часть текущего файла, поэтому необходимо завершать обработку файла при нахождении первой control record.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. Номер сектора указателя, в который попадает имя файла, вычисляется функцией от самого имени, поэтому порядок имён в указателе не совпадает с порядком размещения файлов в области каталога.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; наблюдались на дисковых образах, &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; взяты из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на трёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 8 байт. Байты 0–1 — адрес, младший первым, строго возрастающий от записи к записи. Шаг между соседними адресами принимает значения 2, 4, 8, 12, 48, что соответствует размерам объектов: 2 байта — целочисленная переменная BASIC 02, 8 байт — число в BCD, кратные — массивы. Назначение байтов 2–7 не установлено.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;,&#039;&#039;&#039; и номер записи в ней равен индексу переменной в коде. В файле &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; три оператора &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt;, то есть 49 переменных подряд; L1 = 392 = 49 × 8. Совпадение точное.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Нумерация индексов сквозная&#039;&#039;&#039;: таблица 1 занимает индексы от 0 до (L1/8 − 1), таблица 2 продолжает нумерацию. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; индексы &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; адресуют первые пятнадцать записей таблицы 2, и именно у этих пятнадцати адреса образуют непрерывный ряд с шагом 8 (8-байтовые числа BCD).&lt;br /&gt;
&lt;br /&gt;
Оставшиеся записи таблицы 2 в коде не адресуются, а их количество равно числу записей таблицы 1 — 49 в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; и 3 в &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;. Похоже, каждой размерной переменной соответствует второй дескриптор в низкой области памяти, однако на третьем файле это разбиение не проверяется, поэтому пока наблюдение, а не правило.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Соответствие «индекс переменной в коде → имя переменной» не установлено. В таблицах имена в явном виде отсутствуют. Индексы, судя по наблюдениям, назначаются по порядку объявления и первого появления переменной: в &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;F¤&amp;lt;/code&amp;gt;=00, &amp;lt;code&amp;gt;N3&amp;lt;/code&amp;gt;=0E, &amp;lt;code&amp;gt;N6&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;F1¤&amp;lt;/code&amp;gt;=12, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;=1B, &amp;lt;code&amp;gt;E7%&amp;lt;/code&amp;gt;=1C, &amp;lt;code&amp;gt;U1¤()&amp;lt;/code&amp;gt;=30, &amp;lt;code&amp;gt;F%&amp;lt;/code&amp;gt;=5C, &amp;lt;code&amp;gt;N7&amp;lt;/code&amp;gt;=5D, &amp;lt;code&amp;gt;W0&amp;lt;/code&amp;gt;=7D, &amp;lt;code&amp;gt;U9%&amp;lt;/code&amp;gt;=81. Это главное препятствие для получения читаемого листинга.&lt;br /&gt;
&lt;br /&gt;
Известно, что имена ограничены буквой с необязательной цифрой — оператор &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt; выводит переменные в алфавитном порядке от &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; до &amp;lt;code&amp;gt;Z9&amp;lt;/code&amp;gt;, группируя их по типам: целые, действительные, символьные, затем массивы целых, действительных и символьных.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; Такое имя укладывается в девять бит, что делает вероятным его размещение в паре «флаг + байт» записей таблиц 2 и 3. Порядок записей в таблицах при этом не алфавитный, а соответствует порядку объявления переменных.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || ссылка на массив, далее индекс переменной || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Числовые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999). Представление дробных констант в исследованных файлах не встретилось. Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Имена переменных.&#039;&#039;&#039; Главное препятствие для читаемого листинга. Возможный путь — сопоставление токенизированной и текстовой версий одной программы, если обе сохранились на диске.&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x30–0x34, 0x37–0x3F, 0x65–0x78 не занята в известной таблице.&lt;br /&gt;
# Представление дробных числовых констант.&lt;br /&gt;
# Байты 2–7 записи таблицы 1 и байты 2–3 записей таблиц 2 и 3.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные).&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%98%D1%81%D0%BA%D1%80%D0%B0-226&amp;diff=4279</id>
		<title>Категория:Искра-226</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%98%D1%81%D0%BA%D1%80%D0%B0-226&amp;diff=4279"/>
		<updated>2026-08-11T12:07:18Z</updated>

		<summary type="html">&lt;p&gt;Panther: Новая страница: «Категория:Отечественные компьютеры»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Отечественные компьютеры]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4278</id>
		<title>Искра-226/Файловая система</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-226/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0&amp;diff=4278"/>
		<updated>2026-08-11T12:05:58Z</updated>

		<summary type="html">&lt;p&gt;Panther: Новая страница: «{{emuverse}}  &amp;#039;&amp;#039;&amp;#039;Формат файлов BASIC 02&amp;#039;&amp;#039;&amp;#039; — способ хранения программ на дисках Искра-226. Файловая система унаследована от Wang 2200, представление программы — оригинальное и с Wang несовместимо.  Программа может храниться в двух видах: &amp;#039;&amp;#039;&amp;#039;текстовом&amp;#039;&amp;#039;&amp;#039; (плоский текст в...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формат файлов BASIC 02&#039;&#039;&#039; — способ хранения программ на дисках [[Искра-226]]. Файловая система унаследована от [[Wang 2200]], представление программы — оригинальное и с Wang несовместимо.&lt;br /&gt;
&lt;br /&gt;
Программа может храниться в двух видах: &#039;&#039;&#039;текстовом&#039;&#039;&#039; (плоский текст в [[КОИ-8]]) и &#039;&#039;&#039;токенизированном&#039;&#039;&#039;. Оба вида имеют одинаковую внешнюю структуру и различаются одним байтом в заголовочном секторе.&lt;br /&gt;
&lt;br /&gt;
== Общее устройство ==&lt;br /&gt;
&lt;br /&gt;
Сектор — 256 байт. Файлу выделяется непрерывный диапазон секторов, границы которого записаны в каталоге. Раскладка внутри диапазона:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Сектор !! Содержимое&lt;br /&gt;
|-&lt;br /&gt;
| первый || заголовок файла&lt;br /&gt;
|-&lt;br /&gt;
| следующие N || поток содержимого&lt;br /&gt;
|-&lt;br /&gt;
| … || резерв, заполнен нулями&lt;br /&gt;
|-&lt;br /&gt;
| последний выделенный || control record&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Как и в Wang, при перезаписи файла более коротким содержимым &#039;&#039;&#039;старые данные в резерве не затираются&#039;&#039;&#039;. В резерве могут лежать читаемые фрагменты предыдущих версий программы, иногда в другом представлении. Их нельзя принимать за часть текущего файла.&lt;br /&gt;
&lt;br /&gt;
== Запись каталога ==&lt;br /&gt;
&lt;br /&gt;
16 байт, побайтово совпадает с Wang 2200.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || статус: &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; — активна, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt; — удалена (scratched), &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — свободна&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || тип файла: &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt; — программа, &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; — данные&lt;br /&gt;
|-&lt;br /&gt;
| 2–3 || 2 || первый сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 4–5 || 2 || последний сектор файла, старший байт первым&lt;br /&gt;
|-&lt;br /&gt;
| 6–7 || 2 || не используются&lt;br /&gt;
|-&lt;br /&gt;
| 8–15 || 8 || имя файла, дополнено пробелами справа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт типа &#039;&#039;&#039;не различает&#039;&#039;&#039; текстовое и токенизированное представление: у обоих &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Указатель каталога всегда начинается с нулевого сектора диска; за ним идёт область каталога. Число секторов указателя задаётся при создании каталога оператором &amp;lt;code&amp;gt;SCRATCH DISK&amp;lt;/code&amp;gt; параметром &amp;lt;code&amp;gt;LS=&amp;lt;/code&amp;gt;, по умолчанию равно 24 и в дальнейшем не меняется; допустимы значения от 1 до 255. В нулевом секторе помещается до 15 записей, в остальных — до 16: первые 16 байт нулевого сектора занимает блок параметров диска. Номер сектора указателя, в который попадает имя файла, вычисляется функцией от самого имени, поэтому порядок имён в указателе не совпадает с порядком размещения файлов в области каталога.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt; выводит типы файлов как &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; (программный), &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt; (файл данных), &amp;lt;code&amp;gt;SP&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;SD&amp;lt;/code&amp;gt; (вычеркнутые из каталога программный и файл данных соответственно), что соответствует сочетанию байта статуса и байта типа в записи.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 10 80 00 31 00 3F 00 00 44 49 47 20 44 45 4D 20&lt;br /&gt;
&lt;br /&gt;
Активная запись, программа, секторы 49…63, имя &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Заголовочный сектор ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1–8 || имя файла, дополнено пробелами&lt;br /&gt;
|-&lt;br /&gt;
| 9 || признак формата записи, см. ниже&lt;br /&gt;
|-&lt;br /&gt;
| 10–255 || нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Байт 9 — единственный признак, по которому различаются два представления программы. Наблюдались значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; (текстовое) и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; (токенизированное), каждое на двух файлах.&lt;br /&gt;
&lt;br /&gt;
=== Связь с параметрами оператора SAVE DC ===&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает три параметра специальных форматов записи программы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр !! Действие&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || программа записывается в оттранслированной форме — во внутреннем формате машины, что сокращает занимаемое место и время загрузки&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || программа защищается от просмотра и записи; после загрузки возможно только выполнение, режим сохраняется до оператора &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt; || оттранслированная и защищённая форма одновременно&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Отсюда следует, что &#039;&#039;&#039;текстовое представление — это режим по умолчанию&#039;&#039;&#039;, а токенизированное включается явным указанием параметра &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Термин «оттранслированная форма» в документации обозначает именно токенизированную запись.&lt;br /&gt;
&lt;br /&gt;
Документированные значения байта 9 (в источнике он назван «признак защиты»):&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Символ !! Защита !! Представление&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || пробел || нет || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || нет || оттранслированное&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt; || есть || текстовое&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; || есть || оттранслированное&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом байт 9 — битовое поле: &#039;&#039;&#039;бит 0&#039;&#039;&#039; — программа оттранслирована (параметр &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;), &#039;&#039;&#039;бит 2&#039;&#039;&#039; — программа защищена (параметр &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;); сочетание обоих соответствует параметру &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;. Значения &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; не используются.&lt;br /&gt;
&lt;br /&gt;
Значения &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; наблюдались на дисковых образах, &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; взяты из документации.&lt;br /&gt;
&lt;br /&gt;
== Секторы потока ==&lt;br /&gt;
&lt;br /&gt;
Первые два байта каждого сектора потока — служебные, в содержимое не входят.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 0&#039;&#039;&#039; — позиция сектора:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Смысл&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; || первый сектор потока&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt; || промежуточный&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; || последний&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В токенизированных программах все секторы потока наблюдались с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;; позиционная разметка &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; подтверждена на текстовых файлах и на потоке значений переменных. Причина различия не установлена.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Байт 1&#039;&#039;&#039; — только у программных секторов. Во всех исследованных потоках программы он равен &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|У секторов данных служебный заголовок занимает &#039;&#039;&#039;один&#039;&#039;&#039; байт, а не два. То, что во всех наблюдавшихся секторах данных на позиции 1 стоял &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, объясняется не разметкой потока, а тем, что это первый байт двухбайтового идентификатора значения, и &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; в нём означает числовой тип. Для сектора, начинающегося со строкового значения, значение будет другим. Использовать байт 1 как признак «программа или данные» нельзя; надёжный признак — байт 9 заголовочного сектора и байт типа в записи каталога.}}&lt;br /&gt;
&lt;br /&gt;
Двухбайтовая длина служебного заголовка программных секторов подтверждается арифметикой: длины записей строк сходятся только при пропуске двух байтов на каждой пересекаемой границе сектора.&lt;br /&gt;
&lt;br /&gt;
В токенизированном файле сначала идут секторы программы, за ними могут следовать секторы значений переменных с собственной нумерацией.&lt;br /&gt;
&lt;br /&gt;
Маркер &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; имеет содержательный смысл: документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает файл как область, в которой между последней записью данных и последним сектором файла остаются неиспользованные секторы, а концевая запись помечает сектор, откуда можно продолжать запись. Таким образом &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; — не просто «последний по счёту сектор», а граница записанной области, и всё, что лежит за ней до конца выделенного диапазона, к текущему содержимому файла не относится.&lt;br /&gt;
&lt;br /&gt;
== Control record ==&lt;br /&gt;
&lt;br /&gt;
Лежит в &#039;&#039;&#039;последнем выделенном&#039;&#039;&#039; секторе, а не сразу за содержимым.&lt;br /&gt;
&lt;br /&gt;
 1C &amp;lt;длина: 2 байта, старший первым&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Остаток сектора — нули. Маркер &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt; соответствует по роли байту &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; в Wang. Второй источник&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; описывает эту структуру как признак конца файла &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;, за которым во втором и третьем байтах сектора записано число реально занятых секторов, а остальные байты нулевые; последний сектор файла данных устроен так же, как последний сектор программного файла.&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; отдельно указывает, что последний сектор файла отводится под служебную информацию, а концевая запись занимает ещё один сектор, поэтому при создании файла его размер следует заказывать на два сектора больше, чем требуется собственно под данные.&lt;br /&gt;
&lt;br /&gt;
Счётчик соответствует графе «Использовано», которую показывает оператор &amp;lt;code&amp;gt;LIST DC&amp;lt;/code&amp;gt;. Согласно документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; он &#039;&#039;&#039;не поддерживается системой автоматически&#039;&#039;&#039;: значение заносит прикладная программа оператором &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, записывающим односекторную концевую запись в текущий сектор из таблицы устройств. Если признак конца данных не записан, в графе «Использовано» всегда стоит 00001; если записан — число реально использованных секторов.&lt;br /&gt;
&lt;br /&gt;
Там, где значение выставлено, оно равно &#039;&#039;&#039;заголовок + секторы содержимого + сам control record&#039;&#039;&#039;, то есть совпадает с правилом Wang:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! Секторов содержимого !! Счётчик !! Ожидаемо&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; || 5 || 7 || 1+5+1 = 7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 16 || 18 || 1+16+1 = 18&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Внимание|Счётчик не является инвариантом файловой системы и при разборе ненадёжен. У &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; он равен 48 при 46 секторах содержимого — значение, по-видимому, осталось от предыдущей, более длинной версии программы, остатки которой лежат в резерве того же файла. У &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; счётчик равен 6 при 5 секторах содержимого, то есть на единицу меньше ожидаемого; возможная причина в том, что там последней операцией была запись потока данных, а не программы. Границы файла следует брать из каталога, а конец данных определять по структуре записей.}}&lt;br /&gt;
&lt;br /&gt;
== Текстовое представление ==&lt;br /&gt;
&lt;br /&gt;
Программа хранится плоским текстом. Кодировка — КОИ-8 (ГОСТ 19768-74): прописная кириллица в 0xE0–0xFF, строчная в 0xC0–0xDF. Номера строк записаны обычными ASCII-цифрами.&lt;br /&gt;
&lt;br /&gt;
* Разделитель строк — байт &#039;&#039;&#039;&amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* Строка &#039;&#039;&#039;не пересекает&#039;&#039;&#039; границу сектора; хвост сектора заполняется нулями.&lt;br /&gt;
* Байт &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) отображается на экране Искры как &amp;lt;code&amp;gt;¤&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Выбор &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; возможен именно потому, что кириллица занимает только верхнюю четверть кодовой таблицы и диапазон 0x80–0x9F остаётся свободным. К самой кодировке КОИ-8 это соглашение отношения не имеет и за пределами Искры не встречается.&lt;br /&gt;
&lt;br /&gt;
Разбор: склеить содержимое секторов, отбрасывая по два служебных байта, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
 02 80 35 20 52 45 4D 20 F0 E5 F4 F2 E5 EE EB EF … 85 38 20 50 52 49 4E 54 …&lt;br /&gt;
&lt;br /&gt;
Заголовок сектора, затем &amp;lt;code&amp;gt;5 REM ПЕТРЕНКО …&amp;lt;/code&amp;gt;, разделитель, &amp;lt;code&amp;gt;8 PRINT …&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Токенизированное представление ==&lt;br /&gt;
&lt;br /&gt;
=== Сборка потока ===&lt;br /&gt;
&lt;br /&gt;
Склеить содержимое секторов с байтом 1 равным &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, отбрасывая по два служебных байта у каждого. Далее смещения даны от начала полученного потока.&lt;br /&gt;
&lt;br /&gt;
=== Пролог и таблицы ===&lt;br /&gt;
&lt;br /&gt;
Поток начинается с трёх 16-битных длин, &#039;&#039;&#039;старший байт первым&#039;&#039;&#039;, за которыми следуют три таблицы:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Смещение !! Размер !! Значение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || L1 — длина таблицы 1 в байтах, запись 8 байт&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || L2 — длина таблицы 2 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || L3 — длина таблицы 3 в байтах, запись 4 байта&lt;br /&gt;
|-&lt;br /&gt;
| 6 || L1 || таблица 1&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1 || L2 || таблица 2&lt;br /&gt;
|-&lt;br /&gt;
| 6+L1+L2 || L3 || таблица 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Программа начинается по смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Проверено на трёх файлах:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Файл !! L1 !! L2 !! L3 !! Старт !! Первая строка&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; || 24 || 20 || 0 || 50 || &amp;lt;code&amp;gt;0 GOTO 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; || 216 || 488 || 108 || 818 || &amp;lt;code&amp;gt;999 REM   КОНЕЦ&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; || 392 || 256 || 0 || 654 || &amp;lt;code&amp;gt;10 REM &amp;quot;ДЕМ6&amp;quot;. ГОРОСКОП&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Формула даёт точную границу, эвристический поиск начала программы не требуется.&lt;br /&gt;
&lt;br /&gt;
==== Таблица 1 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 8 байт. Байты 0–1 — адрес, младший первым, строго возрастающий от записи к записи. Шаг между соседними адресами принимает значения 2, 4, 8, 12, 48, что соответствует размерам объектов: 2 байта — целочисленная переменная BASIC 02, 8 байт — число в BCD, кратные — массивы. Назначение байтов 2–7 не установлено.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1 описывает переменные, объявленные в &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;,&#039;&#039;&#039; и номер записи в ней равен индексу переменной в коде. В файле &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; три оператора &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; перечисляют индексы &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;06&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt;, то есть 49 переменных подряд; L1 = 392 = 49 × 8. Совпадение точное.&lt;br /&gt;
&lt;br /&gt;
==== Таблицы 2 и 3 ====&lt;br /&gt;
&lt;br /&gt;
Записи по 4 байта: &amp;lt;code&amp;gt;&amp;amp;lt;адрес: 2 байта, младший первым&amp;amp;gt; &amp;amp;lt;флаг&amp;amp;gt; &amp;amp;lt;байт&amp;amp;gt;&amp;lt;/code&amp;gt;. Флаг принимает значения &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;91&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A1&amp;lt;/code&amp;gt;. Встречаются записи с нулевым адресом — предположительно незанятые слоты. Формат записей в обеих таблицах одинаков, граница между ними определяется только счётчиками пролога.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Нумерация индексов сквозная&#039;&#039;&#039;: таблица 1 занимает индексы от 0 до (L1/8 − 1), таблица 2 продолжает нумерацию. В &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; индексы &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;3F&amp;lt;/code&amp;gt; адресуют первые пятнадцать записей таблицы 2, и именно у этих пятнадцати адреса образуют непрерывный ряд с шагом 8 (8-байтовые числа BCD).&lt;br /&gt;
&lt;br /&gt;
Оставшиеся записи таблицы 2 в коде не адресуются, а их количество равно числу записей таблицы 1 — 49 в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; и 3 в &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;. Похоже, каждой размерной переменной соответствует второй дескриптор в низкой области памяти, однако на третьем файле это разбиение не проверяется, поэтому пока наблюдение, а не правило.&lt;br /&gt;
&lt;br /&gt;
{{Внимание|1=Соответствие «индекс переменной в коде → имя переменной» не установлено. В таблицах имена в явном виде отсутствуют. Индексы, судя по наблюдениям, назначаются по порядку объявления и первого появления переменной: в &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;F¤&amp;lt;/code&amp;gt;=00, &amp;lt;code&amp;gt;N3&amp;lt;/code&amp;gt;=0E, &amp;lt;code&amp;gt;N6&amp;lt;/code&amp;gt;=11, &amp;lt;code&amp;gt;F1¤&amp;lt;/code&amp;gt;=12, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;=1B, &amp;lt;code&amp;gt;E7%&amp;lt;/code&amp;gt;=1C, &amp;lt;code&amp;gt;U1¤()&amp;lt;/code&amp;gt;=30, &amp;lt;code&amp;gt;F%&amp;lt;/code&amp;gt;=5C, &amp;lt;code&amp;gt;N7&amp;lt;/code&amp;gt;=5D, &amp;lt;code&amp;gt;W0&amp;lt;/code&amp;gt;=7D, &amp;lt;code&amp;gt;U9%&amp;lt;/code&amp;gt;=81. Это главное препятствие для получения читаемого листинга.&lt;br /&gt;
&lt;br /&gt;
Известно, что имена ограничены буквой с необязательной цифрой — оператор &amp;lt;code&amp;gt;LIST V&amp;lt;/code&amp;gt; выводит переменные в алфавитном порядке от &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; до &amp;lt;code&amp;gt;Z9&amp;lt;/code&amp;gt;, группируя их по типам: целые, действительные, символьные, затем массивы целых, действительных и символьных.&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; Такое имя укладывается в девять бит, что делает вероятным его размещение в паре «флаг + байт» записей таблиц 2 и 3. Порядок записей в таблицах при этом не алфавитный, а соответствует порядку объявления переменных.}}&lt;br /&gt;
&lt;br /&gt;
=== Записи строк ===&lt;br /&gt;
&lt;br /&gt;
Программа — последовательность записей, разделённых байтом &#039;&#039;&#039;&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Перед первой записью разделителя нет.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;номер строки: 2 байта BCD&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;тело&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; считается &#039;&#039;&#039;включая сам байт len&#039;&#039;&#039; и до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Следующий разделитель находится по адресу &amp;lt;code&amp;gt;адрес(len) + len&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В отличие от текстового представления, записи &#039;&#039;&#039;пересекают&#039;&#039;&#039; границу сектора; два служебных байта нового сектора в длину не входят.&lt;br /&gt;
&lt;br /&gt;
=== Операторы ===&lt;br /&gt;
&lt;br /&gt;
Тело записи — последовательность операторов:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;токен глагола: 1 байт&amp;amp;gt; &amp;amp;lt;len: 1 байт&amp;amp;gt; &amp;amp;lt;операнды: len байт&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; — длина только операндов, сам байт len не считается. &amp;lt;code&amp;gt;len = 00&amp;lt;/code&amp;gt; означает оператор без операндов, например голый &amp;lt;code&amp;gt;PRINT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наличие явной длины у каждого оператора позволяет разрезать программу на операторы, ещё не зная значений токенов. Эта особенность вынужденная: в отличие от Wang, где многословные команды собираются из нескольких токенов вперемешку с обычным ASCII и границы видны по самому потоку, у Искры весь текст программы переведён в токены и поток непрозрачен.&lt;br /&gt;
&lt;br /&gt;
==== Пример разбора ====&lt;br /&gt;
&lt;br /&gt;
Строка 2000 файла &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, длина 0x54 = 84:&lt;br /&gt;
&lt;br /&gt;
 20 00 54&lt;br /&gt;
 23 01 23                          GOSUB &#039; 35&lt;br /&gt;
 4C 39 E3 1F «БУДЕТЕ …» DD 00 DD E3 12 «-[1] ИЛИ ДВУМЯ [2]» DD&lt;br /&gt;
                                   PRINT &amp;quot;…&amp;quot;;F¤;&amp;quot;…&amp;quot;;&lt;br /&gt;
 41 01 5C                          INPUT F%&lt;br /&gt;
 36 03 5D D9 0E                    N7=N3&lt;br /&gt;
 24 06 0E D7 11 D3 20 01           IF N3&amp;amp;lt;N6THEN2001&lt;br /&gt;
 36 03 5D D9 11                    N7=N6&lt;br /&gt;
&lt;br /&gt;
Сумма: 3 + 59 + 3 + 5 + 8 + 5 = 83, плюс байт длины = 84.&lt;br /&gt;
&lt;br /&gt;
== Таблица токенов ==&lt;br /&gt;
&lt;br /&gt;
=== Глаголы ===&lt;br /&gt;
&lt;br /&gt;
Основной массив значений восстановлен из прошивки интерпретатора (алфавитный список ключевых слов по смещению 0x1840 и 51-байтовый массив перестановки по 0x19B6). Отмеченные записи проверены или исправлены сопоставлением токенизированной и текстовой версий одной программы.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Оператор !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt; || GOTO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; || GOSUB || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;23&amp;lt;/code&amp;gt; || GOSUB&#039; || в прошивочной таблице пропуск; значение выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || IF || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt; || KEYIN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt; || ON ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;27&amp;lt;/code&amp;gt; || DEFFN&#039; ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;28&amp;lt;/code&amp;gt; || PRINTUSING || в опубликованной таблице ошибочно указан GOSUB&#039;; исправлено по данным&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;29&amp;lt;/code&amp;gt; || DATA || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2A&amp;lt;/code&amp;gt; || SAVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2B&amp;lt;/code&amp;gt; || RENUMBER ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2C&amp;lt;/code&amp;gt; || CLEAR ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2D&amp;lt;/code&amp;gt; || LOAD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2E&amp;lt;/code&amp;gt; || LIST ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2F&amp;lt;/code&amp;gt; || RUN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;35&amp;lt;/code&amp;gt; || LET ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt; || &#039;&#039;(присваивание без ключевого слова)&#039;&#039; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; || $GIO ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;41&amp;lt;/code&amp;gt; || INPUT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; || STOP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt; || AND( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;44&amp;lt;/code&amp;gt; || READ || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; || BOOL ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;46&amp;lt;/code&amp;gt; || DIM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;47&amp;lt;/code&amp;gt; || CONVERT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;48&amp;lt;/code&amp;gt; || PACK( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4A&amp;lt;/code&amp;gt; || ADD ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4B&amp;lt;/code&amp;gt; || BIN( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4C&amp;lt;/code&amp;gt; || PRINT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4D&amp;lt;/code&amp;gt; || ROTATE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;4E&amp;lt;/code&amp;gt; || COM ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; || HEXPRINT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;52&amp;lt;/code&amp;gt; || NEXT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;53&amp;lt;/code&amp;gt; || REWIND ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;54&amp;lt;/code&amp;gt; || SELECT || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;55&amp;lt;/code&amp;gt; || BACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;56&amp;lt;/code&amp;gt; || REM || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; || FOR || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; || SKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;59&amp;lt;/code&amp;gt; || END ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5A&amp;lt;/code&amp;gt; || DEFFN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5C&amp;lt;/code&amp;gt; || RES ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5D&amp;lt;/code&amp;gt; || UNPACK( || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5E&amp;lt;/code&amp;gt; || RETURN ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;5F&amp;lt;/code&amp;gt; || TRACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; || OR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;62&amp;lt;/code&amp;gt; || XOR( ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;64&amp;lt;/code&amp;gt; || INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;6D&amp;lt;/code&amp;gt; || COPY ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;74&amp;lt;/code&amp;gt; || DATA LOAD DC || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt; || DATA LOAD DC OPEN T || выведено из данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;79&amp;lt;/code&amp;gt; || DBACKSPACE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7A&amp;lt;/code&amp;gt; || DSKIP ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7B&amp;lt;/code&amp;gt; || LIMITS ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;7E&amp;lt;/code&amp;gt; || MOVE ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;81&amp;lt;/code&amp;gt; || SCRATCH ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt; || VERIFY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значения назначены не по алфавиту, а тематическими группами с запасом внутри каждой: управление ходом выполнения в 0x21–0x2F, ввод-вывод около 0x41–0x4C, дисковые операции в 0x74–0x83. Составные дисковые команды получают &#039;&#039;&#039;один&#039;&#039;&#039; токен на всю фразу, тогда как в Wang та же команда собирается из нескольких (&amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Документация&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt; описывает также операторы &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA LOAD DC OPEN&amp;lt;/code&amp;gt;. Последний соответствует найденному токену &amp;lt;code&amp;gt;75&amp;lt;/code&amp;gt;, поэтому остальные с высокой вероятностью занимают свободные значения в диапазоне 0x70–0x78 — при разборе новых файлов имеет смысл проверять этот участок в первую очередь.&lt;br /&gt;
&lt;br /&gt;
=== Операнды ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Токен !! Значение !! Достоверность&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;~BF&amp;lt;/code&amp;gt; || ссылка на переменную по индексу || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D1&amp;lt;/code&amp;gt; || TO || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D3&amp;lt;/code&amp;gt; || THEN, далее 2 байта BCD — номер строки || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D7&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DC&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DD&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E0&amp;lt;/code&amp;gt; || ссылка на массив, далее индекс переменной || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;TAB(&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E2&amp;lt;/code&amp;gt; || шестнадцатеричный литерал &amp;lt;code&amp;gt;HEX(…)&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;E2 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E3&amp;lt;/code&amp;gt; || строковый литерал: &amp;lt;code&amp;gt;E3 &amp;amp;lt;len&amp;amp;gt; &amp;amp;lt;len байт КОИ-8&amp;amp;gt;&amp;lt;/code&amp;gt; || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E7 &amp;amp;lt;2 байта BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–9999 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; || числовая константа: &amp;lt;code&amp;gt;E8 &amp;amp;lt;байт BCD&amp;amp;gt;&amp;lt;/code&amp;gt;, диапазон 0–99 || подтверждено&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EA&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; || вероятно&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; || разделитель записей строк || подтверждено&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Числовые константы кодируются двумя токенами в зависимости от величины: &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; — один байт BCD (0–99), &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt; — два байта BCD (0–9999). Представление дробных констант в исследованных файлах не встретилось. Номер метки в &amp;lt;code&amp;gt;GOSUB&#039;&amp;lt;/code&amp;gt; хранится &#039;&#039;&#039;двоичным&#039;&#039;&#039;, а не в BCD.&lt;br /&gt;
&lt;br /&gt;
=== Индексация массивов ===&lt;br /&gt;
&lt;br /&gt;
У обращения к элементу массива &#039;&#039;&#039;нет открывающей скобки&#039;&#039;&#039;: ссылка на переменную сама открывает список индексов, а &amp;lt;code&amp;gt;D0&amp;lt;/code&amp;gt; его закрывает.&lt;br /&gt;
&lt;br /&gt;
 01 32 D0        →  01(32)&lt;br /&gt;
 2A 03 E8 01 D0 D0  →  2A(03,1)&lt;br /&gt;
&lt;br /&gt;
Токен &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; используется только как группирующая скобка в выражениях:&lt;br /&gt;
&lt;br /&gt;
 EB 34 E9 33 E9 E8 01 D0  →  (34*33*1)&lt;br /&gt;
&lt;br /&gt;
Разборщик, ожидающий &amp;lt;code&amp;gt;EB&amp;lt;/code&amp;gt; перед индексом массива, рассинхронизируется.&lt;br /&gt;
&lt;br /&gt;
== Поток значений переменных ==&lt;br /&gt;
&lt;br /&gt;
Секторы, следующие за программой в токенизированном файле, содержат значения переменных, записанные в том же формате, что и обычные файлы данных. Структура описана в документации&amp;lt;ref name=&amp;quot;balasanyan&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Служебная информация в секторе двух видов:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;идентификатор сектора&#039;&#039;&#039; — 1 байт в начале сектора, значение &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt; (признак данных);&amp;lt;ref name=&amp;quot;vtoraya&amp;quot; /&amp;gt; под данные остаются 255 байт;&lt;br /&gt;
* &#039;&#039;&#039;идентификатор значения&#039;&#039;&#039; — 2 байта перед каждым значением, содержат тип (числовое или символьное) и длину.&lt;br /&gt;
&lt;br /&gt;
Размеры значений:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Значение !! Со служебными байтами !! Значений в секторе&lt;br /&gt;
|-&lt;br /&gt;
| целое || 2 байта || 4 байта || 63&lt;br /&gt;
|-&lt;br /&gt;
| действительное || 8 байт || 10 байт || 25&lt;br /&gt;
|-&lt;br /&gt;
| символьное || длина значения || длина + 2 || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значение, не помещающееся в секторе целиком, переносится в следующий сектор полностью. Элементы массивов записываются построчно.&lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
&lt;br /&gt;
В файле &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt; сектор данных начинается с идентификатора сектора &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;, за которым идут 25 записей по 10 байт:&lt;br /&gt;
&lt;br /&gt;
 00 08 &amp;amp;lt;8 байт значения&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идентификатор &amp;lt;code&amp;gt;00 08&amp;lt;/code&amp;gt; означает числовое значение длиной 8 байт. Двадцать пятая запись заканчивается на пятом байте от конца сектора, оставшиеся 5 байт не используются: 1 + 25 × 10 + 5 = 256. Расчёт сходится точно и подтверждает однобайтовую длину идентификатора сектора.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм разбора ==&lt;br /&gt;
&lt;br /&gt;
# Прочитать запись каталога: первый и последний сектор, тип должен быть &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Прочитать первый сектор: проверить байт 0 = &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;, взять имя, прочитать байт 9.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;: склеить содержимое секторов, разбить по &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt;, отбросить нули, перекодировать КОИ-8. Готово.&lt;br /&gt;
# Если байт 9 = &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;: собрать поток из секторов с байтом 1 = &amp;lt;code&amp;gt;80&amp;lt;/code&amp;gt;; прочитать L1, L2, L3; перейти к смещению &amp;lt;code&amp;gt;6 + L1 + L2 + L3&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Для каждой записи: номер строки из двух байтов BCD, длина из третьего, тело до следующего &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt;. Если по отсчитанной длине не оказалось &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; — поток рассинхронизирован, разбор остановить.&lt;br /&gt;
# Тело разрезать на операторы по схеме &amp;lt;code&amp;gt;&amp;amp;lt;глагол&amp;amp;gt;&amp;amp;lt;len&amp;amp;gt;&amp;amp;lt;операнды&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Байт длины в каждой записи и в каждом операторе даёт бесплатную проверку целостности на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Отличия от Wang 2200 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Wang 2200 !! Искра-226&lt;br /&gt;
|-&lt;br /&gt;
| Запись каталога || 16 байт || совпадает побайтово&lt;br /&gt;
|-&lt;br /&gt;
| Маркер control record || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркер заголовка || &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;50&amp;lt;/code&amp;gt; для защищённых) || &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Маркеры секторов || битовое поле в старшей тетраде || отдельные значения &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конец строки в программе || &amp;lt;code&amp;gt;0D 00 00&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; как разделитель&lt;br /&gt;
|-&lt;br /&gt;
| Конец блока || &amp;lt;code&amp;gt;FD&amp;lt;/code&amp;gt; (EOB) / &amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; (EOD) || не используется&lt;br /&gt;
|-&lt;br /&gt;
| Диапазон токенов || 0x80–0xFB, 124 значения || глаголы 0x21–0x83, операнды 0xD0–0xEB&lt;br /&gt;
|-&lt;br /&gt;
| Текст в программе || ключевые слова в токенах, остальное обычный ASCII || всё в токенах, ASCII только внутри строковых литералов&lt;br /&gt;
|-&lt;br /&gt;
| Переменные || имена в открытом виде || индексы в таблицу&lt;br /&gt;
|-&lt;br /&gt;
| Длина оператора || отсутствует || обязательный байт после каждого глагола&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таблицы токенов не имеют между собой ничего общего: систематического сдвига нет, совпадений по отдельным байтам нет. Инструментарий Wang для детокенизации переиспользовать нельзя. Совпадает только уровень файловой системы.&lt;br /&gt;
&lt;br /&gt;
Вероятная причина расхождения — кодировка. В Wang верхняя половина таблицы свободна и отдана под ключевые слова; у Искры она занята кириллицей, поэтому глаголы перенесены вниз, а от литерального ASCII в потоке отказались полностью.&lt;br /&gt;
&lt;br /&gt;
== Не установлено ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Имена переменных.&#039;&#039;&#039; Главное препятствие для читаемого листинга. Возможный путь — сопоставление токенизированной и текстовой версий одной программы, если обе сохранились на диске.&lt;br /&gt;
# Полная таблица токенов: часть значений в диапазонах 0x30–0x34, 0x37–0x3F, 0x65–0x78 не занята в известной таблице.&lt;br /&gt;
# Представление дробных числовых констант.&lt;br /&gt;
# Байты 2–7 записи таблицы 1 и байты 2–3 записей таблиц 2 и 3.&lt;br /&gt;
# Природа двухбайтового хвоста без префикса в конце каждого оператора &amp;lt;code&amp;gt;DATA&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;C9 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EE 04&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;00 00&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt;): в длину оператора он входит, но ни под &amp;lt;code&amp;gt;E7&amp;lt;/code&amp;gt;, ни под &amp;lt;code&amp;gt;E8&amp;lt;/code&amp;gt; не подходит.&lt;br /&gt;
# Причина различия разметки секторов между токенизированными и текстовыми потоками: в текстовых файлах наблюдается позиционная схема &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;8F&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt;, в токенизированных все секторы программы идут с маркером &amp;lt;code&amp;gt;02&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Токены операторов &amp;lt;code&amp;gt;DATA SAVE DC END&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA SAVE DC CLOSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;balasanyan&amp;quot;&amp;gt;Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил. — разделы 5.1, 5.2, 11.5, 18.1, 18.4, 18.7.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;vtoraya&amp;quot;&amp;gt;Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988. — структура программного файла и файла данных, значения признака защиты.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
* Баласанян В. Э., Богдюкевич С. В., Шахвердов В. А. Программирование на микроЭВМ «Искра 226». — М.: Финансы и статистика, 1987. — 264 с.: ил.&lt;br /&gt;
* Реконструкция по образам дисков: файлы &amp;lt;code&amp;gt;TRANSFER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ФС&amp;lt;/code&amp;gt; (текстовые), &amp;lt;code&amp;gt;DIG DEM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#СТАТИСТ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ДЕМ6&amp;lt;/code&amp;gt; (токенизированные).&lt;br /&gt;
* Таблица глаголов — из прошивки интерпретатора, по материалам проекта [https://github.com/elaranovikova/iskra226 elaranovikova/iskra226].&lt;br /&gt;
* Аладьев В. З. и др. Персональный компьютер «Искра-226». Архитектура и программное обеспечение: справочное руководство. — Киев, 1988.&lt;br /&gt;
* Структура файловой системы Wang для сопоставления — [http://www.wang2200.org/disk_org.html Wang 2200 Disk Organization].&lt;br /&gt;
&lt;br /&gt;
[[Категория:Искра-226]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%92%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4277</id>
		<title>Шаблон:Внимание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%92%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4277"/>
		<updated>2026-08-11T12:03:59Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Использование */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;ev-notice ev-notice-warning&amp;quot; style=&amp;quot;&lt;br /&gt;
 border:1px solid #f0c36d;&lt;br /&gt;
 border-left:6px solid #f0c36d;&lt;br /&gt;
 background:#fdf6e3;&lt;br /&gt;
 padding:0.6em 1em;&lt;br /&gt;
 margin:0.8em 0;&lt;br /&gt;
 border-radius:3px;&lt;br /&gt;
 overflow:hidden;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold; margin-bottom:0.3em;&amp;quot;&amp;gt;{{{заголовок|Внимание}}}&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{1|{{{текст|Текст предупреждения не указан.}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;{{#if:{{{без категории|}}}||[[Категория:Страницы с предупреждениями]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Использование ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Внимание|Данные не подтверждены, требуется сверка с оригиналом.}}&lt;br /&gt;
{{Внимание|заголовок=Осторожно|Схема содержит ошибку в цепи питания.}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если тексте присутствуют знаки «=», то шаблон нужно записать так:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Внимание|1=Один текст = Другой текст}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%92%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4276</id>
		<title>Шаблон:Внимание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%92%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4276"/>
		<updated>2026-08-11T11:46:20Z</updated>

		<summary type="html">&lt;p&gt;Panther: Новая страница: « &amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;ev-notice ev-notice-warning&amp;quot; style=&amp;quot;  border:1px solid #f0c36d;  border-left:6px solid #f0c36d;  background:#fdf6e3;  padding:0.6em 1em;  margin:0.8em 0;  border-radius:3px;  overflow:hidden;&amp;quot;&amp;gt; &amp;lt;div style=&amp;quot;font-weight:bold; margin-bottom:0.3em;&amp;quot;&amp;gt;{{{заголовок|Внимание}}}&amp;lt;/div&amp;gt; {{{1|{{{текст|Текст предупреждения не указан.}}}}}} &amp;lt;/div&amp;gt;{{#if:{{{без категории|}}}||Катег...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;ev-notice ev-notice-warning&amp;quot; style=&amp;quot;&lt;br /&gt;
 border:1px solid #f0c36d;&lt;br /&gt;
 border-left:6px solid #f0c36d;&lt;br /&gt;
 background:#fdf6e3;&lt;br /&gt;
 padding:0.6em 1em;&lt;br /&gt;
 margin:0.8em 0;&lt;br /&gt;
 border-radius:3px;&lt;br /&gt;
 overflow:hidden;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold; margin-bottom:0.3em;&amp;quot;&amp;gt;{{{заголовок|Внимание}}}&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{1|{{{текст|Текст предупреждения не указан.}}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;{{#if:{{{без категории|}}}||[[Категория:Страницы с предупреждениями]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Использование ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Внимание|Данные не подтверждены, требуется сверка с оригиналом.}}&lt;br /&gt;
{{Внимание|заголовок=Осторожно|Схема содержит ошибку в цепи питания.}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82&amp;diff=4275</id>
		<title>Агат</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82&amp;diff=4275"/>
		<updated>2026-08-10T05:41:12Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Ссылки */ +1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Emuverse}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;«Ага́т»&#039;&#039;&#039; — советский серийный 8-разрядный персональный компьютер. &lt;br /&gt;
&lt;br /&gt;
== Документация ==&lt;br /&gt;
* [[MOS Technology 6502|Документация на процессор 6502]]&lt;br /&gt;
* [[/Техническая информация|Техническая информация]]&lt;br /&gt;
* {{djvu}} {{книга&lt;br /&gt;
|автор = Мымрин М. П.&lt;br /&gt;
|заглавие = Конструкция, применение, программирование и ремонт ПЭВМ «Агат».&lt;br /&gt;
|место = М.&lt;br /&gt;
|издательство = Машиностроение, 1990.&lt;br /&gt;
|том = &lt;br /&gt;
|isbn = &lt;br /&gt;
|ссылка = https://emuverse.ru/downloads/computers/Agat/docs/Mymrin.djvu&lt;br /&gt;
}}&lt;br /&gt;
* {{djvu}} {{книга&lt;br /&gt;
|автор = Петров А. О.&lt;br /&gt;
|заглавие = Персональные компьютеры семейства Apple II (обзор)&lt;br /&gt;
|место = &lt;br /&gt;
|издательство = &lt;br /&gt;
|том = &lt;br /&gt;
|isbn = &lt;br /&gt;
|ссылка = https://emuverse.ru/downloads/computers/Agat/docs/petrov-bw.djvu&lt;br /&gt;
}}&lt;br /&gt;
* Источник: http://www.agat-legacy.narod.ru/&lt;br /&gt;
** [https://emuverse.ru/downloads/computers/Agat/docs/agat-legacy.narod.ru/chs.xls Алгоритм расчета контрольной суммы диска Агат-7, Агат-9]&lt;br /&gt;
** [https://emuverse.ru/downloads/computers/Agat/docs/agat-legacy.narod.ru/image.xls Формат файла образа диска]&lt;br /&gt;
** [https://emuverse.ru/downloads/computers/Agat/docs/agat-legacy.narod.ru/link.xls Интерфейс Агат-PC]&lt;br /&gt;
** [https://emuverse.ru/downloads/computers/Agat/docs/agat-legacy.narod.ru/teac.rar Исходный код прошивки контроллера дисковода с комментариями]&lt;br /&gt;
&lt;br /&gt;
== Файлы ==&lt;br /&gt;
* Источник: [http://emulator3000.org/e3.htm Эмулятор 3000]&lt;br /&gt;
** {{rom}} [https://emuverse.ru/downloads/computers/Agat/firmware/E3000/Agat9.rom Агат-9 ROM]&lt;br /&gt;
** {{rom}} [https://emuverse.ru/downloads/computers/Agat/firmware/E3000/Agat9.fnt Агат-9 Font]&lt;br /&gt;
** {{rom}} [https://emuverse.ru/downloads/computers/Agat/firmware/E3000/Disk140K.rom Загрузочное ПЗУ контроллера НГМД 140 К]&lt;br /&gt;
** {{rom}} [https://emuverse.ru/downloads/computers/Agat/firmware/E3000/Disk1M.rom Загрузочное ПЗУ контроллера НГМД 840 K]&lt;br /&gt;
* [https://emuverse.ru/downloads/computers/Agat/emulators/agat!.zip Эмулятор Сергея Гоцуляка] (Кажется, взят с http://www.sergo.pisem.net, уже неработающего)&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [[w:Агат (компьютер)|статья в Википедии]]&lt;br /&gt;
* https://www.agatcomp.ru/ (https://www.agatcomp.su/) Самый большой архив информации&lt;br /&gt;
* https://amaltsev.github.io/agat-web/ - Новый эмулятор в браузере, написан на JS.&lt;br /&gt;
* https://agatemulator.sourceforge.net/ - Эмулятор, информация о компьютере&lt;br /&gt;
* https://agat-hardware.sourceforge.io/ Проект создания реплик ПЭВМ Агат&lt;br /&gt;
* http://agat9.narod.ru/ Эмулятор, документация, публикации (полумёртв)&lt;br /&gt;
* http://www.agat-legacy.narod.ru/ Программы, немного документации&lt;br /&gt;
* http://kasarino.narod.ru/agat/ Два эмулятора и несколько программ&lt;br /&gt;
* {{www}} [http://retropc.org/index.html?action=w_razdela&amp;amp;id_razdel=31#c113 Документация на сайте retropc.org]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Агат]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=4274</id>
		<title>Ириша/Техническая информация</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=4274"/>
		<updated>2026-08-06T13:26:43Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* ППА */ PC7 fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
= Процессор =&lt;br /&gt;
* [[КР580ВМ80А]]&lt;br /&gt;
&lt;br /&gt;
= Адресное пространство =&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha memory map.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Полное адресное пространство платы процессора Ириши составляет 256 Кб, разбитое на 4 страницы по 64 Кб. Расширение адресных линий до 18 организовано с помощью двух дополнительных сигналов P0 и P1, которые выведены на шину. Эти линии управляются сигналами PC2 и PC3 регистра ВВ55 через специальное ПЗУ диспетчера памяти. &lt;br /&gt;
&lt;br /&gt;
Всего доступно 4 карты распределения памяти. Полученные варианты (для стандартной прошивки ПЗУ блока управления памятью) приведены на рисунке.&lt;br /&gt;
&lt;br /&gt;
После сброса устанавливается карта 0. При этом на нижние адреса подключается ПЗУ, а на верхние &amp;amp;ndash; нулевая подстраница памяти видеоконтроллера.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha MM ROM.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Адрес ПЗУ диспетчера формируется из трех адресных линий процессора A13, A14, A15, что позволяет управлять памятью подстраницами по 8Кб, и выходами ППА PC2 и PC3. Выходы подключаются следующим образом:  MA14, MA15, MP0, MP1 &amp;amp;mdash; на шину, &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;MS3&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;MS4&amp;lt;/span&amp;gt; &amp;amp;mdash; на ПЗУ BIOS (8+8 Кб), &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;MS1&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;MS2&amp;lt;/span&amp;gt; в стандартной прошивке не используются.&lt;br /&gt;
&lt;br /&gt;
Сигналы MC1 и MC2 формируются схемой монтажного ИЛИ элементами с открытым коллектором. Сразу после сброса они устанавливаются в 0 специальным триггером, что выбирает карту памяти 0. После обращения к ППА триггер устанавливается в 1 и эти линии начинают контролироваться выходами ВВ55.&lt;br /&gt;
&lt;br /&gt;
ОЗУ всегда находится на дополнительных платах, которые должны обрабатывать в том числе сигналы P0 и P1. Стандартная прошивка ПЗУ диспетчера памяти подразумевает следующую конфигурацию:&lt;br /&gt;
&lt;br /&gt;
* Страница 0 &amp;amp;mdash; ПЗУ BIOS на плате процессора. До 2-х ИС 2&amp;amp;ndash;8 Кб + 2&amp;amp;ndash;8 Кб.&lt;br /&gt;
* Страница 1 &amp;amp;mdash; расширение ОЗУ. Реализуется либо отдельной платой расширения, либо [[Ириша/Модуль контроллера НГМД RTV*001.89 ТО|контроллером НГМД]].&lt;br /&gt;
* Страница 2 &amp;amp;mdash; ОЗУ на плате видеоконтроллера. Обычно используется как основное ОЗУ компьютера.&lt;br /&gt;
* Страница 3 &amp;amp;mdash; не используется в стандартной прошивке.&lt;br /&gt;
&lt;br /&gt;
Каждая страница памяти разбита на 4 подстраницы по 16 Кб. Порядок подключения подстраниц в адресное пространство процессора также задается прошивкой ПЗУ диспетчера памяти через преобразование A14, A15 &amp;amp;mdash; MA14, MA15.&lt;br /&gt;
&lt;br /&gt;
ПЗУ BIOS на плате процессора устанавливается в две панельки, адресное пространство каждой &amp;amp;mdash; 8 Кб. Если устанавливаются ИС меньшей ёмкости, пространство до 8 Кб не используется.&lt;br /&gt;
&lt;br /&gt;
= Порты ввода-вывода =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wide&amp;quot;&lt;br /&gt;
! Адрес !! Вид операции !! Назначение !! Примечание&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 00H&amp;amp;nbsp;&amp;amp;hellip;&amp;amp;nbsp;03H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;amp;mdash; &lt;br /&gt;
|| Резерв &lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 04H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R &lt;br /&gt;
|| Регистр данных клавиатуры&lt;br /&gt;
|| К589ИР12&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 05H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R &lt;br /&gt;
|| Регистр данных клавиатуры (дубль)&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 06H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Регистр данных последовательного интерфейса&lt;br /&gt;
|| КР580ВВ51&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 07H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления/статуса последовательного интерфейса&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 08H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Счётчик 0 таймера&lt;br /&gt;
|| КР580ВИ53&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 09H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Счётчик 1&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0AH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Счётчик 2&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0BH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0CH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Считывание состояния регистра запроса прерывания / Запись команд ICW1, OCW2, OCW3&lt;br /&gt;
|| КР580ВН59&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0DH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Считывание регистра маски прерываний / Запись команд ICW2, ICW3, ICW4, OCW1&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0EH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Дублирует 0CH&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0FH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Дублирует 0DH&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 10H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Порт A ППА&lt;br /&gt;
|| КР580ВВ55&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 11H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Порт B ППА&lt;br /&gt;
|| &amp;lt;small&amp;gt;(В МПСиС ошибочно порт 12H)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 12H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Порт C ППА&lt;br /&gt;
|| &amp;lt;small&amp;gt;(В МПСиС ошибочно порт 11H)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 13H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления ППА&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 14H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Порт расширения ROM. Чтение &amp;amp;ndash; получение следующего байта. Запись &amp;amp;ndash; сброс счетчика.&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 15H&amp;amp;nbsp;&amp;amp;hellip;&amp;amp;nbsp;1BH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;amp;mdash; &lt;br /&gt;
|| Резерв &lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | D8H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления видеорежимом&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | D9H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления цветом&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | DAH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр выбора видеостраницы&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Видеоконтроллер =&lt;br /&gt;
&lt;br /&gt;
Видеоконтроллер поддерживает только графические режимы. Текстовые режимы эмулируются программным обеспечением.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha vodeomodes.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Объем памяти, необходимой для режима 1 &amp;amp;ndash; 8000 байт (страницы выровнены по границе 8 Кб), для режимов 2 и 3 &amp;amp;ndash; 16000 байт. Участки памяти от конца экрана до границы страницы 8 или 16 Кб могут использоваться ПО по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
== Регистры управления видеоконтроллером ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha video registers.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
* D8H &amp;amp;ndash; регистр управления режимом.&lt;br /&gt;
** 0AH, 1AH  &amp;amp;ndash; режим 1.&lt;br /&gt;
** 8AH &amp;amp;ndash; режим 2.&lt;br /&gt;
** 9AH &amp;amp;ndash; режим 3.&lt;br /&gt;
** x8H, x2H, x0H &amp;amp;ndash; гашение изображения.&lt;br /&gt;
* D9H &amp;amp;ndash; регистр управления цветом.&lt;br /&gt;
* DAH &amp;amp;ndash; регистр выбора рабочих страниц.&lt;br /&gt;
&lt;br /&gt;
== Монохромные режимы ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha mono modes.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
В монохромном режиме среднего разрешения каждый бит отвечает за засветку одной точки на экране.&lt;br /&gt;
&lt;br /&gt;
В режиме высокого разрешения, в зависимости от установки перемычки П1, контроллер может работать аналогично режиму среднего разрешения (П1 снята), тогда в строке выводится 640 независимых точек, либо, за счет снижения разрешения (П1 установлена), яркость соседних точек усредняется (используется для бытовых телевизоров с узкой полосой пропускания).&lt;br /&gt;
&lt;br /&gt;
В режиме 1 на экране отображается одна из двух экранных страниц 8000 байт (адрес начала страниц выровнен но границе 8 Кб), в левом верхнем углу находится первый байт изображения. Старший бит соответствует первой точке.&lt;br /&gt;
&lt;br /&gt;
Структура регистра управления цветом показана на рисунке:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Irisha mode 1 register.png|300px]] [[Изображение:Irisha mode 3 pallette.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Цветной режим ==&lt;br /&gt;
&lt;br /&gt;
В режиме 2 каждая точка может быть окрашена одним из трёх цветов из выбранной палитры (доступно 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Irisha mode 2.png|300px]] [[Изображение:Irisha mode 2 pallette.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Контроллер прерываний =&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha interrupts.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Наивысший приоритет имеет прерывание ITIMER от таймера ВИ53. IKBD и IUART отвечают за прием данных с клавиатура и по локальной сети.&lt;br /&gt;
&lt;br /&gt;
= ППА =&lt;br /&gt;
&lt;br /&gt;
ППА построен на основе КР580ВВ55. Порты используются следующим образом:&lt;br /&gt;
&lt;br /&gt;
* Порт A: Ввод/вывод данных.&lt;br /&gt;
* Порт B: Только ввод. &lt;br /&gt;
* Порт C: Только вывод.&lt;br /&gt;
&lt;br /&gt;
Выходы порта C используются для управления работой внутренних схем модуля процессора.&lt;br /&gt;
На входе порта B установлен мультиплексор К555КП13. Управление мультиплексором осуществляется выходом PC7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Функции входов и выходов БИС ППА КР580ВВ55&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Сигнал&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Назначение&lt;br /&gt;
|-&lt;br /&gt;
! PC7 = 1 (см. примечание)&lt;br /&gt;
! PC7 = 0 (см. примечание)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |&#039;&#039;&#039;PA0&#039;&#039;&#039; || Вход-выход ПИ 0 || Старт цикла преобразователя игрового адаптера&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA1&#039;&#039;&#039; || Вход-выход ПИ 1 || Выбор игрового пульта. Запись по сигналу PC6. «0» — пульт 1, «1» — пульт 2&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA2&#039;&#039;&#039; || Вход-выход ПИ 2 || rowspan=&amp;quot;2&amp;quot; | Не используется&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA3&#039;&#039;&#039; || Вход-выход ПИ 3&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA4&#039;&#039;&#039; || Вход-выход ПИ 4 || Канал побитного управления звуком (шумовой канал)&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA5&#039;&#039;&#039; || Вход-выход ПИ 5 || Разрешение работы канала 1 синтезатора звука. «0» — разрешена&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA6&#039;&#039;&#039; || Вход-выход ПИ 6 || Не используется&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA7&#039;&#039;&#039; || Вход-выход ПИ 7 || Выход программного канала последовательного интерфейса&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB0&#039;&#039;&#039; || Вход статуса ПИ S13 || Анализ завершения цикла преобразования игрового адаптера: «0» — завершён&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB1&#039;&#039;&#039; || Вход статуса ПИ S14 || Анализ состояния кнопки игрового пульта 1: «0» — нажата&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB2&#039;&#039;&#039; || Вход статуса ПИ S15 || Анализ состояния кнопки пульта 2: «0» — нажата&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB3&#039;&#039;&#039; || Вход статуса ПИ S16 || Вход программного канала последовательного интерфейса&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB4&#039;&#039;&#039; || Вход статуса ПИ S12 || Анализ сигнала BUSRQ системной магистрали: «1» — установлен&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB5&#039;&#039;&#039; || Вход статуса ПИ S11 || Анализ сигнала PON системной магистрали: «1» — норма&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB6&#039;&#039;&#039; || Вход анализа типа дополнительной платы EX1 || Анализ сигнала INT1 системной магистрали: «1» — установлен&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB7&#039;&#039;&#039; || Вход анализа типа дополнительной платы EX2 || Анализ готовности клавиатуры: «1» — код принят&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC0&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Выход управления ПИ SO1&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC1&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Выход управления ПИ SO2&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC2&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Управление выбором рабочей карты памяти MS0&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC3&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Управление выбором рабочей карты памяти MS1&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC4&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Разрешение захвата системной магистрали: «1» — захват разрешён&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC5&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Выбор режима игровой адаптер — синтезатор звука: «1» — игровой адаптер, «0» — синтезатор звука&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC6&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Строб записи в дополнительный регистр управления игровым адаптером и синтезатором звука&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC7&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Выбор функций портов А и В&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внимание! В «Красной книге» значения PC7 приведены неверно! Анализ схемы и кода ПЗУ дает обратные значения.&lt;br /&gt;
&lt;br /&gt;
= Клавиатура =&lt;br /&gt;
&lt;br /&gt;
Клавиатура записывает код нажатой клавиши в регистр К589ИР12, после чего устанавливается сигнал прерывания IKBD. После чтения регистра сигнал IKBD сбрасывается. Также, наличие кода символа в регистре можно контролировать с помощью бита PB7 ППА.&lt;br /&gt;
&lt;br /&gt;
= Последовательный интерфейс =&lt;br /&gt;
&lt;br /&gt;
Последовательный интерфейс предназначен для обмена информацией с внешними устройствами, в том числе бытовым магнитофоном. Последовательный интерфейс имеет два канала: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Канал 1&#039;&#039;&#039; построен на базе КР580ВВ51.&lt;br /&gt;
* &#039;&#039;&#039;Канал 2&#039;&#039;&#039; реализуется программно: вывод с помощью манипуляции выходом PA7 ППА, ввод с помощью анализа состояния PB3 ППА.&lt;br /&gt;
&lt;br /&gt;
Скорость обмена в Канале 1 задается с помощью программирования режимов КР580ВВ51 и канала 0 КР580ВИ53, который используется как делитель базовой частоты Ф2TTL, равной 1,7777 МГц.&lt;br /&gt;
&lt;br /&gt;
Канал 2 используется для обмена с бытовым магнитофоном и поддерживает скорости до 1200 бод. Метод и формат записи соответствует стандарту MSX.&lt;br /&gt;
&lt;br /&gt;
Для полноценной работы магнитофон должен поддерживать вход отключения двигателя. Программа работы с магнитофоном использует бит PA7 ППА для вывода информации, выход DTR ВВ51 для управления двигателем и вход DSR для чтения данных. Полученные байты должны читаться из регистра данных ВВ51.&lt;br /&gt;
&lt;br /&gt;
= Параллельный интерфейс (ПИ) =&lt;br /&gt;
&lt;br /&gt;
Параллельный интерфейс предназначен для подключения принтеров и других периферийных устройств. Интерфейс реализует следующие сигналы:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;P0&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;amp;hellip;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;P7&amp;lt;/span&amp;gt; &amp;amp;mdash; двунаправленные. Подключены к каналу A ППА.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;S01&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;S02&amp;lt;/span&amp;gt; &amp;amp;mdash; выходы, PC0 и PC1 ППА.&lt;br /&gt;
* S11&amp;amp;nbsp;&amp;amp;hellip;&amp;amp;nbsp;S16 &amp;amp;mdash; входы, подключены к каналу B ППА.&lt;br /&gt;
&lt;br /&gt;
В зависимости от типа подключенного устройства, конкретное назначение сигналов определяется схемой его подключения и программным обеспечением.&lt;br /&gt;
&lt;br /&gt;
= Таймер =&lt;br /&gt;
&lt;br /&gt;
В качестве таймера используется БИС К580ВИ53. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал 0&#039;&#039;&#039; используется как делитель частоты для последовательного интерфейса.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал 1&#039;&#039;&#039; используется для формирования временных интервалов. Опорная частота формируется делением сигнала Ф2TTL на 256, что позволяет формировать временные интервалы от 432 мкс до 9,4 сек с дискретностью 144 мкс. Выходной сигнал канала поступает на контроллер прерываний и имеет наивысший приоритет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал 2&#039;&#039;&#039; используется для генерации звука.&lt;br /&gt;
&lt;br /&gt;
= Синтезатор звука =&lt;br /&gt;
&lt;br /&gt;
Синтезатор звука состоит из двух независимых каналов:&lt;br /&gt;
* Канал 1 использует второй канал К580ВИ53.&lt;br /&gt;
* Канал 2 предназначен для синтеза шумовых сигналов и управляется битом PA4 ППА.&lt;br /&gt;
&lt;br /&gt;
Разрешение работы обоих каналов управляется выводом PC5 ППА (активный &amp;amp;ndash; низкий). &lt;br /&gt;
&lt;br /&gt;
= Расширение ROM =&lt;br /&gt;
&lt;br /&gt;
Дополнительное ПЗУ подключается к специальному разъему на плате процессора. Размер может достигать 64 Кб. Доступ к содержимому производится через порт 14H &amp;amp;ndash; чтение передает следующий байт, запись сбрасывает счётчик.&lt;br /&gt;
&lt;br /&gt;
Наличие дополнительно ПЗУ определяется, если при чтении 65536 байт из порта 14H, хотя бы один полученный байт будет отличаться от FFH.&lt;br /&gt;
&lt;br /&gt;
Каждый файл содержит заголовок, в котором указан адрес загрузки, длина и название. Файлы идут последовательно, выравнивания по адресам нет. Файл может состоять из основного блока и нескольких экстентов. Формат записи файла в ПЗУ следующий:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha ext rom.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Для использования в имени файла латинских букв или смешивания кодировок может потребоваться использование символов переключения подстраниц КОИ7 &amp;amp;ndash; 0x0E и 0x0F.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ириша]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_%D0%9D%D0%93%D0%9C%D0%94_RTV*001.89_%D0%A2%D0%9E&amp;diff=4273</id>
		<title>Ириша/Модуль контроллера НГМД RTV*001.89 ТО</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_%D0%9D%D0%93%D0%9C%D0%94_RTV*001.89_%D0%A2%D0%9E&amp;diff=4273"/>
		<updated>2026-08-06T10:26:20Z</updated>

		<summary type="html">&lt;p&gt;Panther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ|Источник=https://zx-pk.ru/threads/13938-pevm-quot-irisha-quot.html KokaF77 (https://zx-pk.ru/members/6456-kokaf77.html), 30.09.2010 12:18}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ПЭВМ &amp;quot;ИРИША-М&amp;quot;&lt;br /&gt;
&lt;br /&gt;
МОДУЛЬ КОНТРОЛЛЕРА НГМД «RTV*001.89»&lt;br /&gt;
&lt;br /&gt;
(Техническое описание)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;АННОТАЦИЯ&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настоящий паспорт, объединённый с техническим описанием и инструкцией по эксплуатации, является документом, удостоверяющим гарантированные изготовителем основные параметры и технические характеристики модуля КНГМД «RTV*001.89».&lt;br /&gt;
&lt;br /&gt;
Кроме того, настоящее руководство позволяет ознакомиться с устройством и принципом работы модуля КНГМД и устанавливает правила его эксплуатации, соблюдение которых обеспечивает постоянную готовность модуля к работе.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
= 1. Назначение и основные технические характеристики модуля контроллера НГМД «RTV*001.89» =&lt;br /&gt;
&lt;br /&gt;
1.1. Модуль контроллера накопителей на гибких магнитных дисках (НГМД) «RTV*001.89» предназначен для оснащения ПЭВМ «ИРИША» или её модификаций накопителями на гибких магнитных дисках.&lt;br /&gt;
&lt;br /&gt;
1.2. Модуль позволяет работать с одно- или двухсторонними механизмами НГМД, имеющими стандартный интерфейс SHUGART. Одновременно контроллер может обслуживать до 2-х накопителей 133 мм и 75 мм формата, обеспечивающих двойную плотность записи (MFM).&lt;br /&gt;
&lt;br /&gt;
1.3. Модуль позволяет расширить объем ОЗУ базовой модели ПЭВМ на 128-512 К байт в зависимости от типа установленных микросхем динамической памяти (К565РУ5, К565РУ71, К565РУ72, К565РУ7 в различных комбинациях).&lt;br /&gt;
&lt;br /&gt;
1.4. Модуль содержит 3 розетки для установки микросхем ПЗУ типа К573РФ4 (К573РФ6) или К573РФ7. Допускается также применение микросхем ПЗУ иностранного производства: I2764, I2728 или I27256. Общий объем постоянной памяти модуля может изменяться от 8 до 96 К байт.&lt;br /&gt;
&lt;br /&gt;
1.5. Модуль занимает 26 адресов в адресном пространстве ПЭВМ. Доступ процессора и памяти модуля осуществляется через два «окна» по 16 К каждое, в общем адресном пространстве процессора под контролем схемы управления расширением памяти.&lt;br /&gt;
&lt;br /&gt;
1.6. Временные диаграммы обмена информацией с модулем через системную магистраль приведены на рис. 1.1, 1.2.&lt;br /&gt;
&lt;br /&gt;
1.7. Питание модуля осуществляется от двух источников питающих напряжений +5 В (1 А) и +12 В (100 мА), без учета тока потребления механизмами НГМД.&lt;br /&gt;
&lt;br /&gt;
1.8. Конструктивно модуль контроллера представляет собой печатную плату размером 230×150×23 мм. Модуль снабжен устройством его монтажа в системный блок ПЭВМ. На задней панели модуля находится разъем (Х2: вилка СН053-60-23) для подключения механизмов НГМД. Назначение его сигналов приведено в табл. 1.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:RTV-01-89 1-1.jpg|400px]] [[Файл:RTV-01-89 1-2.jpg|410px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Таблица 1.1 – Назначение сигналов разъема Х2 модуля КНГМД&lt;br /&gt;
|-&lt;br /&gt;
! Контакт !! Сигнал !! Назначение !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| 4-56 чётные || ОВ || Общий вывод ||&lt;br /&gt;
|-&lt;br /&gt;
| 3 || MOT.ON1 || Включение двигателя B || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 7 || INDEX || Индекс || от НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 9 || DR.SEL0 || Выбор дисковода А || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 11 || DR.SEL1 || Выбор дисковода В || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 15 || MOT.ON0 || Включение двигателя А || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 17 || DIRECTION || Направление перем. гол. || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 19 || STEP || Шаг перемещения гол. || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 21 || WR.DATA || Данные для записи || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 23 || WR.EN || Разрешение записи || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 25 || TRACK0 || Дорожка 00 || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 27 || WR.PROT. || Защита записи || от НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 29 || RAW.READ || Данные чтения || от НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 31 || SIDE SEL. || Выбор рабочей стороны || от НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 33 || READY || Готовность || от НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 35 || FAULT RES. || || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 37 || FAULT || || от НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 39 || TWO SIDES || || от НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 58, 60 || +12B || Питание двигателя НГМД || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 59 || +5B || Питание схемы НГМД || к НГМД&lt;br /&gt;
|-&lt;br /&gt;
| 1, 22, 5, 13, 41-55 неч. || || Не используются&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 2. Порядок установки модуля контроллера в ПЭВМ и работа с ним =&lt;br /&gt;
&lt;br /&gt;
2.1. Для монтажа модуля контроллера «RTV*001.89» в ПЭВМ необходимо вынуть его из упаковки, проверить правильность установки перемычек и микросхем ПЗУ, а затем установить модуль в системный блок ПЭВМ на любое свободное место, зафиксировав его винтами.&lt;br /&gt;
&lt;br /&gt;
2.2. Заводом-изготовителем модуль поставляется настроенным с помощью перемычек на работу со 133 мм НГМД с двойной плотностью записи. Перемычки выбора типа микросхем памяти ПЗУ должны быть настроены на работу с микросхемами К573РФ4 или К573РФ6 или их зарубежным аналогом I2764. Число рабочих сторон и дорожек на диске от типа поставляемого дисковода и указывается в сертификате на панели модуля.&lt;br /&gt;
&lt;br /&gt;
2.3. Схема расположения перемычек на модуле показана на рис. 2.1. Они показаны в таком положении, в каком должны находиться после выпуска и настройки модуля изготовителем. В розетке Х6 должна быть установлена микросхема D52 (К573РФ4 или К573РФ6)с &amp;quot;прошитой&amp;quot; в нее программной ядра операционной системы *RTV*CP/M 20.&lt;br /&gt;
&lt;br /&gt;
2.4. Для разбора порядка работы с модулем контроллера НГМД рассмотрим его внутреннюю организацию, показанную на функциональной схеме, которая приведена на рис. 2.2.&lt;br /&gt;
&lt;br /&gt;
2.5. Модуль содержит в своем составе интерфейсный узел с расширенным ПЗУ, узел ОЗУ и узел собственно контроллера НГМД. Со стороны процессора модуль представлен как набор на 26 регистров в области адресов ввода-вывода системной магистрали (20Н-39Н) и как один или несколько банков памяти протяженностью до 64 К байт. Назначение адресов ввода-вывода приведено в таблице 2.1.&lt;br /&gt;
&lt;br /&gt;
2.6. Селектор адресов памяти выполнен на базе БИС 2-х входового ОЗУ, представляющего собой с точки зрения программиста, регистровый файл из 16-ти четырехбитных регистров (рабочие адреса - 20Н - 2FH). Лог. &amp;quot;0&amp;quot; в любом из битов означает включение в работу одного из банков ОЗУ или ПЗУ. Естественно, ситуация, при которой в любом из регистров содержится более одного логического нуля, является ошибочной и должна быть исключена при работе с модулем. Номер каждого из регистров отвечает за определенный сегмент памяти системной магистрали. Так: регистр с адресом 20Н отвечает за страницу памяти системной магистрали в нулевой странице, начиная с адреса 0000Н до 3FFFH. Упрощенная схема регистра показана на рис. 2.3.&lt;br /&gt;
&lt;br /&gt;
Если требуется включить в эту область ОЗУ или ПЗУ, то в соответствующий бит регистра с этим номером должна быть занесена информация с нулем в одном из битов включения памяти. В табл. 2.1 приведено соответствие номеров регистров с адресами памяти системной магистрали.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:RTV-01-89 2-2.jpg|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:RTV-01-89 2-3.jpg|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Таблица 2.1 — Рабочие адреса модуля&lt;br /&gt;
|-&lt;br /&gt;
! Адрес !! Тип операции !! Назначение !! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| 20Н || rowspan=16 | Запись/чтение || Рег. 0 (00000Н) || rowspan=&amp;quot;16&amp;quot; | Файл&amp;lt;br/&amp;gt;управления&amp;lt;br/&amp;gt;ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 21Н || Рег. 1 (04000Н)&lt;br /&gt;
|-&lt;br /&gt;
| 22Н || Рег. 2 (08000Н) &lt;br /&gt;
|-&lt;br /&gt;
| 23Н || Рег. 3 (0С000Н) &lt;br /&gt;
|-&lt;br /&gt;
| 24Н || Рег. 4 (10000Н) &lt;br /&gt;
|-&lt;br /&gt;
| 25Н || Рег. 5 (14000Н)&lt;br /&gt;
|-&lt;br /&gt;
| 26Н || Рег. 6 (18000Н)&lt;br /&gt;
|-&lt;br /&gt;
| 27Н || Рег. 7 (1С000Н) &lt;br /&gt;
|-&lt;br /&gt;
| 28Н || Рег. 8 (20000Н)&lt;br /&gt;
|-&lt;br /&gt;
| 29Н || Рег. 9 (24000Н)&lt;br /&gt;
|-&lt;br /&gt;
| 2АН || Рег. 10 (28000Н)&lt;br /&gt;
|-&lt;br /&gt;
| 2ВН || Рег. 11 (2С000Н) &lt;br /&gt;
|-&lt;br /&gt;
| 2СН || Рег. 12 (30000Н)&lt;br /&gt;
|-&lt;br /&gt;
| 2DН || Рег. 13 (34000Н)&lt;br /&gt;
|-&lt;br /&gt;
| 2EН || Рег. 14 (38000Н)&lt;br /&gt;
|-&lt;br /&gt;
| 2FН || Рег. 15 (3С000Н) &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Регистры управления НГМД&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=2 | 30Н || Запись || Регистр команд || rowspan=&amp;quot;10&amp;quot; | БИС&amp;lt;br/&amp;gt;КНГМД&amp;lt;br/&amp;gt;КР1810ВГ93&lt;br /&gt;
|-&lt;br /&gt;
| Чтение || Регистр статуса &lt;br /&gt;
|-&lt;br /&gt;
| 31Н || rowspan=3 | Запись/чтение || Регистр номера трека &lt;br /&gt;
|-&lt;br /&gt;
| 32Н || Регистр номера сектора &lt;br /&gt;
|-&lt;br /&gt;
| 33Н || Регистр данных. Обмен без схемы автосинхронизации &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=2 | 34Н || Запись || То же, что в 30Н &lt;br /&gt;
|-&lt;br /&gt;
| Чтение || То же, что в 30Н &lt;br /&gt;
|-&lt;br /&gt;
| 35Н || rowspan=3 | Запись/чтение || То же, что и 31Н &lt;br /&gt;
|-&lt;br /&gt;
| 36Н || То же, что и 32Н &lt;br /&gt;
|-&lt;br /&gt;
| 37Н || Регистр данных. Схема автосинхронизации включена &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Служебные регистры&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=2 | 38Н || Запись || Дополнительный регистр управления модулем &lt;br /&gt;
|-&lt;br /&gt;
| Чтение || Вспомогательный регистр состояния модуля &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=2 | 39Н || Запись || Регистр выбора подбанка ОЗУ &lt;br /&gt;
|-&lt;br /&gt;
| Чтение || Регистр состояния триггера контроля ошибки чтения &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.7. При включении машины состояние регистрового файла неопределено и информация в нем должна быть сформирована стартовой программой инициализации. Чтобы не было ложных включений памяти при &amp;quot;холодном&amp;quot; старте, специальная схема блокирует работу памяти модуля до первого обращения к дополнительному регистру управления с адресом 38Н. Программа начального старта должна сначала записать в файл управления необходимую информацию, а затем включить память модуля в работу, записав байт управления в регистр с адресом 38Н. Информация в регистровой файл может как записываться, так считываться из него.&lt;br /&gt;
&lt;br /&gt;
2.8. При использовании модуля в составе ПЭВМ &amp;quot;ИРИША-М&amp;quot; с операционной системой СР/М 2.2 память модуля размещается в первой странице с адресом 10000Н до 1FFFFH. Поскольку размер этой страницы равен 64 К байт, для работы с полным объемом памяти используется внутреннее переключение банков путем перезаписи содержимого файла управления.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
Замечание от Emuverse:&lt;br /&gt;
&lt;br /&gt;
В реальности имеет смысл адресовать только регистры 24H&amp;amp;mdash;27H, так как только страница 1 полного адресного пространства доступна для свободного использования. Страница 0 принадлежит ПЗУ BIOS, 2 &amp;amp;mdash; основная память на видеоконтроллере, то есть использование этих страниц приведет к конфликту с другими устройствами. 3 &amp;amp;mdash; не используется в стандартной прошивке ПЗУ диспетчера памяти и на шине не может быть получена без замены этого ПЗУ.&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.9. Для работы с ОЗУ емкостью до 512 Кбайт модуль содержит дополнительный регистр - регистр выбора подбанка (адрес - 39Н), при помощи которого внутри выбранного банка памяти организуются 4 подбанка размером 64 К байт. Указанный регистр доступен как для записи, так и для чтения.&lt;br /&gt;
&lt;br /&gt;
2.10. Модуль контролирует информацию, записанную в ОЗУ по четности в каждой байте. При обнаружении ошибки включается триггер ошибки памяти, состояние этого триггера может быть считано из регистра с адресом 39Н (бит D7). Сброс триггера осуществляется при выполнении операции записи в регистр выбора подбанка, имеющий такой же адрес (39Н). Структура этого регистра показана на рис. 2.4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:RTV-01-89 2-4.jpg|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.11. Управление механизмом НГМД осуществляется БИС КНГМД. Работа с этим БИС осуществляется через 8 регистров, (рабочие адреса - 30Н-37Н), причем 6 из них имеют попарно одинаковые функции (30Н и 34Н; 31Н и 35Н; 32 и 36Н). Назначение регистров БИС КНГМД показано в табл. 2.1. Разница между регистрами с адресом 33Н и 37Н заключается в том, что при обращении к адресу 37Н запускается в работу система автосинхронизации обмена данными по получению сигналов DRQ и INTRQ от БИС КНГМД. Более подробно ознакомиться с назначением регистров можно в описании БИС КНГМД, приведённом в приложении А настоящего описания.&lt;br /&gt;
&lt;br /&gt;
2.12. Кроме регистров БИС КНГМД, модуль имеет дополнительный регистр управления и вспомогательный регистр статуса. Их структура показана на рис. 2.5 и рис. 2.6. Через дополнительный регистр управления могут программироваться номер рабочего накопителя, номер стороны диска и некоторые другие функции.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:RTV-01-89 2-5.jpg|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.13. В настоящем техническом описании не рассматриваются вопросы о способах и форматах записи на магнитный диск, а также организация работы операционной системы СР/М с контроллером. С этими вопросами пользователь может ознакомиться самостоятельно в специальной литературе.&lt;br /&gt;
&lt;br /&gt;
= 3. Устройство и работа модуля =&lt;br /&gt;
&lt;br /&gt;
3.1. В модуле контроллера «RTV*001.89» можно выделить три основные части:&lt;br /&gt;
&lt;br /&gt;
* узел контроллера НГМД;&lt;br /&gt;
* узел оперативной памяти;&lt;br /&gt;
* интерфейсная часть с дополнительным ПЗУ.&lt;br /&gt;
&lt;br /&gt;
Информационное взаимодействие узлов между собой осуществляется через внутреннюю магистраль.&lt;br /&gt;
&lt;br /&gt;
== 3.2 Узел контроллера НГМД ==&lt;br /&gt;
&lt;br /&gt;
3.2.1. Узел контроллера НГМД выполнен на базе БИС КР1818ВГ93 (аналог микросхемы WD1793 фирмы Western Digital). Упрощённая схема узла приведена на рис. 3.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:RTV-01-89 3-1.jpg|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.2.2. БИС КР1818ВГ93 содержит все необходимое для управления работой маханизмами накопителей и цепи, выполняющие преобразование потока байтов данных из ЭВМ в соответствующую последовательность битов для записи на диск, а также цепи обратного преобразования. БИС позволяет работать как с одинарной (FM), так и с двойной плотностью записи (MFM), но в данной конкретной реализации БИС КНГМД используется только в режиме с двойной плотностью записи (MFM). Однако, для работы БИС требуются внешние схемы сепаратора данных и прекомпенсации, цепи выбора накопителя и рабочей стороны диска.&lt;br /&gt;
&lt;br /&gt;
3.2.3. Выход сигналов на интерфейс дисковых накопителей осуществляется через буферные усилители на мощных формирователях с открытым коллектором D62 и D68. Приём сигналов с дискового интерфейса производится через буферные микросхемы D58 и D59. Сигнал READY подаётся непосредственно на одноименный вход БИС (вывод 32). Сигнал чтения данных RAW.READ поступает на вход сепаратора данных. Состояние линии FAULT и TWO SIDES транслируется на входы вспомогательного регистра состояния и может быть проанализировано процессором по адресу 38H (биты D2, D1; см. рис. 2.6.).&lt;br /&gt;
&lt;br /&gt;
3.2.4. Схема сепаратора данных (далее сепаратор данных) выполнена на микросхемах D46, D55-D57 и D61-D63. Сепаратор данных вырабатывает сигнал синхронизации чтения данных RCLC, подаваемый на соответствующий вход БИС КНГМД (вход 26). Фронты этого сигнала располагаются между импульсами данных, считываемых с диска.&lt;br /&gt;
&lt;br /&gt;
Выходном формирователь собран на одновибраторе D55.2, запускающемся отрицательным фронтом импульсов входного потока данных. Он вырабатывает импульсы длительностью около 1 мкс, необходимые для работы фазового компаратора, который собран на микросхемах D46-2, D61, D62-3. Фазовый компаратор сравнивает частоту и фазу сигнала входного потока данных с сигналом генератора, управляемого напряжением (ГУН), и по их разнице вырабатывает соответствующий сигнал управления. ГУН выполнен на микросхеме КР531ГГ1 (D63). Средняя частота ГУН равна 4 МГц. Выходной сигнал ГУН подается на делитель частоты (микросхема D65), с выводов которого снимаются сигналы 500 кГц для фазового компаратора и 250 кГц для подачи на вход RCLC.&lt;br /&gt;
&lt;br /&gt;
При отсутствии обращения к диску (на выходе 33 БИС КР1818ВГ93 - высокий уровень) на вход сепаратора данных подается сигнала опорной частотью 500 кГц, устанавливающий частоту ГУН вблизи заданного значения.&lt;br /&gt;
&lt;br /&gt;
Переменный резистор R26 служит для установки средней частоты ГУН. Средняя частота 4 МГц должна вырабатываться при напряжении на входе 3 микросхемы ГУН около 3.3 В.&lt;br /&gt;
&lt;br /&gt;
Рис. 3.2 поясняет работу схемы сепаратора данных.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:RTV-01-89 3-2.jpg|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.2.5. Схема прекомпенсации работает при записи информации на диск. Она выполнена на сдвиговом регистре D66 и элементах D56.1 и D57.1. Управление работой схемы осуществляется самой БИС КНГМД с помощью сигналов SR (выход 18) и SL (выход 17). При высоком уровне сигнала SR положение информационного импульса в выходном потоке задерживается в зависимости от положения перемычек П20, П21 и П22 на 125-250 или 500 нс, соответственно. При высоком уровне на выходе SL дополнительный импульс выдается на аналогичное время раньше. Если оба сигнала неактивны, то изменение положения импульса не производится.&lt;br /&gt;
&lt;br /&gt;
На выходе схемы прекомпенсации установлен выходной формирователь D67.2, фиксирующий длительность импульсов записи в районе 250-300 нс независимо от времени прекомпенсации. Если время прекомпенсации устанавливается равным 250 нс, то выходной формирователь может не устанавливаться. В этом случае перемычка П23 должна быть замкнута.&lt;br /&gt;
&lt;br /&gt;
3.2.6. БИС КНГМД вырабатывает сигнал для включения двигателя накопителя HLD (выход 28). Этот сигнал запускает одновибратор задержки D70-1, блокирующий через ввод HLT (вывод 23) БИС отработку алгоритма выполнения команды на время разгона двигателя. Двигатель включается сразу же при получении команды, но одновибратором D70-2 удерживается во включенном состояния еще 2-3 сек. Если за этот промежуток времени обращения к диску не было, то его двигатель выключается. В противном случае - одновибратор перезапускается и двигатель остается во включенном состояния. В запущенном состоянии одновибратор D70-2 блокирует одновибратор задержки D70.1 на время разгона двигателя, что обеспечивает максимальную скорость работы с диском. Таким образом, при частых обращениях к диску двигатель его механизма постоянно включен и никаких дополнительных задержек не возникает.&lt;br /&gt;
Кроме того, указанная схема уменьшает число разгонов двигателя, при которых потребляется повышенный ток.&lt;br /&gt;
&lt;br /&gt;
3.2.7. Выбор накопителя и выбор рабочей стороны диска производится через дополнительный регистр управления D71 (адрес обращения 38Н - см. рис. 2.5). Поскольку многие типы накопителей не имеют возможности индикации состояния, когда двигатель накопителя включён, а индицируют только выбор накопителя, то соответствующие сигналы выбора стробируются на выходных формирователях D62 сигналом включения мотора MOT.ON. Таким образом, сигналы выбора накопителя активны только при обращении к диску.&lt;br /&gt;
&lt;br /&gt;
3.2.8. Контроллер «RTV*001.89» имеет ряд отличий от аналогичного модуля контроллера «RTV*070.87» в котором описываемый узел выполнен на базе БИС WD2793 импортного производства. Контроллер «RTV*001.89» в отличие от контроллера «RTV*070.87», работающего со всеми типами дисков, может обслуживать только два накопителя на 133 мм или 75 мм дисках. Он работает только с двойной плотностью записи на диск (MFM). Однако, указанные ограничения, не сказываются на эксплуатационных характеристиках стандартных комплектов ПЭВМ &amp;quot;ИРИША-М&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== 3.3. Узел ОЗУ модуля ==&lt;br /&gt;
&lt;br /&gt;
3.3.1. Модуль КНГМД «RTV*001.89» содержит от 128 до 512 К байт оперативной памяти (ОЗУ), обычно используемой для организации электронного диска. Это ОЗУ выполнено на БИС динамической памяти К565РУ5Д (ёмкость 64 К бит), К565РУ71Д или К565РУ72Д (ёмкость 128 К бит) или К565РУ7Д (ёмкость 256 К бит). Возможно также применение и более быстродействующих микросхем памяти серии К565 с последними буквами &amp;quot;Г&amp;quot;, &amp;quot;В&amp;quot;, или &amp;quot;Б&amp;quot;. В зависимости от типа устанавливаемых микросхем будет изменяться и общий объем ОЗУ моделя. С точки зрения программиста это ОЗУ представляет несколько банков памяти, которые могут включаться на любое из мест адресного пространства системной магистрали. Принципиальная схема узла ОЗУ приведена на рис. 3.3.&lt;br /&gt;
&lt;br /&gt;
3.3.2. Микросхемы динамической памяти используют принцип мультиплексирования входного адреса, который передаётся в два приема: сначала передаётся 8-ми или 9-ти разрядный адрес строки, а затем - адрес столбца той же разрядности. Девятибитные адреса используются при применении памяти К565РУ7Д емкостью 256 К бит. Для реализации механизма мультиплексной передачи требуются два вспомогательных стробирующих сигнала: RAS (Row address strobe) и CAS (Column address strobe). Временные соотношения между сменой частей адреса и стробирующих сигналов достаточно жестко детерминированы.&lt;br /&gt;
&lt;br /&gt;
Особенность динамической памяти является то, что её содержимое необходимо периодически регенерировать. Этот процесс реализуется либо выполнением 128 циклов чтения за 1 или 2 мс с перебором всех адресов столбцов, либо выполнением такого же числа циклов, но без подачи сигнала CAS. Время регенерации определеяется быстродействием микросхем примененной памяти. Для микросхем с последней буквой &amp;quot;Д&amp;quot; эта время составляет 1 мс, для всех остальных типов оно равно 2 мс. Регенерация можно производить лавинно, когда последовательно выполняются все циклы с исключением возможности доступа к памяти со стороны внешних устройств или распределенно, когда циклы регенерации вставляются между циклами обращения к памяти. В последнем случае, учитывая, что процессор не обращается к памяти в каждом возможном его цикле, прозрачность доступа может быть обеспечена максимально возможной. Среднее время между циклами регенерации во втором случае должно быть около 8 мкс для микросхем с 1 мс временем регенерации и около 16 мкс для остальных типов микросхем. В описываемом модуле используется более прогрессивный второй принцип регенерации. Переключение времени регенерации производится перестановкой перемычек П13 и П12.&lt;br /&gt;
&lt;br /&gt;
3.3.3. Указанные особенности БИС динамической памяти требуют для их работы специальной схемы обрамления, задающей временные соотношения между сигналами синхронизации и управления. Обычно такую схему называют контроллером ОЗУ. Контроллер ОЗУ, кроме указанной выше функции, осуществляет арбитраж между запросами на регенерацию и обмен информацией с внешней магистралью.&lt;br /&gt;
&lt;br /&gt;
3.3.4. Контроллер ОЗУ включает в себя четыре триггера управления (микросхемы D37 и D39), сдвиговый регистр (микросхемы D35 и D36), таймер регенерации D47 и некоторую логику обрамления. Он работает следующим образом: при отсутствии обращений триггер запроса находится в неактивном состоянии, а его низкий выходной уровень блокирует по входу «Сброс» работу сдвигового регистра D35 и D36, задающего временные сдвиги между сигналами синхронизации. Запросы цикла памяти поступают либо от триггера запроса (сигнал MEM), либо от таймера регенерации (сигнал RFSH). При получении какого-либо запроса по заднему фронту тактирующего сигнала CLC16M активируется триггер запроса, снимается сигнал «Сброс» со сдвигового регистра и начинается выполнение цикла памяти. Одновременно триггер типа цикла D37-2 фиксирует, какой именно цикл должен выполняться: цикл памяти или цикл регенерации. Во время исполнения цикла памяти сигнал синхронизации на триггер типа цикла не подается, и таким образом изменение его состояния в этот период блокировано. После снятия блокирующего сигнала со сдвигового регистра в него по каждому положительному фронту тактирующего сигнала CLC16M начинает «вдвигаться» логическая единица. По мере заполнения регистра единицами формируются необходимые сигналы управления и синхронизации. После восьми тактирующих импульсов сигнал с выхода сдвигового регистра сбрасывает триггер запроса, обнуляет сдвиговый регистр, и цикл памяти завершается. Временная диаграмма, иллюстрирующая этот процесс, приведена на рис. 3.4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:RTV-01-89 3-4.jpg|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос регенерации RFSH имеет более низкий приоритет по сравнению с запросом со стороны процессора, поэтому при одновременном поступлении обоих запросов сначала будет выполняться цикл памяти. Если какой-либо запрос поступает во время выполнения цикла, то арбитраж производится только по завершении текущего цикла памяти.&lt;br /&gt;
&lt;br /&gt;
В циклах регенерации с помощью микросхем D48 и D50 формирование сигналов CAS и WE запрещается. Кроме того, в циклах указанного выше типа сигнал RAS вырабатывается для обоих банков памяти одновременно. Это означает, что регенерация информации в обоих банках также выполняется одновременно. При обмене информацией с ОЗУ модуля сигнал RAS формируется только для рабочего банка, и, таким образом, осуществляется их селекция.&lt;br /&gt;
&lt;br /&gt;
3.3.5. В узел ОЗУ входит счётчик D45, вырабатывающий сигналы опорных частот для контроллера ОЗУ и узла контроллера НГМД. На этот счётчик подаётся сигнал опорной частоты 16 МГц с системной магистрали ПЭВМ.&lt;br /&gt;
&lt;br /&gt;
3.3.6. Запросы на обращение к памяти поступают с системной магистрали асинхронно, поэтому для организации обмена данными с ней требуются ещё два триггера D39: триггер запроса и триггер готовности. Триггер запроса D39-1 фиксирует требование на обмен информацией с памятью (активен высокий уровень сигнала MEM) и удерживает его до того момента, когда запрос будет удовлетворён. Этот триггер сбрасывается за 62 нс до момента завершения соответствующего цикла памяти. Одновременно со сбросом триггера запроса взводится триггер готовности D39-2, вырабатывающий сигнал MRDY интерфейсной части модуля и управляющий выходным буферным усилителем данных. В интерфейсной части из сигнала готовности памяти MRDY формируется сигнал готовности RDY, подаваемый на системную магистраль. Триггер готовности сбрасывается, когда сигнал разрешения обмена данными по системной магистрали TE становится неактивным, т.е. по завершению цикла обмена.&lt;br /&gt;
&lt;br /&gt;
3.3.7. Адресный мультиплексор модуля выполнен на микросхемах D41, D42 и D48-3, D48-4, D44-4. Две первые имеют выход с тремя состояниями, который активируется только при выполнении циклов обмена с системной магистралью. Остальные микросхемы необходимы только в том случае, если в модуль установлены микросхемы динамической памяти с информационной ёмкостью более 64 К бит. Они мультиплексируют 9-й разряд адреса. На вход этого разряда мультиплексора поступает информация с регистра выбора подбанка памяти.&lt;br /&gt;
&lt;br /&gt;
3.3.8. Узел регенерации вырабатывает адреса памяти при выполнении регенерации содержимого памяти. Он состоит из 8-ми разрядного счётчика D49 и выходного буферного регистра D51 с тремя состояниями на выходе. На время выполнения цикла регенерации информация защёлкивается в регистре и выдаётся на линии адреса микросхем памяти.&lt;br /&gt;
&lt;br /&gt;
3.3.9. Регистр выбора подбанка памяти выполнен на микросхеме D12. Он служит для увеличения объёма рабочей памяти свыше 128 К байт за счёт введения в пределах этого адресного пространства ещё 4-х подбанков. Адрес регистра подбанка памяти — 39Н. Информация из этого регистра может быть прочитана по тому же адресу. В седьмом бите при этом будет передаваться информация о состоянии бита ошибки по паритету. Данные во внутреннюю магистраль передаются через буферный формирователь D13 с тремя состояниями на выходе.&lt;br /&gt;
&lt;br /&gt;
3.3.10. Поскольку цикл обращения к памяти имеет фиксированную длительность, то при выполнении операций чтения данные на выходе микросхем памяти будут появляться лишь на короткий промежуток времени. Регистр D11 позволяет запомнить считанные данные и сохранить их на шине данных неограниченное время. На время действия сигнала MRDY выходы этого регистра переводятся в третье состояние, освобождая шину данных для приёма информации из памяти. По окончании действия сигнала MRDY (цикл чтения окончен) считанная информация защёлкивается в регистре и выдаётся на шину данных.&lt;br /&gt;
&lt;br /&gt;
3.3.11. ОЗУ модуля имеет схему контроля правильности записанной информации. Каждый записываемый байт сопровождается специальным битом, хранимым в отдельном разряде ОЗУ. Поэтому разрядность ОЗУ равна девяти. При считывании информации производится контроль её правильности с использованием бита чётности. Если обнаруживается ошибка, то взводится соответствующий триггер в схеме контроля паритета (чётности). Эта схема состоит из специализированной ИС D4 (КП531ИП5), логики D3.1, D5.1, D5.4 и D10.2 и триггера ошибки паритета D14-2. Состояние последнего через формирователь с тремя состояниями на выходе D13-3 может быть передано во внутреннюю магистраль и проанализировано процессором. Адрес чтения такой же как и адрес регистра выбора подбанка памяти — 39Н. Информация передаётся в бите D7 считываемого байта. Логическая единица в этом бите указывает на то, что была обнаружена ошибка. Сброс триггера производится при выполнении записи в регистр выбора подбанка.&lt;br /&gt;
&lt;br /&gt;
3.3.12. По сравнению с разработанным ранее модулем *RTV*070.87 модуль *RTV*001.89 допускает увеличение объёма памяти до 512 К байт. Поскольку адресация такого большого объёма только средствами, содержащимися в модуле *RTV*070.87 невозможна, то в новый модуль введён дополнительный регистр выбора подбанка памяти. В программном отношении эти модули снизу вверх совместимы. Т.е., программы, написанные для работы с модулем *RTV*070.87, будут работать и с модулем *RTV*001.89, но не всегда наоборот.&lt;br /&gt;
&lt;br /&gt;
== 3.4. Интерфейсная часть модуля ==&lt;br /&gt;
&lt;br /&gt;
3.4.1. Интерфейсная часть модуля отвечает за взаимодействие с системной магистралью ПЭВМ. Она состоит из селектора адресов устройств ввода-вывода, селектора адресов памяти и схемы синхронизации обмена. Кроме того, она содержит буферный двунаправленный формирователь, через который осуществляется обмен между шинами данных системной и внутренней магистралей. Он выполнен на микросхеме КР580ВА86 (D1). В состав интерфейсной части входит также ПЗУ, в котором обычно хранится ядро операционной системы и некоторые наиболее часто употребляемые программы. Упрощённая схема узла приведена на рис. 3.5.&lt;br /&gt;
&lt;br /&gt;
3.4.2. Селектор адресов ввода-вывода выделяет область рабочих регистров модуля и вырабатывает необходимые сигналы управления для остальных его узлов. Селектор выполнен на ПЗУ К556РТ4 (D7). Он выделяет адреса в диапазоне от 20Н до 39Н. При обращении по любому из этих адресов на выходе 9 микросхемы D7 устанавливается низкий уровень (активен сигнал IDS), и через элементы D16-3, D16.2, D2.4 выдаётся сигнал на включение буферного формирователя данных D1 и на генерацию в системную магистраль сигнала готовности READY посредством элементов D16.3, D6.4 и D40.3. На выходе 10 D7 низкий уровень устанавливается при обращении к группе адресов 20–2FН, относящихся к селектору адресов памяти. Аналогично, на выходе 11 ПЗУ выделяется группа адресов 30–37Н, относящаяся к БИС КНГМД. На выходе 12 низкий уровень возникает при обращении к дополнительным регистрам модуля. Логика D9, D15 и D3 служит для окончательной селекции и генерации управляющих сигналов и стробов, поскольку младший разряд адреса на ПЗУ не поступает.&lt;br /&gt;
&lt;br /&gt;
3.4.3. При обращении к адресу 37Н сигнал IDS и, соответственно, сигнал готовности READY вырабатываются только в том случае, если хотя бы один из сигналов: DRQ либо INTRQ, поступающих на вход ПЗУ, установлен высоким уровнем. Таким способом достигается автосинхронизация при обмене данными с БИС КНГМД при чтении или записи сектора. По своим функциям адрес 33Н аналогичен адресу 37Н, но автосинхронизация не производится.&lt;br /&gt;
&lt;br /&gt;
3.4.4. Селектор адресов памяти выполнен на основе БИС двухвходового ОЗУ D8 (КР1802ИР1). Это ОЗУ имеет организацию 16×4 бит. Канал А этой БИС подключён к внутренней шине данных (младшие биты) модуля. 16 ячеек этого ОЗУ по каналу А адресуются как регистры ввода-вывода. Информация, используемая затем в канале В, заносится в ОЗУ через канал А.&lt;br /&gt;
&lt;br /&gt;
В качестве адресов канала В используются 4 старшие разряда адресной шины системной магистрали. Этот канал работает только в режиме считывания. Низкий уровень на выходных линиях канала В позиционно управляет выборкой одного из двух банков ПЗУ или ОЗУ. Естественно, ситуация при которой более одного выхода находятся в низком уровне является запрещённой, так как при этом возникнут столкновения на шине данных. При обращении к ПЗУ сигнал готовности формируется через те же элементы, как и в случае с группой внешних устройств без задержек. При обращении к ОЗУ сигнал готовности формируется элементом D40-3 только после выполнения соответствующего цикла памяти.&lt;br /&gt;
&lt;br /&gt;
3.4.5. При включении питания содержимое ОЗУ управления памятью неопределено D8, поэтому оно может быть включено в работу только после занесения в него соответствующей информации. Обычно, эта операция осуществляется программой инициализации модуля. Блокировка работы селектора адресов памяти выполняется соответствующим триггером D14.1. Он сбрасывается при получении модулем сигнала RESET с системной магистрали и его выходной сигнал MEMON становится неактивным, блокируя работу селектора. Активация триггера происходит при выполнении операции записи в дополнительный регистр управления диском.&lt;br /&gt;
&lt;br /&gt;
3.4.6. Модуль имеет 3 розетки для установки микросхем ПЗУ. Общая ёмкость ПЗУ модуля определяется типом применённых микросхем и их количеством и может варьироваться в пределах от 8-ми до 96 К байт. Селектор адресов модуля позволяет работать с двумя банками ПЗУ. Минимальный размер банка составляет 16 К байт, но дальнейшая селекция до 8 К байт проводится только в пределах одного банка.&lt;br /&gt;
Тип применяемых микросхем задаётся с помощью перемычек П6 – П11 одновременно для всех розеток модуля. На рис. 3.5 показано их расположение для ПЗУ различных типов.&lt;br /&gt;
&lt;br /&gt;
= 4. Меры предосторожности при работе с модулем контроллера НГМД =&lt;br /&gt;
&lt;br /&gt;
4.1. Модуль контроллера НГМД представляет собой сложное электронное устройство, в котором использованы интегральные микросхемы, изготовленные по МОП-технологии. Поэтому при транспортировке, установке в системный блок ПЭВМ, эксплуатации и ремонте модуля следует обеспечивать необходимые условия, исключающие воздействие на него статического электричества.&lt;br /&gt;
&lt;br /&gt;
4.2. Транспортировка модуля должна производиться в специальной упаковке, защищающей его элементы от механических и электрических воздействий. Контакты разъёма X1, предназначенного для подключения модуля к системной магистрали, должны быть закорочены транспортной перемычкой-заглушкой.&lt;br /&gt;
&lt;br /&gt;
4.3. К эксплуатации модуля допускаются лица, изучившие настоящее описание. Регулировка и ремонт модуля производится лицами, прошедшими специальную подготовку на заводе-изготовителе.&lt;br /&gt;
&lt;br /&gt;
4.4. Все монтажные и ремонтные работы: установка модуля в системный блок ПЭВМ, подключение механизмов НГМД, замена вышедших из строя микросхем, установка перемычек и микросхем ПЗУ, производятся только при полном отсутствии питающих напряжений.&lt;br /&gt;
&lt;br /&gt;
4.5. При эксплуатации, ремонте и транспортировке следует не допускать механических повреждений модуля.&lt;br /&gt;
&lt;br /&gt;
4.6. Следует оберегать контакты разъёмов, особенно розеток (X3 – X6) для установки БИС КНГМД и ПЗУ, от попадания на них пыли и грязи, что может привести к снижению надёжности работы модуля. При очистке от загрязнений использовать растворители, не повреждающие материал платы и не смывающие маркировочные надписи с деталей, например, этиловый спирт.&lt;br /&gt;
&lt;br /&gt;
4.7. При эксплуатации, транспортировке и хранении недопустимо прямое попадание воды на детали модуля. В случае, если это произошло, следует удалить воду и просушить модуль перед включением в работу в течении 1–2 часов до полного высыхания.&lt;br /&gt;
&lt;br /&gt;
= 5. Проверка модуля =&lt;br /&gt;
&lt;br /&gt;
5.1. Изготовителем модуль контроллера поставляется настроенным с помощью перемычек на работу со 133 мм механизмами НГМД с двойной плотностью записи на диск, с установленной микросхемой D52 (К573РФ4, К573РФ6 или I2764) в розетке X6 с &amp;quot;зашитой&amp;quot; в неё программой ядра операционной системы *RTV*CP/M 20.&lt;br /&gt;
&lt;br /&gt;
5.2. Проверка работоспособности модуля в условиях потребителя производится путём оценки реакции ПЭВМ и самого модуля КНГМД на команды, подаваемые с клавиатуры.&lt;br /&gt;
&lt;br /&gt;
5.2.1. При включении питания ПЭВМ во время отработки программы &amp;quot;холодного старта&amp;quot; на экране монитора должно появиться сообщение, загружаемое из ПЗУ модуля процессора. Если при этом машина &amp;quot;зависает&amp;quot;, необходимо проверить правильность установки микросхем резидентного ПЗУ на модуле процессора и его селектора адреса. Эти ПЗУ должны позволять работать с модулем КНГМД *RTV*001.89 (BOOT7 или DDT3, CONOUT3 и селектор адреса МА). Проверить надёжность их установки в розетках и правильность установки перемычек на плате модуля процессора. Если указанные действия не приведут к восстановлению работоспособности ПЭВМ, следует обратиться к полной проверке ПЭВМ.&lt;br /&gt;
&lt;br /&gt;
5.2.1. При выборе варианта дисковой загрузки программа ядра операционной системы, &amp;quot;зашитая&amp;quot; в ПЗУ модуля КНМД, производит определение объёма и тестирование памяти, установленной на плате КНГМД, и выводит сообщение на экран монитора; ставит промпт о загрузке операционной системы или выдаёт сообщение об ошибке. Если этого не происходит, следует убедиться в отсутствии механических повреждений на плате модуля, проверить правильность установки перемычек в соответствии с рис. 2.1 настоящего описания, надёжность установки микросхемы ПЗУ в розетку X6. Если указанные действия не приведут к восстановлению работоспособности модуля, его следует отправить для ремонта изготовителю.&lt;br /&gt;
&lt;br /&gt;
5.3. Более полное тестирование модуля может быть произведено специальной тестовой программой, которая загружается в ПЭВМ либо с диска (если это возможно), либо с магнитофонной ленты. Эта программа производит диагностику модуля КНГМД с точностью до узла. Для работы с программой теста необходимо пользоваться её описанием.&lt;br /&gt;
&lt;br /&gt;
5.4. При групповых поставках возможна комплектация ПЭВМ дополнительной платой ПЗУ с &amp;quot;зашитой&amp;quot; тестовой программой.&lt;br /&gt;
&lt;br /&gt;
5.5. При передаче технической документации в состав комплекта может входить описание стенда по наладке и проверке модуля котроллера НГМД.&lt;br /&gt;
&lt;br /&gt;
= ПРИЛОЖЕНИЕ 1 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:RTV-01-89 APP-1.jpg|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= ПРИЛОЖЕНИЕ 2. Рекомендации по монтажу модуля КНГМД =&lt;br /&gt;
&lt;br /&gt;
Монтаж модуля контроллера НГМД можно начинать после изготовления печатной платы по фотошаблону 1893. Изготовленная плата не должна иметь разрывов проводников и коротких замыканий проводников между собой и на шины питания. Перед запайкой деталей необходимо установить перемычки, соединив одноимённые контакты, маркированные на плате цифрами 1 и 1.....8, проводником (см. рис. 2.1).&lt;br /&gt;
&lt;br /&gt;
Подобрать комплектующие изделия в соответствии с перечнем элементов, приведённым в разделе 6 настоящего описания. Микросхему ПЗУ (D7) запрограммировать по таблице, приведённой в приложении 1 (карта &amp;quot;прошивки&amp;quot; FDCSA1.) Установку микросхем производить в соответствии с монтажной схемой, приведённой на рис. Пр2.1. Желательно соблюдать следующий порядок установки комплектующих изделий:&lt;br /&gt;
&lt;br /&gt;
— сначала запаять резисторы, транзисторы, резисторные сборки, конденсаторы и микросхемы, за исключением микросхем памяти D17–D34, после чего следует тщательно отмыть плату модуля от остатков флюса.&lt;br /&gt;
&lt;br /&gt;
— Запаять разъёмы X1, X2 и розетки X4–X6 для установки микросхем ПЗУ D52–D54 и БИС КНГМД (D64). Отмыть места пайки, избегая попадания промывочной жидкости в розетки, так как это приводит к значительному снижению качества контактов при установке микросхем.&lt;br /&gt;
&lt;br /&gt;
— запаять микросхемы памяти, соблюдая меры предосторожности от воздействия статического электричества; удалить остатки флюса.&lt;br /&gt;
&lt;br /&gt;
— в розетку X6 установить микросхему ППЗУ (К573РФ4 (РФ6) или их зарубежный аналог I2764 с запрограммированным в неё ядром операционной системы и имеющей карту &amp;quot;прошивки&amp;quot; *RTV*CP/M 20.&lt;br /&gt;
&lt;br /&gt;
Ещё раз проверить установку комплектующих изделий согласно рис. Пр2.1, убедиться внешним осмотром в отсутствии коротких замыканий на плате и провести наладку модуля.&lt;br /&gt;
&lt;br /&gt;
= Дополнительная информация для пользователей ОС &amp;quot;ИРИША&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
Версия BIOS – 20 для модуля КНГМД на МС К1818ВГ93.&lt;br /&gt;
&lt;br /&gt;
Версия операционной системы CP/M для ПЭВМ &amp;quot;ИРИША&amp;quot; номер версии BIOS – 20 предназначена для программной поддержки модуля контроллера накопителей на гибких дисках *RTV*001.89. Программа размещена в МС ПЗУ типа К573РФ4 (или I2764). Программа размещена в розетку на плате контроллера, которая устанавливается согласно техническому описанию модуля.&lt;br /&gt;
&lt;br /&gt;
Версия 20 программно совместима с предыдущими версиями BIOS. Формат файлов и алгоритм работы с накопителями на гибких магнитных дисках, расположение и назначение стартовых конфигурационных перемычек полностью соответствует описанию BIOS версии 10. Более подробная информация приводится в дополнительном материале по версии 10.&lt;br /&gt;
&lt;br /&gt;
Для программного изменения конфигурации системы можно использовать программу CONFIG версия 10. Форматирование дисков выполняется с помощью программы FORMAT версия 20. Программы форматирования ранних версий не будут работать с модулем *RTV*001.89.&lt;br /&gt;
&lt;br /&gt;
Операционная система версии 20 не будет работать при установке её в модуль КНГМД *RTV*071.86.&lt;br /&gt;
&lt;br /&gt;
Основное отличие версии 20 от предыдущих заключается в способности программно поддерживать расширенную память модуля *RTV*001.89. При этом объём квазидиска в зависимости от типа установленных микросхем может изменяться от 128 до 512 Кбайт. При старте операционная система автоматически определяет объём имеющейся памяти и соответственно конфигурирует системные параметры квазидиска.&lt;br /&gt;
&lt;br /&gt;
== Старт операционной системы ==&lt;br /&gt;
&lt;br /&gt;
Если в стартовом меню ПЭВМ выбирается диск, то управление передаётся программе ОС. Прежде всего программа определяет, является ли данный старт первым после включения ПЭВМ в работу. Для этого программа тестирует 5 специфических байт, расположенных в зоне входного вектора BIOS. После первого включения ПЭВМ в этих ячейках находится случайная информация, что является признаком &amp;quot;холодного&amp;quot; старта. Если же операционная система была ранее загружена, и начальный старт был вызван нажатием клавиши сброса без выключения питания, то по этим адресам находится код 0С3Н.&lt;br /&gt;
&lt;br /&gt;
Поскольку версия 20 автоматически распознаёт ситуации &amp;quot;холодного&amp;quot; старта и рестарта, то, в отличие от предыдущих версий, никакого запроса на очистку квазидиска не выводится. Если система зарегистрировала необходимость холодного старта, то проводится начальный тест памяти, определяются исправные банки памяти, которые затем объединяются в квазидиск. Тип установленных МС памяти значения не имеет. Более того, если отдельные участки памяти неисправны, то соответствующие сегменты ОЗУ размером 16 Кбайт будут исключены из общего распределения памяти и не включаются в квазидиск.&lt;br /&gt;
&lt;br /&gt;
Во время тестирования памяти ОС выводит на экран дисплея символ II на каждый тестируемый трек.&lt;br /&gt;
&lt;br /&gt;
Результаты тестирования и объём квазидиска, зафиксированный ОС, выводятся на экран в сообщении:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RAM – disk tracks:XX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где XX – число исправных сегментов (треков) размером 16 Кбайт каждый, включённых в пространство квазидиска. Объём квазидиска в килобайтах вычисляется путём умножения числа зафиксированных системой треков на 16.&lt;br /&gt;
&lt;br /&gt;
В действительности число исправных сегментов памяти равно XX+1, однако 1 сегмент ОС резервирует для системных нужд (в нём размещается буфер сектора НГМД и т.д.) и не включает его в состав квазидиска.&lt;br /&gt;
&lt;br /&gt;
Иногда после начального теста может появляться сообщение об ошибке:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Fatal error&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это сообщение обусловлено одной из двух причин:&lt;br /&gt;
&lt;br /&gt;
а). число исправных сегментов меньше 2-х.&lt;br /&gt;
&lt;br /&gt;
б). среди исправных сегментов нет ни одного, подходящего для использования его в системных целях (в силу особенностей физического распределения памяти только некоторые треки пригодны для системного использования).&lt;br /&gt;
&lt;br /&gt;
В любом случае дальнейшая работа операционной системы невозможна, и после появления этой ошибки ПЭВМ останавливается. Если такая ошибка возникла, попробуйте выключить ПЭВМ и, включив её снова, ещё раз запустить ОС. При дальнейшем появлении такой ошибки замените неисправные микросхемы памяти или обратитесь к поставщику ПЭВМ для устранения неисправности.&lt;br /&gt;
&lt;br /&gt;
В ситуации повторного старта без выключения питания тест памяти и реконфигурация квазидиска не производится. Модуль BIOS не перегружается из ПЗУ, поэтому ОС считает, что действительна конфигурация, установленная ранее. При этом все изменения конфигурации, сделанные с помощью программы CONFIG (изменение принтера, форматы НГМД и т.д.), в отличие от предыдущих версий сохраняются.&lt;br /&gt;
&lt;br /&gt;
Естественно, что при этом информация, записанная в квазидиске также сохраняется.&lt;br /&gt;
&lt;br /&gt;
Попытка перезапустить ОС после сброса с клавиатуры при условии, что тест памяти после холодного старта диагностировал фатальную ошибку, приводит к непредсказуемым результатам.&lt;br /&gt;
&lt;br /&gt;
== Новые сообщения об ошибках ==&lt;br /&gt;
&lt;br /&gt;
Операционная система версии BIOS – 20 поддерживает аппаратно реализованный в модуле *RTV*001.89 механизм контроля исправности памяти по дополнительному биту чётности. Это обеспечивает пользователю дополнительную защиту информации при работе с квазидиском, а также при чтении с НГМД.&lt;br /&gt;
&lt;br /&gt;
В случае возникновения такой ошибки операционная система выводит сообщение:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Parity error&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Флаг ошибки передаётся также модулю BDOS, который сообщает далее на каком диске произошёл сбой.&lt;br /&gt;
&lt;br /&gt;
Контроль чётности не даёт абсолютной гарантии правильности считанной информации, однако существенно уменьшает вероятность искажений. Тем не менее, при установке микросхем памяти обязательно необходимо проверить их исправность с помощью тестовой программы, для чего обратитесь к поставщику ПЭВМ.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ириша]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=4272</id>
		<title>Ириша/Техническая информация</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=4272"/>
		<updated>2026-08-05T20:24:42Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* ППА */ Fixed after debugging and circuit analysis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{emuverse}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
= Процессор =&lt;br /&gt;
* [[КР580ВМ80А]]&lt;br /&gt;
&lt;br /&gt;
= Адресное пространство =&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha memory map.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Полное адресное пространство платы процессора Ириши составляет 256 Кб, разбитое на 4 страницы по 64 Кб. Расширение адресных линий до 18 организовано с помощью двух дополнительных сигналов P0 и P1, которые выведены на шину. Эти линии управляются сигналами PC2 и PC3 регистра ВВ55 через специальное ПЗУ диспетчера памяти. &lt;br /&gt;
&lt;br /&gt;
Всего доступно 4 карты распределения памяти. Полученные варианты (для стандартной прошивки ПЗУ блока управления памятью) приведены на рисунке.&lt;br /&gt;
&lt;br /&gt;
После сброса устанавливается карта 0. При этом на нижние адреса подключается ПЗУ, а на верхние &amp;amp;ndash; нулевая подстраница памяти видеоконтроллера.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha MM ROM.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
Адрес ПЗУ диспетчера формируется из трех адресных линий процессора A13, A14, A15, что позволяет управлять памятью подстраницами по 8Кб, и выходами ППА PC2 и PC3. Выходы подключаются следующим образом:  MA14, MA15, MP0, MP1 &amp;amp;mdash; на шину, &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;MS3&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;MS4&amp;lt;/span&amp;gt; &amp;amp;mdash; на ПЗУ BIOS (8+8 Кб), &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;MS1&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;MS2&amp;lt;/span&amp;gt; в стандартной прошивке не используются.&lt;br /&gt;
&lt;br /&gt;
Сигналы MC1 и MC2 формируются схемой монтажного ИЛИ элементами с открытым коллектором. Сразу после сброса они устанавливаются в 0 специальным триггером, что выбирает карту памяти 0. После обращения к ППА триггер устанавливается в 1 и эти линии начинают контролироваться выходами ВВ55.&lt;br /&gt;
&lt;br /&gt;
ОЗУ всегда находится на дополнительных платах, которые должны обрабатывать в том числе сигналы P0 и P1. Стандартная прошивка ПЗУ диспетчера памяти подразумевает следующую конфигурацию:&lt;br /&gt;
&lt;br /&gt;
* Страница 0 &amp;amp;mdash; ПЗУ BIOS на плате процессора. До 2-х ИС 2&amp;amp;ndash;8 Кб + 2&amp;amp;ndash;8 Кб.&lt;br /&gt;
* Страница 1 &amp;amp;mdash; расширение ОЗУ. Реализуется либо отдельной платой расширения, либо [[Ириша/Модуль контроллера НГМД RTV*001.89 ТО|контроллером НГМД]].&lt;br /&gt;
* Страница 2 &amp;amp;mdash; ОЗУ на плате видеоконтроллера. Обычно используется как основное ОЗУ компьютера.&lt;br /&gt;
* Страница 3 &amp;amp;mdash; не используется в стандартной прошивке.&lt;br /&gt;
&lt;br /&gt;
Каждая страница памяти разбита на 4 подстраницы по 16 Кб. Порядок подключения подстраниц в адресное пространство процессора также задается прошивкой ПЗУ диспетчера памяти через преобразование A14, A15 &amp;amp;mdash; MA14, MA15.&lt;br /&gt;
&lt;br /&gt;
ПЗУ BIOS на плате процессора устанавливается в две панельки, адресное пространство каждой &amp;amp;mdash; 8 Кб. Если устанавливаются ИС меньшей ёмкости, пространство до 8 Кб не используется.&lt;br /&gt;
&lt;br /&gt;
= Порты ввода-вывода =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wide&amp;quot;&lt;br /&gt;
! Адрес !! Вид операции !! Назначение !! Примечание&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 00H&amp;amp;nbsp;&amp;amp;hellip;&amp;amp;nbsp;03H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;amp;mdash; &lt;br /&gt;
|| Резерв &lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 04H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R &lt;br /&gt;
|| Регистр данных клавиатуры&lt;br /&gt;
|| К589ИР12&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 05H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R &lt;br /&gt;
|| Регистр данных клавиатуры (дубль)&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 06H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Регистр данных последовательного интерфейса&lt;br /&gt;
|| КР580ВВ51&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 07H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления/статуса последовательного интерфейса&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 08H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Счётчик 0 таймера&lt;br /&gt;
|| КР580ВИ53&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 09H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Счётчик 1&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0AH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Счётчик 2&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0BH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0CH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Считывание состояния регистра запроса прерывания / Запись команд ICW1, OCW2, OCW3&lt;br /&gt;
|| КР580ВН59&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0DH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Считывание регистра маски прерываний / Запись команд ICW2, ICW3, ICW4, OCW1&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0EH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Дублирует 0CH&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0FH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Дублирует 0DH&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 10H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt;&lt;br /&gt;
|| Порт A ППА&lt;br /&gt;
|| КР580ВВ55&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 11H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Порт B ППА&lt;br /&gt;
|| &amp;lt;small&amp;gt;(В МПСиС ошибочно порт 12H)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 12H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Порт C ППА&lt;br /&gt;
|| &amp;lt;small&amp;gt;(В МПСиС ошибочно порт 11H)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 13H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления ППА&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 14H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | R/&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Порт расширения ROM. Чтение &amp;amp;ndash; получение следующего байта. Запись &amp;amp;ndash; сброс счетчика.&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 15H&amp;amp;nbsp;&amp;amp;hellip;&amp;amp;nbsp;1BH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;amp;mdash; &lt;br /&gt;
|| Резерв &lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | D8H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления видеорежимом&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | D9H &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр управления цветом&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | DAH &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;W&amp;lt;/span&amp;gt; &lt;br /&gt;
|| Регистр выбора видеостраницы&lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Видеоконтроллер =&lt;br /&gt;
&lt;br /&gt;
Видеоконтроллер поддерживает только графические режимы. Текстовые режимы эмулируются программным обеспечением.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha vodeomodes.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Объем памяти, необходимой для режима 1 &amp;amp;ndash; 8000 байт (страницы выровнены по границе 8 Кб), для режимов 2 и 3 &amp;amp;ndash; 16000 байт. Участки памяти от конца экрана до границы страницы 8 или 16 Кб могут использоваться ПО по своему усмотрению.&lt;br /&gt;
&lt;br /&gt;
== Регистры управления видеоконтроллером ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha video registers.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
* D8H &amp;amp;ndash; регистр управления режимом.&lt;br /&gt;
** 0AH, 1AH  &amp;amp;ndash; режим 1.&lt;br /&gt;
** 8AH &amp;amp;ndash; режим 2.&lt;br /&gt;
** 9AH &amp;amp;ndash; режим 3.&lt;br /&gt;
** x8H, x2H, x0H &amp;amp;ndash; гашение изображения.&lt;br /&gt;
* D9H &amp;amp;ndash; регистр управления цветом.&lt;br /&gt;
* DAH &amp;amp;ndash; регистр выбора рабочих страниц.&lt;br /&gt;
&lt;br /&gt;
== Монохромные режимы ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha mono modes.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
В монохромном режиме среднего разрешения каждый бит отвечает за засветку одной точки на экране.&lt;br /&gt;
&lt;br /&gt;
В режиме высокого разрешения, в зависимости от установки перемычки П1, контроллер может работать аналогично режиму среднего разрешения (П1 снята), тогда в строке выводится 640 независимых точек, либо, за счет снижения разрешения (П1 установлена), яркость соседних точек усредняется (используется для бытовых телевизоров с узкой полосой пропускания).&lt;br /&gt;
&lt;br /&gt;
В режиме 1 на экране отображается одна из двух экранных страниц 8000 байт (адрес начала страниц выровнен но границе 8 Кб), в левом верхнем углу находится первый байт изображения. Старший бит соответствует первой точке.&lt;br /&gt;
&lt;br /&gt;
Структура регистра управления цветом показана на рисунке:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Irisha mode 1 register.png|300px]] [[Изображение:Irisha mode 3 pallette.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Цветной режим ==&lt;br /&gt;
&lt;br /&gt;
В режиме 2 каждая точка может быть окрашена одним из трёх цветов из выбранной палитры (доступно 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:Irisha mode 2.png|300px]] [[Изображение:Irisha mode 2 pallette.png|300px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Контроллер прерываний =&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha interrupts.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Наивысший приоритет имеет прерывание ITIMER от таймера ВИ53. IKBD и IUART отвечают за прием данных с клавиатура и по локальной сети.&lt;br /&gt;
&lt;br /&gt;
= ППА =&lt;br /&gt;
&lt;br /&gt;
ППА построен на основе КР580ВВ55. Порты используются следующим образом:&lt;br /&gt;
&lt;br /&gt;
* Порт A: Ввод/вывод данных.&lt;br /&gt;
* Порт B: Только ввод. &lt;br /&gt;
* Порт C: Только вывод.&lt;br /&gt;
&lt;br /&gt;
Выходы порта C используются для управления работой внутренних схем модуля процессора.&lt;br /&gt;
На входе порта B установлен мультиплексор К555КП13. Управление мультиплексором осуществляется выходом PC7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Функции входов и выходов БИС ППА КР580ВВ55&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Сигнал&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Назначение&lt;br /&gt;
|-&lt;br /&gt;
! PC7 = 1&lt;br /&gt;
! PC7 = 0&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |&#039;&#039;&#039;PA0&#039;&#039;&#039; || Вход-выход ПИ 0 || Старт цикла преобразователя игрового адаптера&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA1&#039;&#039;&#039; || Вход-выход ПИ 1 || Выбор игрового пульта. Запись по сигналу PC6. «0» — пульт 1, «1» — пульт 2&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA2&#039;&#039;&#039; || Вход-выход ПИ 2 || rowspan=&amp;quot;2&amp;quot; | Не используется&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA3&#039;&#039;&#039; || Вход-выход ПИ 3&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA4&#039;&#039;&#039; || Вход-выход ПИ 4 || Канал побитного управления звуком (шумовой канал)&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA5&#039;&#039;&#039; || Вход-выход ПИ 5 || Разрешение работы канала 1 синтезатора звука. «0» — разрешена&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA6&#039;&#039;&#039; || Вход-выход ПИ 6 || Не используется&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PA7&#039;&#039;&#039; || Вход-выход ПИ 7 || Выход программного канала последовательного интерфейса&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB0&#039;&#039;&#039; || Вход статуса ПИ S13 || Анализ завершения цикла преобразования игрового адаптера: «0» — завершён&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB1&#039;&#039;&#039; || Вход статуса ПИ S14 || Анализ состояния кнопки игрового пульта 1: «0» — нажата&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB2&#039;&#039;&#039; || Вход статуса ПИ S15 || Анализ состояния кнопки пульта 2: «0» — нажата&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB3&#039;&#039;&#039; || Вход статуса ПИ S16 || Вход программного канала последовательного интерфейса&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB4&#039;&#039;&#039; || Вход статуса ПИ S12 || Анализ сигнала BUSRQ системной магистрали: «1» — установлен&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB5&#039;&#039;&#039; || Вход статуса ПИ S11 || Анализ сигнала PON системной магистрали: «1» — норма&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB6&#039;&#039;&#039; || Вход анализа типа дополнительной платы EX1 || Анализ сигнала INT1 системной магистрали: «1» — установлен&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PB7&#039;&#039;&#039; || Вход анализа типа дополнительной платы EX2 || Анализ готовности клавиатуры: «1» — код принят&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC0&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Выход управления ПИ SO1&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC1&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Выход управления ПИ SO2&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC2&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Управление выбором рабочей карты памяти MS0&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC3&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Управление выбором рабочей карты памяти MS1&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC4&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Разрешение захвата системной магистрали: «1» — захват разрешён&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC5&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Выбор режима игровой адаптер — синтезатор звука: «1» — игровой адаптер, «0» — синтезатор звука&lt;br /&gt;
|- style=&amp;quot;border-bottom:hidden;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC6&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Строб записи в дополнительный регистр управления игровым адаптером и синтезатором звука&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &#039;&#039;&#039;PC7&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | Выбор функций портов А и В&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Клавиатура =&lt;br /&gt;
&lt;br /&gt;
Клавиатура записывает код нажатой клавиши в регистр К589ИР12, после чего устанавливается сигнал прерывания IKBD. После чтения регистра сигнал IKBD сбрасывается. Также, наличие кода символа в регистре можно контролировать с помощью бита PB7 ППА.&lt;br /&gt;
&lt;br /&gt;
= Последовательный интерфейс =&lt;br /&gt;
&lt;br /&gt;
Последовательный интерфейс предназначен для обмена информацией с внешними устройствами, в том числе бытовым магнитофоном. Последовательный интерфейс имеет два канала: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Канал 1&#039;&#039;&#039; построен на базе КР580ВВ51.&lt;br /&gt;
* &#039;&#039;&#039;Канал 2&#039;&#039;&#039; реализуется программно: вывод с помощью манипуляции выходом PA7 ППА, ввод с помощью анализа состояния PB3 ППА.&lt;br /&gt;
&lt;br /&gt;
Скорость обмена в Канале 1 задается с помощью программирования режимов КР580ВВ51 и канала 0 КР580ВИ53, который используется как делитель базовой частоты Ф2TTL, равной 1,7777 МГц.&lt;br /&gt;
&lt;br /&gt;
Канал 2 используется для обмена с бытовым магнитофоном и поддерживает скорости до 1200 бод. Метод и формат записи соответствует стандарту MSX.&lt;br /&gt;
&lt;br /&gt;
Для полноценной работы магнитофон должен поддерживать вход отключения двигателя. Программа работы с магнитофоном использует бит PA7 ППА для вывода информации, выход DTR ВВ51 для управления двигателем и вход DSR для чтения данных. Полученные байты должны читаться из регистра данных ВВ51.&lt;br /&gt;
&lt;br /&gt;
= Параллельный интерфейс (ПИ) =&lt;br /&gt;
&lt;br /&gt;
Параллельный интерфейс предназначен для подключения принтеров и других периферийных устройств. Интерфейс реализует следующие сигналы:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;P0&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;amp;hellip;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;P7&amp;lt;/span&amp;gt; &amp;amp;mdash; двунаправленные. Подключены к каналу A ППА.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;S01&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;S02&amp;lt;/span&amp;gt; &amp;amp;mdash; выходы, PC0 и PC1 ППА.&lt;br /&gt;
* S11&amp;amp;nbsp;&amp;amp;hellip;&amp;amp;nbsp;S16 &amp;amp;mdash; входы, подключены к каналу B ППА.&lt;br /&gt;
&lt;br /&gt;
В зависимости от типа подключенного устройства, конкретное назначение сигналов определяется схемой его подключения и программным обеспечением.&lt;br /&gt;
&lt;br /&gt;
= Таймер =&lt;br /&gt;
&lt;br /&gt;
В качестве таймера используется БИС К580ВИ53. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал 0&#039;&#039;&#039; используется как делитель частоты для последовательного интерфейса.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал 1&#039;&#039;&#039; используется для формирования временных интервалов. Опорная частота формируется делением сигнала Ф2TTL на 256, что позволяет формировать временные интервалы от 432 мкс до 9,4 сек с дискретностью 144 мкс. Выходной сигнал канала поступает на контроллер прерываний и имеет наивысший приоритет.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал 2&#039;&#039;&#039; используется для генерации звука.&lt;br /&gt;
&lt;br /&gt;
= Синтезатор звука =&lt;br /&gt;
&lt;br /&gt;
Синтезатор звука состоит из двух независимых каналов:&lt;br /&gt;
* Канал 1 использует второй канал К580ВИ53.&lt;br /&gt;
* Канал 2 предназначен для синтеза шумовых сигналов и управляется битом PA4 ППА.&lt;br /&gt;
&lt;br /&gt;
Разрешение работы обоих каналов управляется выводом PC5 ППА (активный &amp;amp;ndash; низкий). &lt;br /&gt;
&lt;br /&gt;
= Расширение ROM =&lt;br /&gt;
&lt;br /&gt;
Дополнительное ПЗУ подключается к специальному разъему на плате процессора. Размер может достигать 64 Кб. Доступ к содержимому производится через порт 14H &amp;amp;ndash; чтение передает следующий байт, запись сбрасывает счётчик.&lt;br /&gt;
&lt;br /&gt;
Наличие дополнительно ПЗУ определяется, если при чтении 65536 байт из порта 14H, хотя бы один полученный байт будет отличаться от FFH.&lt;br /&gt;
&lt;br /&gt;
Каждый файл содержит заголовок, в котором указан адрес загрузки, длина и название. Файлы идут последовательно, выравнивания по адресам нет. Файл может состоять из основного блока и нескольких экстентов. Формат записи файла в ПЗУ следующий:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Irisha ext rom.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Для использования в имени файла латинских букв или смешивания кодировок может потребоваться использование символов переключения подстраниц КОИ7 &amp;amp;ndash; 0x0E и 0x0F.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ириша]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0&amp;diff=4271</id>
		<title>Ириша</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0&amp;diff=4271"/>
		<updated>2026-08-05T05:16:14Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Ссылки */ - dead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Википедия|Ириша (компьютер)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;«Ири́ша»&#039;&#039;&#039; — советская 8-разрядная персональная [[ЭВМ]], предназначенная для обучения информатике в школе. Разработана на Химическом факультете [[МГУ]] в 1984 году.&lt;br /&gt;
&lt;br /&gt;
== Технические характеристики ==&lt;br /&gt;
* Процессор: [[КР580ВМ80А]] на тактовой частоте 1,77 МГц, но используются такты ожидания&lt;br /&gt;
* Быстродействие: зависит от видео режима, 250 или 375 оп/сек&lt;br /&gt;
* Память: [[ПЗУ]] 4‒16 КБ (в зависимости от исполнения), ОЗУ 64 Кб (исполнение 01/02), 128 Кб (03) или 256 Кб (04/05)&lt;br /&gt;
* Дисплей: чёрно-белый или цветной [[телевизор]], подключенный через видеовход&lt;br /&gt;
* Режимы отображения: монохромный режим 320 &amp;amp;times; 200 (используется 8 КБ видеопамяти), 4-цветный режим 320 &amp;amp;times; 200 (подобный CGA), монохромный режим 640 &amp;amp;times; 200 (16 КБ видеопамяти). Чисто текстовых режимов нет, они имитируются в графических режимах. Размер символа — 8&amp;amp;times;8 точек, что даёт 25 строк по 40 либо 80 символов.&lt;br /&gt;
* Вывод звуков: один канал таймера 580ВИ53 и одноканальный программный звук с выхода ППА&lt;br /&gt;
* Клавиатура: контактная, 67-клавишная в виде отдельного блока с 8-разрядным интерфейсом, формирует на выходе семибитовый код ASCII (КОИ-8 реализуется программно). Может применяться промышленная клавиатура 15ВВВ-97-006 от ДВК&lt;br /&gt;
* Питание: 18‒24 В, блок питания находится в системном блоке&lt;br /&gt;
* Конструкция: модульная, в системный блок устанавливается 4 модуля&lt;br /&gt;
* Размеры: 320 &amp;amp;times; 190 &amp;amp;times; 120 мм&lt;br /&gt;
* Вес: не более 3,5 кг&lt;br /&gt;
&lt;br /&gt;
== Комплектации ==&lt;br /&gt;
* &#039;&#039;унифицированное рабочее место учащегося&#039;&#039; (УРМ/У, &#039;&#039;минимальный комплект&#039;&#039;, исполнение 01 или 02) — включает системный блок, монитор и клавиатуру&lt;br /&gt;
* &#039;&#039;унифицированное рабочее место преподавателя&#039;&#039; (УРМ/П, &#039;&#039;расширенный комплект&#039;&#039;, исполнение 03, 04 или 05) — кроме того, включает НГМД и принтер; также возможна установка дополнительной памяти (до 128 КБ), которая используется как электронный диск&lt;br /&gt;
&lt;br /&gt;
Из нескольких УРМ/У (обычно 8, 16 или 20 мест) плюс одного УРМ/П формировались классы информатики и вычислительной техники (КИВТ) с локальной сетью и питанием от общего выпрямителя. В комплект КИВТ также входил цветной телевизор с большой диагональю, дублирующий изображение на экране УРМ/П.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Публикации ==&lt;br /&gt;
* Барышников В.Н., Воронов М.А., &#039;&#039;Персональная ЭВМ «Ириша» для кабинетов информатики и вычислительной техники&#039;&#039;. — журнал «Микропроцессорные средства и системы» №3, 1985. [http://ershov.iis.nsk.su/archive/eaimage.asp?lang=1&amp;amp;did=7981&amp;amp;fileid=106280]&lt;br /&gt;
* {{djvu||Барышников В.Н., Воронов М.А., Кулаков В.Б., Паначев Ф.И., Романов В.Ю., Холин А.В., &#039;&#039;Персональный компьютер Ириша&#039;&#039;. М.: Патриот, 1990.|computers/Irisha/docs/Irisha%20Personal%20Computer.djvu}} ISBN 5-7030-0118-8&lt;br /&gt;
&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Комплекс учебной вычислительной техники]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [https://zx-pk.ru/forums/85-irisha.html Обсуждение на форуме zx.pk.ru]&lt;br /&gt;
* [https://t.me/pevm_irisha Группа в Телеграме]&lt;br /&gt;
* [https://github.com/Ptr314/irisha_boards Проект по реверсу схем и плат]&lt;br /&gt;
&lt;br /&gt;
== Документация ==&lt;br /&gt;
* [[Ириша/Техническая информация]]&lt;br /&gt;
* [[Ириша/Модуль контроллера НГМД RTV*001.89 ТО]]&lt;br /&gt;
* {{pdf||Схема компьютера (выдержки из книги)|computers/Irisha/docs/schema.pdf}}&lt;br /&gt;
* {{pdf||Листинг загрузочного ПЗУ? (распознано из книги?)|computers/Irisha/docs/bootprg.pdf}}&lt;br /&gt;
* {{www}} [http://oldpc.su/pc/Irisha/irisha.html Документация на сайте oldpc.su]&lt;br /&gt;
&lt;br /&gt;
== Файлы ==&lt;br /&gt;
* {{rom||BOOTM|computers/Irisha/firmware/irisha.rom}} (Thanks to Micko for the recognition)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ириша]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0&amp;diff=4270</id>
		<title>Ириша</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0&amp;diff=4270"/>
		<updated>2026-08-05T05:07:06Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Ссылки */ fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Википедия|Ириша (компьютер)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;«Ири́ша»&#039;&#039;&#039; — советская 8-разрядная персональная [[ЭВМ]], предназначенная для обучения информатике в школе. Разработана на Химическом факультете [[МГУ]] в 1984 году.&lt;br /&gt;
&lt;br /&gt;
== Технические характеристики ==&lt;br /&gt;
* Процессор: [[КР580ВМ80А]] на тактовой частоте 1,77 МГц, но используются такты ожидания&lt;br /&gt;
* Быстродействие: зависит от видео режима, 250 или 375 оп/сек&lt;br /&gt;
* Память: [[ПЗУ]] 4‒16 КБ (в зависимости от исполнения), ОЗУ 64 Кб (исполнение 01/02), 128 Кб (03) или 256 Кб (04/05)&lt;br /&gt;
* Дисплей: чёрно-белый или цветной [[телевизор]], подключенный через видеовход&lt;br /&gt;
* Режимы отображения: монохромный режим 320 &amp;amp;times; 200 (используется 8 КБ видеопамяти), 4-цветный режим 320 &amp;amp;times; 200 (подобный CGA), монохромный режим 640 &amp;amp;times; 200 (16 КБ видеопамяти). Чисто текстовых режимов нет, они имитируются в графических режимах. Размер символа — 8&amp;amp;times;8 точек, что даёт 25 строк по 40 либо 80 символов.&lt;br /&gt;
* Вывод звуков: один канал таймера 580ВИ53 и одноканальный программный звук с выхода ППА&lt;br /&gt;
* Клавиатура: контактная, 67-клавишная в виде отдельного блока с 8-разрядным интерфейсом, формирует на выходе семибитовый код ASCII (КОИ-8 реализуется программно). Может применяться промышленная клавиатура 15ВВВ-97-006 от ДВК&lt;br /&gt;
* Питание: 18‒24 В, блок питания находится в системном блоке&lt;br /&gt;
* Конструкция: модульная, в системный блок устанавливается 4 модуля&lt;br /&gt;
* Размеры: 320 &amp;amp;times; 190 &amp;amp;times; 120 мм&lt;br /&gt;
* Вес: не более 3,5 кг&lt;br /&gt;
&lt;br /&gt;
== Комплектации ==&lt;br /&gt;
* &#039;&#039;унифицированное рабочее место учащегося&#039;&#039; (УРМ/У, &#039;&#039;минимальный комплект&#039;&#039;, исполнение 01 или 02) — включает системный блок, монитор и клавиатуру&lt;br /&gt;
* &#039;&#039;унифицированное рабочее место преподавателя&#039;&#039; (УРМ/П, &#039;&#039;расширенный комплект&#039;&#039;, исполнение 03, 04 или 05) — кроме того, включает НГМД и принтер; также возможна установка дополнительной памяти (до 128 КБ), которая используется как электронный диск&lt;br /&gt;
&lt;br /&gt;
Из нескольких УРМ/У (обычно 8, 16 или 20 мест) плюс одного УРМ/П формировались классы информатики и вычислительной техники (КИВТ) с локальной сетью и питанием от общего выпрямителя. В комплект КИВТ также входил цветной телевизор с большой диагональю, дублирующий изображение на экране УРМ/П.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Публикации ==&lt;br /&gt;
* Барышников В.Н., Воронов М.А., &#039;&#039;Персональная ЭВМ «Ириша» для кабинетов информатики и вычислительной техники&#039;&#039;. — журнал «Микропроцессорные средства и системы» №3, 1985. [http://ershov.iis.nsk.su/archive/eaimage.asp?lang=1&amp;amp;did=7981&amp;amp;fileid=106280]&lt;br /&gt;
* {{djvu||Барышников В.Н., Воронов М.А., Кулаков В.Б., Паначев Ф.И., Романов В.Ю., Холин А.В., &#039;&#039;Персональный компьютер Ириша&#039;&#039;. М.: Патриот, 1990.|computers/Irisha/docs/Irisha%20Personal%20Computer.djvu}} ISBN 5-7030-0118-8&lt;br /&gt;
&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Комплекс учебной вычислительной техники]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* &amp;lt;s&amp;gt;[http://ershov.iis.nsk.su/archive/eaindex.asp?did=7980 Фрагмент кабинета информатики и вычислительной техники на базе ПЭВМ «Ириша» (УРМ-580)]&amp;lt;/s&amp;gt;&lt;br /&gt;
* [https://zx-pk.ru/forums/85-irisha.html Обсуждение на форуме zx.pk.ru]&lt;br /&gt;
* [https://t.me/pevm_irisha Группа в Телеграме]&lt;br /&gt;
* [https://github.com/Ptr314/irisha_boards Проект по реверсу схем и плат]&lt;br /&gt;
&lt;br /&gt;
== Документация ==&lt;br /&gt;
* [[Ириша/Техническая информация]]&lt;br /&gt;
* [[Ириша/Модуль контроллера НГМД RTV*001.89 ТО]]&lt;br /&gt;
* {{pdf||Схема компьютера (выдержки из книги)|computers/Irisha/docs/schema.pdf}}&lt;br /&gt;
* {{pdf||Листинг загрузочного ПЗУ? (распознано из книги?)|computers/Irisha/docs/bootprg.pdf}}&lt;br /&gt;
* {{www}} [http://oldpc.su/pc/Irisha/irisha.html Документация на сайте oldpc.su]&lt;br /&gt;
&lt;br /&gt;
== Файлы ==&lt;br /&gt;
* {{rom||BOOTM|computers/Irisha/firmware/irisha.rom}} (Thanks to Micko for the recognition)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ириша]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0&amp;diff=4269</id>
		<title>Ириша</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%98%D1%80%D0%B8%D1%88%D0%B0&amp;diff=4269"/>
		<updated>2026-07-29T06:29:35Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Ссылки */ +1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Википедия|Ириша (компьютер)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;«Ири́ша»&#039;&#039;&#039; — советская 8-разрядная персональная [[ЭВМ]], предназначенная для обучения информатике в школе. Разработана на Химическом факультете [[МГУ]] в 1984 году.&lt;br /&gt;
&lt;br /&gt;
== Технические характеристики ==&lt;br /&gt;
* Процессор: [[КР580ВМ80А]] на тактовой частоте 1,77 МГц, но используются такты ожидания&lt;br /&gt;
* Быстродействие: зависит от видео режима, 250 или 375 оп/сек&lt;br /&gt;
* Память: [[ПЗУ]] 4‒16 КБ (в зависимости от исполнения), ОЗУ 64 Кб (исполнение 01/02), 128 Кб (03) или 256 Кб (04/05)&lt;br /&gt;
* Дисплей: чёрно-белый или цветной [[телевизор]], подключенный через видеовход&lt;br /&gt;
* Режимы отображения: монохромный режим 320 &amp;amp;times; 200 (используется 8 КБ видеопамяти), 4-цветный режим 320 &amp;amp;times; 200 (подобный CGA), монохромный режим 640 &amp;amp;times; 200 (16 КБ видеопамяти). Чисто текстовых режимов нет, они имитируются в графических режимах. Размер символа — 8&amp;amp;times;8 точек, что даёт 25 строк по 40 либо 80 символов.&lt;br /&gt;
* Вывод звуков: один канал таймера 580ВИ53 и одноканальный программный звук с выхода ППА&lt;br /&gt;
* Клавиатура: контактная, 67-клавишная в виде отдельного блока с 8-разрядным интерфейсом, формирует на выходе семибитовый код ASCII (КОИ-8 реализуется программно). Может применяться промышленная клавиатура 15ВВВ-97-006 от ДВК&lt;br /&gt;
* Питание: 18‒24 В, блок питания находится в системном блоке&lt;br /&gt;
* Конструкция: модульная, в системный блок устанавливается 4 модуля&lt;br /&gt;
* Размеры: 320 &amp;amp;times; 190 &amp;amp;times; 120 мм&lt;br /&gt;
* Вес: не более 3,5 кг&lt;br /&gt;
&lt;br /&gt;
== Комплектации ==&lt;br /&gt;
* &#039;&#039;унифицированное рабочее место учащегося&#039;&#039; (УРМ/У, &#039;&#039;минимальный комплект&#039;&#039;, исполнение 01 или 02) — включает системный блок, монитор и клавиатуру&lt;br /&gt;
* &#039;&#039;унифицированное рабочее место преподавателя&#039;&#039; (УРМ/П, &#039;&#039;расширенный комплект&#039;&#039;, исполнение 03, 04 или 05) — кроме того, включает НГМД и принтер; также возможна установка дополнительной памяти (до 128 КБ), которая используется как электронный диск&lt;br /&gt;
&lt;br /&gt;
Из нескольких УРМ/У (обычно 8, 16 или 20 мест) плюс одного УРМ/П формировались классы информатики и вычислительной техники (КИВТ) с локальной сетью и питанием от общего выпрямителя. В комплект КИВТ также входил цветной телевизор с большой диагональю, дублирующий изображение на экране УРМ/П.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Публикации ==&lt;br /&gt;
* Барышников В.Н., Воронов М.А., &#039;&#039;Персональная ЭВМ «Ириша» для кабинетов информатики и вычислительной техники&#039;&#039;. — журнал «Микропроцессорные средства и системы» №3, 1985. [http://ershov.iis.nsk.su/archive/eaimage.asp?lang=1&amp;amp;did=7981&amp;amp;fileid=106280]&lt;br /&gt;
* {{djvu||Барышников В.Н., Воронов М.А., Кулаков В.Б., Паначев Ф.И., Романов В.Ю., Холин А.В., &#039;&#039;Персональный компьютер Ириша&#039;&#039;. М.: Патриот, 1990.|computers/Irisha/docs/Irisha%20Personal%20Computer.djvu}} ISBN 5-7030-0118-8&lt;br /&gt;
&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Комплекс учебной вычислительной техники]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* &amp;lt;s&amp;gt;[http://ershov.iis.nsk.su/archive/eaindex.asp?did=7980 Фрагмент кабинета информатики и вычислительной техники на базе ПЭВМ «Ириша» (УРМ-580)]&amp;lt;/s&amp;gt;&lt;br /&gt;
* [http://zx.pk.ru/showthread.php?t=13938 Обсуждение на форуме zx.pk.ru]&lt;br /&gt;
* [https://t.me/pevm_irisha Группа в Телеграме]&lt;br /&gt;
* [https://github.com/Ptr314/irisha_boards Проект по реверсу схем и плат]&lt;br /&gt;
&lt;br /&gt;
== Документация ==&lt;br /&gt;
* [[Ириша/Техническая информация]]&lt;br /&gt;
* [[Ириша/Модуль контроллера НГМД RTV*001.89 ТО]]&lt;br /&gt;
* {{pdf||Схема компьютера (выдержки из книги)|computers/Irisha/docs/schema.pdf}}&lt;br /&gt;
* {{pdf||Листинг загрузочного ПЗУ? (распознано из книги?)|computers/Irisha/docs/bootprg.pdf}}&lt;br /&gt;
* {{www}} [http://oldpc.su/pc/Irisha/irisha.html Документация на сайте oldpc.su]&lt;br /&gt;
&lt;br /&gt;
== Файлы ==&lt;br /&gt;
* {{rom||BOOTM|computers/Irisha/firmware/irisha.rom}} (Thanks to Micko for the recognition)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ириша]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=Zilog_Z80/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4&amp;diff=4262</id>
		<title>Zilog Z80/Система команд</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=Zilog_Z80/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4&amp;diff=4262"/>
		<updated>2026-07-07T11:10:11Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Список команд */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Emuverse}}&lt;br /&gt;
&amp;lt;small&amp;gt;{{TOCright}}&amp;lt;/small&amp;gt;&lt;br /&gt;
В этой статье и ее подстраницах представлены все необходимые данные для создания полноценного эмулятора процессора [[Zilog Z80|Z80]], включая все недокументированные команды, флаги и особенности поведения в разных режимах (по крайнем мере те, что удалось найти). Статья написана на основе фирменной документации, а также большого количества материалов в Интернете, в основном, на английском языке.&lt;br /&gt;
&lt;br /&gt;
Статья написана с точки зрения создателя эмулятора — максимум сведений по каждой команде приведен в общей таблице (за исключением тех случаев, когда это невозможно в силу объема), вместо словесных описаний большинства команд приводятся алгоритмы их работы. Команды перечислены в порядке, удобном для написания эффективного блока декодирования, поэтому принцип увеличения кодов сохраняется не везде.&lt;br /&gt;
&lt;br /&gt;
Подразумевается, что читатель знаком с базовыми принципами и архитектурой микропроцессоров, поэтому объяснения многих понятий, без знания которых приступать к написанию эмулятора бессмысленно, опущены. Если вы считаете, что нечто важное не упомянуто зря, то дайте знать автору (или дополните сами ;).&lt;br /&gt;
&lt;br /&gt;
Для удобства активной работы с большими таблицами все условные обозначения приведены после них. Часть объемных материалов, например, по эмуляции команды DAA, вынесено на подстраницы.&lt;br /&gt;
&amp;lt;br clear=both&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Список команд ==&lt;br /&gt;
=== Команды без префикса ===&lt;br /&gt;
&lt;br /&gt;
{| class=fixed&lt;br /&gt;
! colspan=2 | Код&lt;br /&gt;
! Данные&lt;br /&gt;
! Команда&lt;br /&gt;
! Действие&lt;br /&gt;
! Флаги&lt;br /&gt;
! Такты&lt;br /&gt;
! Байты&lt;br /&gt;
! Примечание&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
! 16&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! SZ5H3VNC&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | Без префикса&lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | Группа 00&lt;br /&gt;
|-&lt;br /&gt;
| nowrap | 00 000 000&lt;br /&gt;
| 00&lt;br /&gt;
| &lt;br /&gt;
| NOP&lt;br /&gt;
| &lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 001 000&lt;br /&gt;
| 08&lt;br /&gt;
| &lt;br /&gt;
| EX AF, AF&#039;&lt;br /&gt;
| AF &amp;lt;-&amp;gt; AF&#039;&lt;br /&gt;
| ********&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 010 000&lt;br /&gt;
| 10&lt;br /&gt;
| d&lt;br /&gt;
| DJNZ d&lt;br /&gt;
| B &amp;lt;- B-1&amp;lt;br&amp;gt;Если B&amp;lt;&amp;gt;0 то PC &amp;lt;- PC+d&lt;br /&gt;
| --------&lt;br /&gt;
| 13/8&lt;br /&gt;
| 2&lt;br /&gt;
| PC равен адресу следующей за DJNZ команды&lt;br /&gt;
|-&lt;br /&gt;
| 00 011 000&lt;br /&gt;
| 18&lt;br /&gt;
| d&lt;br /&gt;
| JR d&lt;br /&gt;
| PC &amp;lt;- PC+d&lt;br /&gt;
| --------&lt;br /&gt;
| 12&lt;br /&gt;
| 2&lt;br /&gt;
| PC равен адресу следующей команды&lt;br /&gt;
|-&lt;br /&gt;
| 00 1СС 000&lt;br /&gt;
| &lt;br /&gt;
| d&lt;br /&gt;
| JR СС, d&lt;br /&gt;
| Если СС то PC &amp;lt;- PC+d&lt;br /&gt;
| --------&lt;br /&gt;
| 12/7&lt;br /&gt;
| 2&lt;br /&gt;
| PC равен адресу следующей команды&amp;lt;br&amp;gt;СС включает первые 4 значения [[#CCC|CCC]]&lt;br /&gt;
|-&lt;br /&gt;
| 00 RP0 001&lt;br /&gt;
| &lt;br /&gt;
| nn&lt;br /&gt;
| LD RP, nn&lt;br /&gt;
| RP &amp;lt;- nn&lt;br /&gt;
| --------&lt;br /&gt;
| 10&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 RP1 001&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| ADD HL, RP&lt;br /&gt;
| HL &amp;lt;- HL + RP&lt;br /&gt;
| --***-0C&lt;br /&gt;
| 11&lt;br /&gt;
| 1&lt;br /&gt;
| F5,H,F3 берутся по результатам сложения старших байтов&lt;br /&gt;
|-&lt;br /&gt;
| 00 0X0 010&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| LD [X], A&lt;br /&gt;
| [X] &amp;lt;- A&lt;br /&gt;
| --------&lt;br /&gt;
| 7&lt;br /&gt;
| 1&lt;br /&gt;
| X=0 =&amp;gt; BC, X=1 =&amp;gt; DE&lt;br /&gt;
|-&lt;br /&gt;
| 00 0X1 010&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| LD A, [X]&lt;br /&gt;
| A &amp;lt;- [X]&lt;br /&gt;
| --------&lt;br /&gt;
| 7&lt;br /&gt;
| 1&lt;br /&gt;
| X=0 =&amp;gt; BC, X=1 =&amp;gt; DE&lt;br /&gt;
|-&lt;br /&gt;
| 00 100 010&lt;br /&gt;
| 22&lt;br /&gt;
| nn&lt;br /&gt;
| LD [nn], HL&lt;br /&gt;
| [nn] &amp;lt;- HL&lt;br /&gt;
| --------&lt;br /&gt;
| 16&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 101 010&lt;br /&gt;
| 2A&lt;br /&gt;
| nn&lt;br /&gt;
| LD HL, [nn]&lt;br /&gt;
| HL &amp;lt;- [nn]&lt;br /&gt;
| --------&lt;br /&gt;
| 16&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 110 010&lt;br /&gt;
| 32&lt;br /&gt;
| nn&lt;br /&gt;
| LD [nn], A&lt;br /&gt;
| [nn] &amp;lt;- A&lt;br /&gt;
| --------&lt;br /&gt;
| 13&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 111 010&lt;br /&gt;
| 3A&lt;br /&gt;
| nn&lt;br /&gt;
| LD A, [nn]&lt;br /&gt;
| A &amp;lt;- [nn]&lt;br /&gt;
| --------&lt;br /&gt;
| 13&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 RP0 011&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| INC RP&lt;br /&gt;
| RP &amp;lt;- RP+1&lt;br /&gt;
| --------&lt;br /&gt;
| 6&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 RP1 011&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| DEC RP&lt;br /&gt;
| RP &amp;lt;- RP-1&lt;br /&gt;
| --------&lt;br /&gt;
| 6&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 SSS 100&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| INC SSS&lt;br /&gt;
| SSS &amp;lt;- SSS+1&lt;br /&gt;
| SZ5H3V0-&lt;br /&gt;
| 4/11/19*&lt;br /&gt;
| 1&lt;br /&gt;
| V=1, если SSS=7F до операции&lt;br /&gt;
|-&lt;br /&gt;
| 00 SSS 101&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| DEC SSS&lt;br /&gt;
| SSS &amp;lt;- SSS-1&lt;br /&gt;
| SZ5H3V1-&lt;br /&gt;
| 4/11/19*&lt;br /&gt;
| 1&lt;br /&gt;
| V=1, если SSS=80 до операции&lt;br /&gt;
|-&lt;br /&gt;
| 00 DDD 110&lt;br /&gt;
| &lt;br /&gt;
| d&lt;br /&gt;
| LD DDD, d&lt;br /&gt;
| DDD &amp;lt;- d&lt;br /&gt;
| --------&lt;br /&gt;
| 7/7/15*&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00 000 111&lt;br /&gt;
| 07&lt;br /&gt;
| &lt;br /&gt;
| RLCA&lt;br /&gt;
| Цикл. сдвиг A влево, CY&amp;lt;-A7&lt;br /&gt;
| --503-0C&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| См. [[#Команды сдвига ]]&lt;br /&gt;
|-&lt;br /&gt;
| 00 001 111&lt;br /&gt;
| 0F&lt;br /&gt;
| &lt;br /&gt;
| RRCA&lt;br /&gt;
| nowrap | Цикл. сдвиг A вправо, CY&amp;lt;-A0&lt;br /&gt;
| --503-0C&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| См. [[#Команды сдвига ]]&lt;br /&gt;
|-&lt;br /&gt;
| 00 010 111&lt;br /&gt;
| 17&lt;br /&gt;
| &lt;br /&gt;
| RLA&lt;br /&gt;
| Цикл. сдвиг A+CY влево&lt;br /&gt;
| --503-0C&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| См. [[#Команды сдвига ]]&lt;br /&gt;
|-&lt;br /&gt;
| 00 011 111&lt;br /&gt;
| 1F&lt;br /&gt;
| &lt;br /&gt;
| RRA&lt;br /&gt;
| Цикл. сдвиг A+CY вправо&lt;br /&gt;
| --503-0C&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| См. [[#Команды сдвига ]]&lt;br /&gt;
|-&lt;br /&gt;
| 00 100 111&lt;br /&gt;
| 27&lt;br /&gt;
| &lt;br /&gt;
| DAA&lt;br /&gt;
| Десятичная коррекция&lt;br /&gt;
| SZ5*3P-*&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| См. [[/DAA]]&lt;br /&gt;
|-&lt;br /&gt;
| 00 101 111&lt;br /&gt;
| 2F&lt;br /&gt;
| &lt;br /&gt;
| CPL&lt;br /&gt;
| A &amp;lt;- NOT A&lt;br /&gt;
| --*1*-1-&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| F3 и F5 из A&lt;br /&gt;
|-&lt;br /&gt;
| 00 110 111&lt;br /&gt;
| 37&lt;br /&gt;
| &lt;br /&gt;
| SCF&lt;br /&gt;
| CY = 1&lt;br /&gt;
| --*0*-01&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| F3 и F5 из A&lt;br /&gt;
|-&lt;br /&gt;
| 00 111 111&lt;br /&gt;
| 3F&lt;br /&gt;
| &lt;br /&gt;
| CCF&lt;br /&gt;
| CY &amp;lt;- NOT CY&lt;br /&gt;
| --***-0C&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| H &amp;lt;- старый C, F3 и F5 из A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | Группа 01&lt;br /&gt;
|-&lt;br /&gt;
| 01 110 110&lt;br /&gt;
| 76&lt;br /&gt;
| &lt;br /&gt;
| HALT&lt;br /&gt;
| &lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Повторяет циклы NOP до прерывания или сброса&lt;br /&gt;
|-&lt;br /&gt;
| 01 DDD 110&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| LD DDD, [HL]&lt;br /&gt;
| DDD &amp;lt;- [HL]&lt;br /&gt;
| --------&lt;br /&gt;
| 7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 01 110 SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| LD [HL], SSS&lt;br /&gt;
| [HL] &amp;lt;- SSS&lt;br /&gt;
| --------&lt;br /&gt;
| 7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 01 DDD SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| LD DDD, SSS&lt;br /&gt;
| DDD &amp;lt;- SSS&lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| DDD и SSS не равны 110&lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | Группа 10&lt;br /&gt;
|-&lt;br /&gt;
| 10 000 SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| ADD A, SSS&lt;br /&gt;
| A &amp;lt;- A+SSS&lt;br /&gt;
| SZ5H3V0C&lt;br /&gt;
| 4/7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10 001 SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| ADC A, SSS&lt;br /&gt;
| A &amp;lt;- A+SSS+CY&lt;br /&gt;
| SZ5H3V0C&lt;br /&gt;
| 4/7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10 010 SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SUB A, SSS&lt;br /&gt;
| A &amp;lt;- A-SSS&lt;br /&gt;
| SZ5H3V1C&lt;br /&gt;
| 4/7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10 011 SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SBC A, SSS&lt;br /&gt;
| A &amp;lt;- A-SSS-CY&lt;br /&gt;
| SZ5H3V1C&lt;br /&gt;
| 4/7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10 100 SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| AND A, SSS&lt;br /&gt;
| A &amp;lt;- A AND SSS&lt;br /&gt;
| SZ513P00&lt;br /&gt;
| 4/7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10 101 SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| XOR A, SSS&lt;br /&gt;
| A &amp;lt;- A XOR SSS&lt;br /&gt;
| SZ503P00&lt;br /&gt;
| 4/7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10 110 SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| OR A, SSS&lt;br /&gt;
| A &amp;lt;- A OR SSS&lt;br /&gt;
| SZ503P00&lt;br /&gt;
| 4/7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10 111 SSS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| CP SSS&lt;br /&gt;
| A-SSS&lt;br /&gt;
| SZ*H*V1C&lt;br /&gt;
| 4/7/15*&lt;br /&gt;
| 1&lt;br /&gt;
| F5 и F3 - копия SSS&lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | Группа 11&lt;br /&gt;
|-&lt;br /&gt;
| 11 CCC 000&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| RET CCC&lt;br /&gt;
| Если CCC то&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;PCL &amp;lt;- [SP]&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;PCH &amp;lt;- [SP+1]&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;SP &amp;lt;- SP+2&lt;br /&gt;
| --------&lt;br /&gt;
| 11/5&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 RP0 001&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| POP RP&lt;br /&gt;
| RPH &amp;lt;- [SP]&amp;lt;br&amp;gt;RPL &amp;lt;- [SP+1]&amp;lt;br&amp;gt;SP &amp;lt;- SP+2&lt;br /&gt;
| --------&amp;lt;br&amp;gt;********&lt;br /&gt;
| 10&lt;br /&gt;
| 1&lt;br /&gt;
| Если RP=3, то подразумевается AF, а не SP&lt;br /&gt;
|-&lt;br /&gt;
| 11 001 001&lt;br /&gt;
| C9&lt;br /&gt;
| &lt;br /&gt;
| RET&lt;br /&gt;
| PCL &amp;lt;- [SP]&amp;lt;br&amp;gt;PCH &amp;lt;- [SP+1]&amp;lt;br&amp;gt;SP &amp;lt;- SP+2&lt;br /&gt;
| --------&lt;br /&gt;
| 10&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 011 001&lt;br /&gt;
| D9&lt;br /&gt;
| &lt;br /&gt;
| EXX&lt;br /&gt;
| BC,DE,HL &amp;lt;-&amp;gt; BC&#039;,DE&#039;,HL&#039;&lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 001&lt;br /&gt;
| E9&lt;br /&gt;
| &lt;br /&gt;
| JP [HL]&lt;br /&gt;
| PC &amp;lt;- HL&lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| С префиксами становится JP [IX], &amp;lt;br&amp;gt;а не JP [IX+d]&lt;br /&gt;
|-&lt;br /&gt;
| 11 111 001&lt;br /&gt;
| F9&lt;br /&gt;
| &lt;br /&gt;
| LD SP,HL&lt;br /&gt;
| SP &amp;lt;- HL&lt;br /&gt;
| --------&lt;br /&gt;
| 6&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 CCC 010&lt;br /&gt;
| &lt;br /&gt;
| nn&lt;br /&gt;
| JP CCC, [nn]&lt;br /&gt;
| Если CCC то PC &amp;lt;- nn&lt;br /&gt;
| --------&lt;br /&gt;
| 10&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 000 011&lt;br /&gt;
| C3&lt;br /&gt;
| nn&lt;br /&gt;
| JP nn&lt;br /&gt;
| PC &amp;lt;- nn&lt;br /&gt;
| --------&lt;br /&gt;
| 10&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 001 011&lt;br /&gt;
| CB&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Префикс&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 010 011&lt;br /&gt;
| D3&lt;br /&gt;
| d&lt;br /&gt;
| OUT (d),A&lt;br /&gt;
| [Ad] &amp;lt;- A&lt;br /&gt;
| --------&lt;br /&gt;
| 11&lt;br /&gt;
| 2&lt;br /&gt;
| Номер порта в реальности 16-разрядный&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 011&lt;br /&gt;
| DB&lt;br /&gt;
| d&lt;br /&gt;
| IN A, (d)&lt;br /&gt;
| A &amp;lt;- [Ad]&lt;br /&gt;
| --------&lt;br /&gt;
| 11&lt;br /&gt;
| 2&lt;br /&gt;
| Номер порта в реальности 16-разрядный&lt;br /&gt;
|-&lt;br /&gt;
| 11 100 011&lt;br /&gt;
| E3&lt;br /&gt;
| &lt;br /&gt;
| EX (SP),HL&lt;br /&gt;
| [SP] &amp;lt;-&amp;gt; HL&lt;br /&gt;
| --------&lt;br /&gt;
| 19&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 011&lt;br /&gt;
| EB&lt;br /&gt;
| &lt;br /&gt;
| EX DE,HL&lt;br /&gt;
| DE &amp;lt;-&amp;gt; HL&lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Префиксы игнорируются&lt;br /&gt;
|-&lt;br /&gt;
| 11 110 011&lt;br /&gt;
| F3&lt;br /&gt;
| &lt;br /&gt;
| DI&lt;br /&gt;
| IFF1 &amp;lt;- 0 IFF2 &amp;lt;- 0&lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Запрет прерывания&lt;br /&gt;
|-&lt;br /&gt;
| 11 111 011&lt;br /&gt;
| FB&lt;br /&gt;
| &lt;br /&gt;
| EI&lt;br /&gt;
| IFF1 &amp;lt;- 1 IFF2 &amp;lt;- 1&lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Разрешение прерывания. До завершения следующей команды проверка на INT блокируется (как после NONI)&lt;br /&gt;
|-&lt;br /&gt;
| 11 ССС 100&lt;br /&gt;
| &lt;br /&gt;
| nn&lt;br /&gt;
| nowrap | CALL ССС, [nn]&lt;br /&gt;
| Если ССС то&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;SP &amp;lt;- SP-2&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[SP] &amp;lt;- PCL&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[SP+1] &amp;lt;- PCH&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;PC &amp;lt;- nn&lt;br /&gt;
| --------&lt;br /&gt;
| 17/10&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 RP0 101&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PUSH RP&lt;br /&gt;
| SP &amp;lt;- SP-2&amp;lt;br&amp;gt;[SP] &amp;lt;- RPL&amp;lt;br&amp;gt;[SP+1] &amp;lt;- RPH&lt;br /&gt;
| --------&lt;br /&gt;
| 11&lt;br /&gt;
| 1&lt;br /&gt;
| Если RP=3, то подразумевается AF, а не SP&lt;br /&gt;
|-&lt;br /&gt;
| 11 001 101&lt;br /&gt;
| CD&lt;br /&gt;
| nn&lt;br /&gt;
| CALL [nn]&lt;br /&gt;
| SP &amp;lt;- SP-2&amp;lt;br&amp;gt;[SP] &amp;lt;- PCL&amp;lt;br&amp;gt;[SP+1] &amp;lt;- PCH&amp;lt;br&amp;gt;PC &amp;lt;- nn&lt;br /&gt;
| --------&lt;br /&gt;
| 17&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&lt;br /&gt;
| DD&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Префикс&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&lt;br /&gt;
| ED&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Префикс&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 111 101&lt;br /&gt;
| FD&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Префикс&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 000 110&lt;br /&gt;
| C6&lt;br /&gt;
| d&lt;br /&gt;
| ADD A, d&lt;br /&gt;
| A &amp;lt;- A+d&lt;br /&gt;
| SZ5H3V0C&lt;br /&gt;
| 7&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 001 110&lt;br /&gt;
| CE&lt;br /&gt;
| d&lt;br /&gt;
| ADC A, d&lt;br /&gt;
| A &amp;lt;- A+d+CY&lt;br /&gt;
| SZ5H3V0C&lt;br /&gt;
| 7&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 010 110&lt;br /&gt;
| D6&lt;br /&gt;
| d&lt;br /&gt;
| SUB A, d&lt;br /&gt;
| A &amp;lt;- A-d&lt;br /&gt;
| SZ5H3V1C&lt;br /&gt;
| 7&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 011 110&lt;br /&gt;
| DE&lt;br /&gt;
| d&lt;br /&gt;
| SBC A, d&lt;br /&gt;
| A &amp;lt;- A-d-CY&lt;br /&gt;
| SZ5H3V1C&lt;br /&gt;
| 7&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 100 110&lt;br /&gt;
| E6&lt;br /&gt;
| d&lt;br /&gt;
| AND A, d&lt;br /&gt;
| A &amp;lt;- A AND d&lt;br /&gt;
| SZ513P00&lt;br /&gt;
| 7&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 110&lt;br /&gt;
| EE&lt;br /&gt;
| d&lt;br /&gt;
| XOR A, d&lt;br /&gt;
| A &amp;lt;- A XOR d&lt;br /&gt;
| SZ503P00&lt;br /&gt;
| 7&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 110 110&lt;br /&gt;
| F6&lt;br /&gt;
| d&lt;br /&gt;
| OR A, d&lt;br /&gt;
| A &amp;lt;- A OR d&lt;br /&gt;
| SZ503P00&lt;br /&gt;
| 7&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 111 110&lt;br /&gt;
| FE&lt;br /&gt;
| d&lt;br /&gt;
| CP A, d&lt;br /&gt;
| A-d&lt;br /&gt;
| SZ*H*V1C&lt;br /&gt;
| 7&lt;br /&gt;
| 2&lt;br /&gt;
| F5 и F3 - копия d&lt;br /&gt;
|-&lt;br /&gt;
| 11 NNN 111&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| RST NNN&lt;br /&gt;
| [SP-1] &amp;lt;- PCH&amp;lt;br&amp;gt;[SP-2] &amp;lt;- PCL&amp;lt;br&amp;gt;SP &amp;lt;- SP-2&amp;lt;br&amp;gt;PCH &amp;lt;- 0&amp;lt;br&amp;gt;PCL &amp;lt;- NNN*8&lt;br /&gt;
| --------&lt;br /&gt;
| 11&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Префикс CB ===&lt;br /&gt;
{| class=fixed&lt;br /&gt;
! colspan=2 | Код&lt;br /&gt;
! Данные&lt;br /&gt;
! Команда&lt;br /&gt;
! Действие&lt;br /&gt;
! Флаги&lt;br /&gt;
! Такты&lt;br /&gt;
! Байты&lt;br /&gt;
! Примечание&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
! 16&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! SZ5H3VNC&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| nowrap | 11 001 011&amp;lt;br&amp;gt;00 rot SSS&lt;br /&gt;
| CB&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| [[#rot|rot]] SSS&amp;lt;br&amp;gt;*SLL SSS&lt;br /&gt;
| Битовый сдвиг&lt;br /&gt;
| SZ503P0C&lt;br /&gt;
| 8/15*&lt;br /&gt;
| 2&lt;br /&gt;
| [[#rot|rot]]=110 (SLL) - недок.&lt;br /&gt;
|-&lt;br /&gt;
| 11 001 011&amp;lt;br&amp;gt;01 bit SSS&lt;br /&gt;
| CB&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| nowrap | BIT bit, SSS&lt;br /&gt;
| SSS AND 2^bit&lt;br /&gt;
| *Z513*0-&lt;br /&gt;
| 8/12*&lt;br /&gt;
| 2&lt;br /&gt;
| Установка флагов - см. [[/BIT]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 001 011&amp;lt;br&amp;gt;10 bit SSS&lt;br /&gt;
| CB&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| RES bit, SSS&lt;br /&gt;
| nowrap | SSS &amp;lt;- SSS AND NOT(2^bit)&lt;br /&gt;
| --------&lt;br /&gt;
| 8/15*&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 001 011&amp;lt;br&amp;gt;11 bit SSS&lt;br /&gt;
| CB&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| SET bit, SSS&lt;br /&gt;
| SSS &amp;lt;- SSS OR 2^bit&lt;br /&gt;
| --------&lt;br /&gt;
| 8/15*&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Префикс ED ===&lt;br /&gt;
&lt;br /&gt;
{| class=fixed&lt;br /&gt;
! colspan=2 | Код&lt;br /&gt;
! Данные&lt;br /&gt;
! Команда&lt;br /&gt;
! Действие&lt;br /&gt;
! Флаги&lt;br /&gt;
! Такты&lt;br /&gt;
! Байты&lt;br /&gt;
! Примечание&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
! 16&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! SZ5H3VNC&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | Группа 00&lt;br /&gt;
|-&lt;br /&gt;
| nowrap | 11 101 101&amp;lt;br&amp;gt;00 XXX XXX&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| INVALID&lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| R увеличивается на 2 (далее аналогично)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | Группа 01&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 110 000&lt;br /&gt;
| ED&amp;lt;br&amp;gt;70&lt;br /&gt;
| &lt;br /&gt;
| *IN F, [C]&lt;br /&gt;
| IN[BC]&lt;br /&gt;
| SZ503P0-&lt;br /&gt;
| 12?&lt;br /&gt;
| 2&lt;br /&gt;
| Меняются только флаги&amp;lt;br&amp;gt;Номер порта в реальности 16-разрядный&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 DDD 000&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| IN DDD, [C]&lt;br /&gt;
| DDD &amp;lt;- IN[BC]&lt;br /&gt;
| SZ503P0-&lt;br /&gt;
| 12&lt;br /&gt;
| 2&lt;br /&gt;
| DDD кроме 110&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 110 001&lt;br /&gt;
| ED&amp;lt;br&amp;gt;71&lt;br /&gt;
| &lt;br /&gt;
| *OUT [C], 0&lt;br /&gt;
| OUT[BC] &amp;lt;- 0&lt;br /&gt;
| --------&lt;br /&gt;
| 12&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 SSS 001&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| nowrap | OUT [C], SSS&lt;br /&gt;
| OUT[BC] &amp;lt;- SSS&lt;br /&gt;
| --------&lt;br /&gt;
| 12&lt;br /&gt;
| 2&lt;br /&gt;
| SSS кроме 110&amp;lt;br&amp;gt;Номер порта в реальности 16-разрядный&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 RP0 010&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| SBC HL, RP&lt;br /&gt;
| HL &amp;lt;- HL-RP-C&lt;br /&gt;
| SZ***V1C&lt;br /&gt;
| 15&lt;br /&gt;
| 2&lt;br /&gt;
| См. ADD HL, RP&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 RP1 010&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| ADC HL, RP&lt;br /&gt;
| HL &amp;lt;- HL+RP+C&lt;br /&gt;
| SZ***V0C&lt;br /&gt;
| 15&lt;br /&gt;
| 2&lt;br /&gt;
| См. ADD HL, RP&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 RP0 011&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| nn&lt;br /&gt;
| LD [nn], RP&lt;br /&gt;
| [nn] &amp;lt;- RP&lt;br /&gt;
| --------&lt;br /&gt;
| 20&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 RP1 011&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| nn&lt;br /&gt;
| LD RP, [nn]&lt;br /&gt;
| RP &amp;lt;- [nn]&lt;br /&gt;
| --------&lt;br /&gt;
| 20&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 XXX 100&lt;br /&gt;
| ED&amp;lt;br&amp;gt;44&lt;br /&gt;
| &lt;br /&gt;
| NEG/*NEG&lt;br /&gt;
| A &amp;lt;- 0-A&lt;br /&gt;
| SZ5H3V1C&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| XXX&amp;lt;&amp;gt;0 недок&amp;lt;br&amp;gt;PV=1 если перед операцией A=80&amp;lt;br&amp;gt;С=1 если перед операцией A&amp;lt;&amp;gt;0&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 001 101&lt;br /&gt;
| ED&amp;lt;br&amp;gt;4D&lt;br /&gt;
| &lt;br /&gt;
| RETI&lt;br /&gt;
| IFF1 &amp;lt;- IFF2&amp;lt;br&amp;gt;SP &amp;lt;- SP+2&amp;lt;br&amp;gt;PC &amp;lt;- [SP-2]&lt;br /&gt;
| --------&lt;br /&gt;
| 14&lt;br /&gt;
| 2&lt;br /&gt;
| Возврат из INT&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 XXX 101&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| RETN&amp;lt;br&amp;gt;*RETN&lt;br /&gt;
| IFF1 &amp;lt;- IFF2&amp;lt;br&amp;gt;SP &amp;lt;- SP+2&amp;lt;br&amp;gt;PC &amp;lt;- [SP-2]&lt;br /&gt;
| --------&lt;br /&gt;
| 14&lt;br /&gt;
| 2&lt;br /&gt;
| Возврат из NMI&amp;lt;br&amp;gt;XXX=1 =&amp;gt; RETI&amp;lt;br&amp;gt;XXX&amp;gt;1 недок.&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 X00 110&lt;br /&gt;
| ED&amp;lt;br&amp;gt;46&lt;br /&gt;
| &lt;br /&gt;
| IM 0/*IM 0&lt;br /&gt;
| IM &amp;lt;- 0&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| X=1 недок&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 X01 110&lt;br /&gt;
| ED&amp;lt;br&amp;gt;4E&lt;br /&gt;
| &lt;br /&gt;
| *IM 0/1&lt;br /&gt;
| IM &amp;lt;- 0/1?&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| Устанавливается один из режимов, какой - по одним источникам неизвестно, по другим IM 0&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 X10 110&lt;br /&gt;
| ED&amp;lt;br&amp;gt;56&lt;br /&gt;
| &lt;br /&gt;
| IM 1/*IM 1&lt;br /&gt;
| IM &amp;lt;- 1&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| X=1 недок&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 X11 110&lt;br /&gt;
| ED&amp;lt;br&amp;gt;5E&lt;br /&gt;
| &lt;br /&gt;
| IM 2/*IM 2&lt;br /&gt;
| IM &amp;lt;- 2&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| X=1 недок&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 000 111&lt;br /&gt;
| ED&amp;lt;br&amp;gt;47&lt;br /&gt;
| &lt;br /&gt;
| LD I, A&lt;br /&gt;
| I &amp;lt;- A&lt;br /&gt;
| --------&lt;br /&gt;
| 9&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 001 111&lt;br /&gt;
| ED&amp;lt;br&amp;gt;4F&lt;br /&gt;
| &lt;br /&gt;
| LD R, A&lt;br /&gt;
| R &amp;lt;- A&lt;br /&gt;
| --------&lt;br /&gt;
| 9&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 010 111&lt;br /&gt;
| ED&amp;lt;br&amp;gt;57&lt;br /&gt;
| &lt;br /&gt;
| LD A, I&lt;br /&gt;
| A &amp;lt;- I&amp;lt;br&amp;gt;PV &amp;lt;- IFF2&lt;br /&gt;
| SZ503*0-&lt;br /&gt;
| 9&lt;br /&gt;
| 2&lt;br /&gt;
| Известная ошибка: если в момент выполнения команды получено прерывание, то в PV вместо 1 ошибочно попадает 0. Есть программы, которые строят на этом защиту от эмуляции.&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 011 111&lt;br /&gt;
| ED&amp;lt;br&amp;gt;5F&lt;br /&gt;
| &lt;br /&gt;
| LD A, R&lt;br /&gt;
| A &amp;lt;- R&amp;lt;br&amp;gt;PV &amp;lt;- IFF2&lt;br /&gt;
| SZ503*0-&lt;br /&gt;
| 9&lt;br /&gt;
| 2&lt;br /&gt;
| См. LD A, I&amp;lt;br&amp;gt;Значение в A равно R выполнения инструкции&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 100 111&lt;br /&gt;
| ED&amp;lt;br&amp;gt;67&lt;br /&gt;
| &lt;br /&gt;
| RRD&lt;br /&gt;
| &lt;br /&gt;
| SZ503P0-&lt;br /&gt;
| 18&lt;br /&gt;
| 2&lt;br /&gt;
| Флаги по результату в A&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 101 111&lt;br /&gt;
| ED&amp;lt;br&amp;gt;6F&lt;br /&gt;
| &lt;br /&gt;
| RLD&lt;br /&gt;
| &lt;br /&gt;
| SZ503P0-&lt;br /&gt;
| 18&lt;br /&gt;
| 2&lt;br /&gt;
| См. RRD&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;01 11X 111&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| NOP&lt;br /&gt;
| &lt;br /&gt;
| --------&lt;br /&gt;
| 8?&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | Группа 10&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 0XX XXX&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| *INVALID&lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 100 000&lt;br /&gt;
| ED&amp;lt;br&amp;gt;A0&lt;br /&gt;
| &lt;br /&gt;
| LDI&lt;br /&gt;
| [DE] &amp;lt;- [HL]&amp;lt;br&amp;gt;DE &amp;lt;- DE+1&amp;lt;br&amp;gt;HL &amp;lt;- HL+1&amp;lt;br&amp;gt;BC &amp;lt;- BC-1&lt;br /&gt;
| --*0**0-&lt;br /&gt;
| 16&lt;br /&gt;
| 2&lt;br /&gt;
| PV=1 если после декремента BC&amp;lt;&amp;gt;0&amp;lt;br&amp;gt;F3=бит 3 операции переданный байт + A&amp;lt;br&amp;gt;F5=бит 1 операции переданный байт + A&amp;lt;br&amp;gt;R увеличивается на 2 (далее аналогично)&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 100 001&lt;br /&gt;
| ED&amp;lt;br&amp;gt;A1&lt;br /&gt;
| &lt;br /&gt;
| CPI&lt;br /&gt;
| A-[HL]&amp;lt;br&amp;gt;HL &amp;lt;- HL+1&amp;lt;br&amp;gt;BC &amp;lt;- BC-1&lt;br /&gt;
| SZ*H**1-&lt;br /&gt;
| 16&lt;br /&gt;
| 2&lt;br /&gt;
| PV=1 если после декремента BC&amp;lt;&amp;gt;0&amp;lt;br&amp;gt;S,Z,HC из A-[HL]&amp;lt;br&amp;gt;F3=бит 3 операции A-[HL]-HC, где HC взят из F после предыдущей операции&amp;lt;br&amp;gt;F5=бит 1 операции A-[HL]-HC&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 100 010&lt;br /&gt;
| ED&amp;lt;br&amp;gt;A2&lt;br /&gt;
| &lt;br /&gt;
| INI&lt;br /&gt;
| [HL] &amp;lt;- IN [BC]&amp;lt;br&amp;gt;HL &amp;lt;- HL+1&amp;lt;br&amp;gt;B &amp;lt;- B-1&lt;br /&gt;
| SZ5*3***&lt;br /&gt;
| 16&lt;br /&gt;
| 2&lt;br /&gt;
| Адрес порта 16-битный из ВС&amp;lt;br&amp;gt;Флаги см. [[/INI]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 100 011&lt;br /&gt;
| ED&amp;lt;br&amp;gt;A3&lt;br /&gt;
| &lt;br /&gt;
| OUTI&lt;br /&gt;
| OUT [BC] &amp;lt;- [HL]&amp;lt;br&amp;gt;HL &amp;lt;- HL+1&amp;lt;br&amp;gt;B &amp;lt;- B-1&lt;br /&gt;
| SZ5*3***&lt;br /&gt;
| 16&lt;br /&gt;
| 2&lt;br /&gt;
| См. INI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 100 1XX&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| *INVALID&lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 101 000&lt;br /&gt;
| ED&amp;lt;br&amp;gt;A8&lt;br /&gt;
| &lt;br /&gt;
| LDD&lt;br /&gt;
| [DE] &amp;lt;- [HL]&amp;lt;br&amp;gt;DE &amp;lt;- DE-1&amp;lt;br&amp;gt;HL &amp;lt;- HL-1&amp;lt;br&amp;gt;BC &amp;lt;- BC-1&lt;br /&gt;
| --*0**0-&lt;br /&gt;
| 16&lt;br /&gt;
| 2&lt;br /&gt;
| См. LDI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 101 001&lt;br /&gt;
| ED&amp;lt;br&amp;gt;A9&lt;br /&gt;
| &lt;br /&gt;
| CPD&lt;br /&gt;
| A-[HL]&amp;lt;br&amp;gt;HL &amp;lt;- HL-1&amp;lt;br&amp;gt;BC &amp;lt;- BC-1&lt;br /&gt;
| SZ*H**1-&lt;br /&gt;
| 16&lt;br /&gt;
| 2&lt;br /&gt;
| См. CPI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 101 010&lt;br /&gt;
| ED&amp;lt;br&amp;gt;AA&lt;br /&gt;
| &lt;br /&gt;
| IND&lt;br /&gt;
| [HL] &amp;lt;- IN [BC]&amp;lt;br&amp;gt;HL &amp;lt;- HL-1&amp;lt;br&amp;gt;B &amp;lt;- B-1&lt;br /&gt;
| SZ5*3***&lt;br /&gt;
| 16&lt;br /&gt;
| 2&lt;br /&gt;
| См. INI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 101 011&lt;br /&gt;
| ED&amp;lt;br&amp;gt;AB&lt;br /&gt;
| &lt;br /&gt;
| OUTD&lt;br /&gt;
| OUT [C], [HL]&amp;lt;br&amp;gt;HL &amp;lt;- HL-1&amp;lt;br&amp;gt;B &amp;lt;- B-1&lt;br /&gt;
| SZ5*3***&lt;br /&gt;
| 16&lt;br /&gt;
| 2&lt;br /&gt;
| См. INI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 101 1XX&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| *INVALID&lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 110 000&lt;br /&gt;
| ED&amp;lt;br&amp;gt;B0&lt;br /&gt;
| &lt;br /&gt;
| LDIR&lt;br /&gt;
| nowrap | Повторять LDI до BC=0, т.е.:&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Выполнить LDI&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Если BC&amp;lt;&amp;gt;0 то PC &amp;lt;- PC-2&lt;br /&gt;
| --*0**0-&lt;br /&gt;
| 21/16**&lt;br /&gt;
| 2&lt;br /&gt;
| См. LDI&amp;lt;br&amp;gt;R увеличивается на 2 каждый цикл?&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 110 001&lt;br /&gt;
| ED&amp;lt;br&amp;gt;B1&lt;br /&gt;
| &lt;br /&gt;
| CPIR&lt;br /&gt;
| Повторять CPI до BC=0&lt;br /&gt;
| SZ*H**1-&lt;br /&gt;
| 21/16**&lt;br /&gt;
| 2&lt;br /&gt;
| См. CPI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 110 010&lt;br /&gt;
| ED&amp;lt;br&amp;gt;B2&lt;br /&gt;
| &lt;br /&gt;
| INIR&lt;br /&gt;
| Повторять INI до B=0&lt;br /&gt;
| SZ5*3***&lt;br /&gt;
| 21/16**&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 110 011&lt;br /&gt;
| ED&amp;lt;br&amp;gt;B3&lt;br /&gt;
| &lt;br /&gt;
| OTIR&lt;br /&gt;
| Повторять OTI до B=0&lt;br /&gt;
| SZ5*3***&lt;br /&gt;
| 21/16**&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 110 1XX&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| *INVALID&lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 111 000&lt;br /&gt;
| ED&amp;lt;br&amp;gt;B8&lt;br /&gt;
| &lt;br /&gt;
| LDDR&lt;br /&gt;
| Повторять LDD до BC=0&lt;br /&gt;
| --*0**0-&lt;br /&gt;
| 21/16**&lt;br /&gt;
| 2&lt;br /&gt;
| См. LDI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 111 001&lt;br /&gt;
| ED&amp;lt;br&amp;gt;B9&lt;br /&gt;
| &lt;br /&gt;
| CPDR&lt;br /&gt;
| Повторять CPD до BC=0&lt;br /&gt;
| SZ*H**1-&lt;br /&gt;
| 21/16**&lt;br /&gt;
| 2&lt;br /&gt;
| См. CPI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 111 010&lt;br /&gt;
| ED&amp;lt;br&amp;gt;BA&lt;br /&gt;
| &lt;br /&gt;
| INDR&lt;br /&gt;
| Повторять IND до B=0&lt;br /&gt;
| SZ5*3***&lt;br /&gt;
| 21/16**&lt;br /&gt;
| 2&lt;br /&gt;
| См. INI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 111 011&lt;br /&gt;
| ED&amp;lt;br&amp;gt;BB&lt;br /&gt;
| &lt;br /&gt;
| OTDR&lt;br /&gt;
| Повторять OTD до B=0&lt;br /&gt;
| SZ5*3***&lt;br /&gt;
| 21/16**&lt;br /&gt;
| 2&lt;br /&gt;
| См. INI&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;10 111 1XX&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| *INVALID&lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! colspan=9 | Группа 11&lt;br /&gt;
|-&lt;br /&gt;
| 11 101 101&amp;lt;br&amp;gt;11 XXX XXX&lt;br /&gt;
| ED&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| *INVALID&lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 8&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Префиксы DD и FD ===&lt;br /&gt;
* Для FD IX заменяется на IY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=fixed&lt;br /&gt;
! colspan=2 | Код&lt;br /&gt;
! Команда&lt;br /&gt;
! Действие&lt;br /&gt;
! Флаги&lt;br /&gt;
! Такты&lt;br /&gt;
! Байты&lt;br /&gt;
! Примечание&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
! 16&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! SZ5H3VNC&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| nowrap | 11 011 101&amp;lt;br&amp;gt;11 011 101&lt;br /&gt;
| DD&amp;lt;br&amp;gt;DD&lt;br /&gt;
| &lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Префикс игнорируется&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;11 101 101&lt;br /&gt;
| DD&amp;lt;br&amp;gt;ED&lt;br /&gt;
| &lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Префикс игнорируется&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;11 111 101&lt;br /&gt;
| DD&amp;lt;br&amp;gt;FD&lt;br /&gt;
| &lt;br /&gt;
| NOP/NONI&lt;br /&gt;
| --------&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Префикс игнорируется&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;11 001 011&lt;br /&gt;
| DD&amp;lt;br&amp;gt;CB&lt;br /&gt;
| &lt;br /&gt;
| Двойной префикс&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| См. [[#Префиксы DDCB и FDCB]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;xx xxx xxx&lt;br /&gt;
| DD&amp;lt;br&amp;gt;xx&lt;br /&gt;
| Все однобайтовые команды, использующие HL&lt;br /&gt;
| HL заменяется на IX&lt;br /&gt;
| &lt;br /&gt;
| +4&lt;br /&gt;
| +1&lt;br /&gt;
| Исключение: EX DE, HL&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;xx xxx xxx&lt;br /&gt;
| DD&amp;lt;br&amp;gt;xx&lt;br /&gt;
| *Все однобайтовые команды, использующие H&lt;br /&gt;
| H заменяется на IXH&lt;br /&gt;
| &lt;br /&gt;
| +4&lt;br /&gt;
| +1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;xx xxx xxx&lt;br /&gt;
| DD&amp;lt;br&amp;gt;xx&lt;br /&gt;
| *Все однобайтовые команды, использующие L&lt;br /&gt;
| L заменяется на IXL&lt;br /&gt;
| &lt;br /&gt;
| +4&lt;br /&gt;
| +1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;xx xxx xxx&amp;lt;br&amp;gt;dd ddd ddd&lt;br /&gt;
| DD&amp;lt;br&amp;gt;xx&amp;lt;br&amp;gt;dd&lt;br /&gt;
| Все однобайтовые команды, использующие [HL]&lt;br /&gt;
| nowrap | [HL] заменяется на [IX+d]&lt;br /&gt;
| &lt;br /&gt;
| +8&lt;br /&gt;
| +2&lt;br /&gt;
| nowrap | H и L без изменений, т.е. &amp;lt;br&amp;gt;LD H, [HL] =&amp;gt; LD H, [IX+d]&amp;lt;br&amp;gt;Также&amp;lt;br&amp;gt;JP [HL] =&amp;gt; JP [IX], а не IX+d&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| Остальные команды&lt;br /&gt;
| Без изменений&lt;br /&gt;
| &lt;br /&gt;
| +4&lt;br /&gt;
| +1&lt;br /&gt;
| R увеличивается на 2, а не на 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Префиксы DDCB и FDCB ===&lt;br /&gt;
* Для FDCB IX заменяется на IY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=fixed&lt;br /&gt;
! colspan=2 | Код&lt;br /&gt;
! Данные&lt;br /&gt;
! Команда&lt;br /&gt;
! Действие&lt;br /&gt;
! Флаги&lt;br /&gt;
! Такты&lt;br /&gt;
! Байты&lt;br /&gt;
! Примечание&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
! 16&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! SZ5H3VNC&lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| nowrap | 11 011 101&amp;lt;br&amp;gt;11 001 011&amp;lt;br&amp;gt;dd ddd ddd&amp;lt;br&amp;gt;00 rot 110 &lt;br /&gt;
| DD&amp;lt;br&amp;gt;CB&amp;lt;br&amp;gt;dd&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| rot [IX+d]&amp;lt;br&amp;gt;*SLL [IX+d]&lt;br /&gt;
| Битовый сдвиг байта в памяти&lt;br /&gt;
| SZ503P0C&lt;br /&gt;
| 23&lt;br /&gt;
| 4&lt;br /&gt;
| rot=110 (SLL) - недок.&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;11 001 011&amp;lt;br&amp;gt;dd ddd ddd&amp;lt;br&amp;gt;00 rot DDD &lt;br /&gt;
| DD&amp;lt;br&amp;gt;CB&amp;lt;br&amp;gt;dd&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| *LD DDD, rot [IX+d]&lt;br /&gt;
| Битовый сдвиг байта в памяти и запись результата в регистр&lt;br /&gt;
| SZ503P0C&lt;br /&gt;
| 23?&lt;br /&gt;
| 4&lt;br /&gt;
| Результат попадает в регистр даже если он не был записан в память (например, адрес попал на ROM)&amp;lt;br&amp;gt;DDD кроме 110&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;11 001 011&amp;lt;br&amp;gt;dd ddd ddd&amp;lt;br&amp;gt;01 bit XXX &lt;br /&gt;
| DD&amp;lt;br&amp;gt;CB&amp;lt;br&amp;gt;dd&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| BIT bit, [IX+d]&amp;lt;br&amp;gt;*BIT bit, [IX+d]&lt;br /&gt;
| &lt;br /&gt;
| *Z*1**0-&lt;br /&gt;
| 20&lt;br /&gt;
| 4&lt;br /&gt;
| для XXX&amp;lt;&amp;gt;6 недок.&amp;lt;br&amp;gt;P/V, Z и S как в BIT&amp;lt;br&amp;gt;F5 и F3 копии соотв. битов старшего байта адреса IX+d&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;11 001 011&amp;lt;br&amp;gt;dd ddd ddd&amp;lt;br&amp;gt;10 bit 110 &lt;br /&gt;
| DD&amp;lt;br&amp;gt;CB&amp;lt;br&amp;gt;dd&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| RES bit, [IX+d]&lt;br /&gt;
| nowrap | Сброс бита&amp;lt;br&amp;gt;[IX+d] &amp;lt;- [IX+d] AND NOT(2^bit)&lt;br /&gt;
| --------&lt;br /&gt;
| 23&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;11 001 011&amp;lt;br&amp;gt;dd ddd ddd&amp;lt;br&amp;gt;10 bit DDD &lt;br /&gt;
| DD&amp;lt;br&amp;gt;CB&amp;lt;br&amp;gt;dd&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| nowrap | *LD DDD, RES bit, [IX+d]&lt;br /&gt;
| Сброс бита и запись результата в регистр&lt;br /&gt;
| --------&lt;br /&gt;
| 23?&lt;br /&gt;
| 4&lt;br /&gt;
| Результат попадает в регистр даже если он не был записан в память (например, адрес попал на ROM)&amp;lt;br&amp;gt;DDD кроме 110&lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;11 001 011&amp;lt;br&amp;gt;dd ddd ddd&amp;lt;br&amp;gt;11 bit 110 &lt;br /&gt;
| DD&amp;lt;br&amp;gt;CB&amp;lt;br&amp;gt;dd&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| SET bit, [IX+d]&lt;br /&gt;
| Установка бита&amp;lt;br&amp;gt;[IX+d] &amp;lt;- [IX+d] OR 2^bit&lt;br /&gt;
| --------&lt;br /&gt;
| 23&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11 011 101&amp;lt;br&amp;gt;11 001 011&amp;lt;br&amp;gt;dd ddd ddd&amp;lt;br&amp;gt;11 bit DDD &lt;br /&gt;
| DD&amp;lt;br&amp;gt;CB&amp;lt;br&amp;gt;dd&amp;lt;br&amp;gt;xx&lt;br /&gt;
| &lt;br /&gt;
| *LD DDD, SET bit, [IX+d]&lt;br /&gt;
| Установка бита и запись результата в регистр&lt;br /&gt;
| --------&lt;br /&gt;
| 23?&lt;br /&gt;
| 4&lt;br /&gt;
| Результат попадает в регистр даже если он не был записан в память (например, адрес попал на ROM)&amp;lt;br&amp;gt;DDD кроме 110&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Внешние сигналы ===&lt;br /&gt;
&lt;br /&gt;
{| class=fixed&lt;br /&gt;
! Сигнал&lt;br /&gt;
! Действие&lt;br /&gt;
! Флаги&lt;br /&gt;
! Такты&lt;br /&gt;
! Примечание&lt;br /&gt;
|-&lt;br /&gt;
| NMI&lt;br /&gt;
| IFF1 &amp;lt;- 0&amp;lt;br&amp;gt;SP &amp;lt;- SP-2&amp;lt;br&amp;gt;[SP] &amp;lt;- PC&amp;lt;br&amp;gt;PC &amp;lt;- 0066&lt;br /&gt;
| &lt;br /&gt;
| 11&lt;br /&gt;
| Вход NMI работает по отрицательному фронту, который запоминается в триггере&lt;br /&gt;
|-&lt;br /&gt;
| INT&lt;br /&gt;
| nowrap | Если IFF1=1&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;IFF1 &amp;lt;- 0&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;IFF2 &amp;lt;- 0&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Если IM=0&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;    Чтение команды с &amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;    шины данных, &amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;    выполение&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Если IM=1&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;    RST 38&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Если IM=2&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;    Чтение байта d с&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;    шины данных&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;    CALL [Id]&lt;br /&gt;
| &lt;br /&gt;
| nowrap | IM0: 13&amp;lt;br&amp;gt;(RST)&amp;lt;br&amp;gt;IM1: 13&amp;lt;br&amp;gt;IM2: 19&lt;br /&gt;
| Вход INT работает по низкому уровню, для возврата к 1 требуется дополнительная логика (определение RETI на шине данных или программное переключение).&amp;lt;br&amp;gt;Проверка INT происходит после выполнения инструкции.&amp;lt;br&amp;gt;Id представляет собой комбинацию старшего байта из регистра I и младшего, полученного по шине. В PC передается значение, взятое из памяти по адресу Id.&lt;br /&gt;
|-&lt;br /&gt;
| RESET&lt;br /&gt;
| PC &amp;lt;- 0&amp;lt;br&amp;gt;IFF1 &amp;lt;- 0&amp;lt;br&amp;gt;IFF2 &amp;lt;- 0&amp;lt;br&amp;gt;I &amp;lt;- 0&amp;lt;br&amp;gt;R &amp;lt;- 0&amp;lt;br&amp;gt;IM &amp;lt;- 0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Пояснения к таблицам ==&lt;br /&gt;
=== Общие принципы ===&lt;br /&gt;
* Недокументированные команды обозначены звездочкой;&lt;br /&gt;
* T=4/7/15* означает, что для регистров время исполнения команды 4 такта, для [HL] — 7, для [IX(IY)+d] — 15. При этом 15 НЕ включает 4 такта выборки префикса, которые должны быть учтены в момент его обработки;&lt;br /&gt;
* T=21/17** в блочных операциях означает, что команда выполняется 21 такт при повторении и 17 тактов в последний раз;&lt;br /&gt;
* T=17/10 у операторов условного перехода означает, что время исполнения 17 тактов при переходе и 10 без перехода;&lt;br /&gt;
* NONI обозначает псевдокоманду, эквивалентную NOP, но после которой не проверяется запрос на прерывание;&lt;br /&gt;
* В таблице подразумевается, что в момент исполнения операции PC равен адресу следующей по порядку команды;&lt;br /&gt;
* В операциях вида IX+d, d является числом со знаком, в диапазоне −128…+127.&lt;br /&gt;
&lt;br /&gt;
=== Регистры и флаги ===&lt;br /&gt;
* &#039;&#039;&#039;A&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039;, &#039;&#039;&#039;C&#039;&#039;&#039;, &#039;&#039;&#039;D&#039;&#039;&#039;, &#039;&#039;&#039;E&#039;&#039;&#039;, &#039;&#039;&#039;H&#039;&#039;&#039;, &#039;&#039;&#039;L&#039;&#039;&#039; — 8-разрядные регистры;&lt;br /&gt;
* &#039;&#039;&#039;AF&#039;&#039;&#039;, &#039;&#039;&#039;ВС&#039;&#039;&#039;, &#039;&#039;&#039;DE&#039;&#039;&#039;, &#039;&#039;&#039;HL&#039;&#039;&#039; — регистровые пары;&lt;br /&gt;
* &#039;&#039;&#039;PC&#039;&#039;&#039; — указатель текущей команды. &#039;&#039;&#039;PCH&#039;&#039;&#039; и &#039;&#039;&#039;PCL&#039;&#039;&#039; — старший и младший байты, соответственно;&lt;br /&gt;
* &#039;&#039;&#039;SP&#039;&#039;&#039; — указатель стека;&lt;br /&gt;
* &#039;&#039;&#039;F&#039;&#039;&#039; — Регистр флагов&lt;br /&gt;
** &#039;&#039;&#039;S&#039;&#039;&#039;: SIGN/Знак. Копия старшего бита результата операции.&lt;br /&gt;
** &#039;&#039;&#039;Z&#039;&#039;&#039;: ZERO/Ноль. Равен 1, если результат равен 0.&lt;br /&gt;
** &#039;&#039;&#039;*F5&#039;&#039;&#039;: Если не оговорено обратное, равен 5-му биту результата.&lt;br /&gt;
** &#039;&#039;&#039;HC&#039;&#039;&#039;: HALF CARRY/Половинный перенос. Обозначает перенос в 4-й бит или заем из него. Используется командой [[/DAA|DAA]].&lt;br /&gt;
** &#039;&#039;&#039;*F3&#039;&#039;&#039;: Если не оговорено обратное, равен 3-му биту результата.&lt;br /&gt;
** &#039;&#039;&#039;P/V&#039;&#039;&#039;: PARITY/OVERFLOW/Четность/Переполнение. После одних команд — четность, после других — переполнение. Также копия IFF2 после команд LD A,R и LD A, I&lt;br /&gt;
** &#039;&#039;&#039;N&#039;&#039;&#039;: Тип предыдущей операции. 0 — сложение, 1 — вычитание. Используется командой [[/DAA|DAA]].&lt;br /&gt;
** &#039;&#039;&#039;CY&#039;&#039;&#039;: CARRY/Перенос. Обозначает перенос из старшего бита или заем в него.&lt;br /&gt;
* &#039;&#039;&#039;A`&#039;&#039;&#039;, &#039;&#039;&#039;F`&#039;&#039;&#039;, &#039;&#039;&#039;ВС`&#039;&#039;&#039;, &#039;&#039;&#039;DE`&#039;&#039;&#039;, &#039;&#039;&#039;HL`&#039;&#039;&#039; — второй набор регистров. Переключение между наборами производится командами EX, EXX. При этом установить, какой именно из наборов активен в настоящий момент, невозможно.&lt;br /&gt;
* &#039;&#039;&#039;IFF1&#039;&#039;&#039;: Флаг разрешения прерывания;&lt;br /&gt;
* &#039;&#039;&#039;IFF2&#039;&#039;&#039;: Флаг, копия IFF1 во время обработки NMI;&lt;br /&gt;
* &#039;&#039;&#039;R&#039;&#039;&#039;: Регистр регенерации памяти, 8 бит. Увеличивается на 1 после каждой выборки команды, но инкремент затрагивает только младшие 7 бит, старший бит не меняется и может быть использован в программах. &lt;br /&gt;
** При выборке команды с префиксом, R увеличивается еще на 1. В блочных командах R увеличивается на 2 в каждой итерации.&lt;br /&gt;
** Для правильной работы LD A, R и LD R, A увеличение R должно происходить до выполнения команды.&lt;br /&gt;
** Прием прерывания увеличивает R на единицу. &lt;br /&gt;
** Часто используется в программах как генератор случайных чисел.&lt;br /&gt;
* &#039;&#039;&#039;I&#039;&#039;&#039;: Старший байт адреса вектора прерывания в режиме IM 2;&lt;br /&gt;
* &#039;&#039;&#039;IM&#039;&#039;&#039;: Режим обработки прерываний. Устанавливается командами IM 0/1/2.&lt;br /&gt;
&lt;br /&gt;
=== Расшифровка обозначений ===&lt;br /&gt;
==== DDD, SSS ====&lt;br /&gt;
{| class = border style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! Код&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
! 000 || 001 || 010 || 011 || 100 || 101 || 110 || 111&lt;br /&gt;
|-&lt;br /&gt;
! Код&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;&lt;br /&gt;
! 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
| Без префикса || rowspan=3 | B || rowspan=3 | C || rowspan=3 | D || rowspan=3 | E || H || L || [HL] || rowspan=3 | A&lt;br /&gt;
|-&lt;br /&gt;
| Префикс DD || *IXH || *IXL || [IX+d]&lt;br /&gt;
|-&lt;br /&gt;
| Префикс FD || *IYH || *IYL || [IY+d]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== CCC ====&lt;br /&gt;
{| class = border style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!  width=11% | Код&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
!  width=11% | 000 || width=11% |  001 || width=11% |  010 || width=11% |  011 || width=11% |  100 || width=11% |  101 || width=11% |  110 || width=11% |  111&lt;br /&gt;
|-&lt;br /&gt;
! Код&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;&lt;br /&gt;
! 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Флаг || Z=0 || Z=1 || CY=0 || CY=1 || PV=0 || PV=1 || S=0 || S=1&lt;br /&gt;
|-&lt;br /&gt;
| Обозначение || NZ || Z || NC || C || PO || PE || P || M&lt;br /&gt;
|-&lt;br /&gt;
| Значение || Не ноль || Ноль || Нет переноса || Перенос || Нечетный &amp;lt;br&amp;gt;Нет переполнения || Четный&amp;lt;br&amp;gt;Переполнение || Положителный || Отрицательный&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== RP ====&lt;br /&gt;
{| class = border style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! Код&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
! 00 || 01 || 10 || 11&lt;br /&gt;
|-&lt;br /&gt;
! Код&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;&lt;br /&gt;
! 0 || 1 || 2 || 3&lt;br /&gt;
|-&lt;br /&gt;
| Без префикса || width=20% rowspan=3 | ВС || width=20% rowspan=3 | DE || width=20% | HL || width=20% rowspan=3 | SP или AF&lt;br /&gt;
|-&lt;br /&gt;
| Префикс DD || IX или IX+d &lt;br /&gt;
|-&lt;br /&gt;
| Префикс FD || IY или IY+d&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== rot ====&lt;br /&gt;
{| class = border style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! Код&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
! 000 || 001 || 010 || 011 || 100 || 101 || 110 || 111&lt;br /&gt;
|-&lt;br /&gt;
! Код&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;&lt;br /&gt;
! 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
| Команда || RLC || RRC || RL || RR || SLA || SRA || *SL1 || SRL &lt;br /&gt;
|}&lt;br /&gt;
Описание работы каждой команды см. [[#Команды сдвига|ниже]].&lt;br /&gt;
&lt;br /&gt;
== Особенности выполнения команд ==&lt;br /&gt;
&lt;br /&gt;
=== Префиксы ===&lt;br /&gt;
Назначение префикса — модификация поведения следующей за префиксом команды. В Z80 обработка префиксов имеет следующие особенности:&lt;br /&gt;
&lt;br /&gt;
* Считывание префикса занимает 4 такта и добавляет к регистру R единицу. То есть, выполнение команды с префиксом увеличивает R на 2 вместо 1;&lt;br /&gt;
* Команды с префиксами CB, ED, DDCB, FDCB удобнее обрабатывать сразу, обратив внимание на поведение регистра R, указанное выше.&lt;br /&gt;
* При получении префиксов DD и FD нужно проверить следующий байт:&lt;br /&gt;
** Если это DD, FD или ED, то префикс нужно проигнорировать, выполнив команду NONI — 4 такта, прерывания не проверяются. Эффект такого поведения состоит в том, что при наличии длинной цепочки префиксов прерывание (даже NMI) сможет сработать только после ее завершения (точнее, после первой команды, следующей за цепочкой);&lt;br /&gt;
** Если следующий байт равен CB, то нужно обработать команду из категории DDCB/FDCB.&lt;br /&gt;
* Если предыдущий пункт пройден, префиксы DD и FD должны просто установить внутренний флаг замены HL на IX или IY для следующей команды;&lt;br /&gt;
* Если модифицированная команда использует адрес вида (IX+d) вместо (HL), то ее длина увеличивается на один дополнительный байт d, а время выполнения - на 8 тактов (плюс, конечно, 4 такта на префикс). Например:&lt;br /&gt;
** &amp;lt;tt&amp;gt;LD B,C&amp;lt;/tt&amp;gt; имеет код «41» и занимает 1 байт и 4 такта;&lt;br /&gt;
** &amp;lt;tt&amp;gt;LD B,(HL)&amp;lt;/tt&amp;gt; имеет код «46» и занимает 1 байт и 7 тактов;&lt;br /&gt;
** &amp;lt;tt&amp;gt;LD B,(IX+d)&amp;lt;/tt&amp;gt; имеет код «DD 46 d» и занимает 3 байта и 19 тактов.(4&amp;lt;sub&amp;gt;префикс&amp;lt;/sub&amp;gt;&amp;amp;nbsp;+&amp;amp;nbsp;7&amp;lt;sub&amp;gt;команда&amp;lt;/sub&amp;gt;&amp;amp;nbsp;+&amp;amp;nbsp;8&amp;lt;sub&amp;gt;замена&amp;amp;nbsp;(HL)&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* Недопустимые команды с префиксом ED должны обрабатываться как NONI на 8 тактов с увеличением R на 2.&lt;br /&gt;
&lt;br /&gt;
Далее приведена таблица команд, на которые влияют префиксы DD и FD (взято из [http://homepage.ntlworld.com/cyborgsystems/CS_Main/Z80/z80.c]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------------------------+&lt;br /&gt;
|                   60 70                         |&lt;br /&gt;
|       21          61 71                   E1    |&lt;br /&gt;
|       22          62 72                         |&lt;br /&gt;
|       23          63 73                   E3    |&lt;br /&gt;
|       24 34 44 54 64 74 84 94 A4 B4             |&lt;br /&gt;
|       25 35 45 55 65 75 85 95 A5 B5       E5    |&lt;br /&gt;
|       26 36 46 56 66    86 96 A6 B6             |&lt;br /&gt;
|                   67 77                         |&lt;br /&gt;
|                   68                            |&lt;br /&gt;
| 09 19 29 39       69                      E9 F9 |&lt;br /&gt;
|       2A          6A                            |&lt;br /&gt;
|       2B          6B                CB          |&lt;br /&gt;
|       2C    4C 5C 6C 7C 8C 9C AC BC             |&lt;br /&gt;
|       2D    4D 5D 6D 7D 8D 9D AD BD             |&lt;br /&gt;
|       2E    4E 5E 6E 7E 8E 9E AE BE             |&lt;br /&gt;
|                   6F                            |&lt;br /&gt;
+-------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Команды сдвига ===&lt;br /&gt;
{| align=center&lt;br /&gt;
|[[Изображение:Z80_rlc.png‎|frame|&amp;lt;center&amp;gt;RLC&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|[[Изображение:Z80_rrc.png‎|frame|&amp;lt;center&amp;gt;RRC&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Изображение:Z80_rl.png‎|frame|&amp;lt;center&amp;gt;RL&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|[[Изображение:Z80_rr.png‎|frame|&amp;lt;center&amp;gt;RR&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Изображение:Z80_sla.png‎|frame|&amp;lt;center&amp;gt;SLA&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|[[Изображение:Z80_sra.png‎|frame|&amp;lt;center&amp;gt;SRA&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Изображение:Z80_sl1.png‎|frame|&amp;lt;center&amp;gt;*SL1, SLL (недок.)&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|[[Изображение:Z80_srl.png‎|frame|&amp;lt;center&amp;gt;SRL&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Изображение:Z80_rld.png‎|frame|&amp;lt;center&amp;gt;RLD&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|[[Изображение:Z80_rrd.png‎|frame|&amp;lt;center&amp;gt;RRD&amp;lt;/center&amp;gt;]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Команды ввода-вывода ===&lt;br /&gt;
Хотя в официальной документации написано, что номера портов имеют 8 разрядов, в реальности Z80 формирует 16-разрядный номер порта, и в некоторых компьютерах ([[ZX Spectrum]], например) это используется. Правило  следующее:&lt;br /&gt;
* IN A, d / OUT d, A — старший байт номера порта берется из A, то есть полный номер — [Ad];&lt;br /&gt;
* IN r, C / OUT C, r — старший байт номера порта берется из B, то есть полный номер — [BC];&lt;br /&gt;
&lt;br /&gt;
=== Прерывания ===&lt;br /&gt;
* Проверка на наличие запроса на прерывание производится процессором после выполнения инструкции;&lt;br /&gt;
* Немаскируемое прерывание NMI имеет более высокий приоритет по сравнению с INT;&lt;br /&gt;
* После обработки префиксов, некоторых команд (EI), а также недопустимых операций с префиксом ED, проверка запроса на прерывание блокируется, даже NMI. Это сделано для того, чтобы прерывание не отменило действие префикса на следующую команду. Что касается EI, то запрет проверки сделан для того, чтобы прерывание не сработало между командами EI и RETI, которыми обычно завершается обработчик, если низкий уровень на входе INT еще активен. Стандартная периферия Z80 может отслеживать прохождение команды RETI и снимать запрос на прерывание автоматически.&lt;br /&gt;
&lt;br /&gt;
=== Ошибка с чтением IFF2 ===&lt;br /&gt;
Известная проблема с получением значения IFF2 командами &amp;lt;tt&amp;gt;LD A,I&amp;lt;/tt&amp;gt; и &amp;lt;tt&amp;gt;LD A,R&amp;lt;/tt&amp;gt; состоит в том, что если в момент исполнения команды приходит прерывание, и прерывания разрешены, во флаг PV попадает 0 вместо 1. Учет этой особенности создателями программ имеет два направления:&lt;br /&gt;
# Обход ошибки. Команда &amp;lt;tt&amp;gt;LD A,I&amp;lt;/tt&amp;gt; выполняется два раза подряд. Если хоть в одном случае получена 1, значит прерывания разрешены. Принцип этого трюка в том, что прерывания обычно приходят с определенной периодичностью, и вероятность их получения в двух командах, идущих подряд, равна нулю.&lt;br /&gt;
# Защита от эмуляции. Программа выполняет цикл из операций вида &amp;lt;tt&amp;gt;LD A, I&amp;lt;/tt&amp;gt; в течение некоторого времени, гарантирующего приход хотя бы одного прерывания. Если ошибочное значение не было получено ни разу, программа делает вывод, что выполняется под эмулятором. Чтобы обмануть такую программу, нужно учитывать описанную особенность Z80.&lt;br /&gt;
&lt;br /&gt;
Есть сведения, что в поздних вариантах Z80 эта ошибка была исправлена.&lt;br /&gt;
&lt;br /&gt;
=== Расширенные материалы ===&lt;br /&gt;
* [[/DAA]] — подробное описание работы команды DAA;&lt;br /&gt;
* [[/BIT]] — особенности установки недокументированных флагов командой BIT;&lt;br /&gt;
* [[/INI]] — вычисление флагов в командах блочного ввода-вывода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* {{pdf||Z80 Family CPU User Manual|datasheets/processors/Z80/um0080.pdf}} {{ref-en}}&lt;br /&gt;
* {{www}} [http://www.z80.info/decoding.htm Декодирование кодов команд] {{ref-en}}&lt;br /&gt;
* {{www}} [http://www.z80.info/z80sean.txt Таблица команд со временем исполнения] {{ref-en}}&lt;br /&gt;
* {{www}} [http://www.z80.info/z80inst.txt Алфавитный список команд с пояснениями] {{ref-en}}&lt;br /&gt;
* {{www}} [http://www.z80.info/z80sflag.htm Действие команд на флаги] {{ref-en}}&lt;br /&gt;
* {{www}} [http://www.zophar.net/tech/files/z80undoc.html Недокументированные команды] {{ref-en}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Zilog Z80]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0/%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&amp;diff=4257</id>
		<title>Заглавная страница/Новости</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0/%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&amp;diff=4257"/>
		<updated>2026-06-17T09:45:03Z</updated>

		<summary type="html">&lt;p&gt;Panther: +1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 06.01.2024 Вышел первый релиз эмулятора [https://github.com/Ptr314/ecat3 eCat 3-й версии].&lt;br /&gt;
* 09.12.2024 Вышел первый релиз [https://github.com/Ptr314/mfmtools утилиты для конвертации файлов образов дисков].&lt;br /&gt;
* 19.08.2025 Распознана [[Агат/ЯБ3.089.026 ТО Ячейка процессора, памяти и интерфейса|техдокументация на Агат-9 (ЯБ3.089.026 ТО)]]&lt;br /&gt;
* 22.04.2026 Распознано [[Микросхемы интегральные Л1839ВМ1. Техническое описание|Техническое описание]] на процессор Л1839ВМ1 ([[Электроника 32]])&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* 13.09.2023 Сервер обновлен на актуальные версии ПО.&lt;br /&gt;
* 25.08.2016 Отсканирован комплект технических описаний [[Искра-1030|Искра-1030.11 исполнение 5]]&lt;br /&gt;
* 18.06.2016 Отсканирован комплект технических описаний [[Искра-1030|Искра-1030М]]&lt;br /&gt;
* 08.06.2016 Отсканирован комплект документации [[Нейрон И9.66]]&lt;br /&gt;
* 20.12.2015 Отсканирован альбом схем [[EC-184x|ЕС-1841]]&lt;br /&gt;
* 12.12.2015 Включена поддержка SVG&lt;br /&gt;
* 07.10.2015 Добавлены материалы по [[УКНЦ]]&lt;br /&gt;
* 29.09.2015 Добавлена статья [[Формат дисков CP/M 2.2]];&lt;br /&gt;
* 11.07.2015 Отсканирован альбом схем [[Т3-29]];&lt;br /&gt;
* 03.04.2015 Отсканировано Руководство пользователя [[Т3-29]];&lt;br /&gt;
* 28.02.2014 Выложены прошивки контроллеров ИРПС и НГМД компьютера [[Поиск]];&lt;br /&gt;
* 23.02.2014 Отсканировано техническое описание [[Т3-29]];&lt;br /&gt;
* 21.02.2014 Выложены прошивки клавиатуры [[Искра-1030]] и контроллера КЖД [[EC-184x|ЕС-1841]];&lt;br /&gt;
* 19.02.2014 Выложены прошивки [[Электроника Т3-29]] и [[Искра-1030|Искра-1030М]];&lt;br /&gt;
* Загружена статья о [[Контроллер дисковода: схемотехника и принципы работы‎|схемотехнике и принципах работы контроллеров дисководов]];&lt;br /&gt;
* Собран из частей альбом схем ПК «[[Партнер]]»&lt;br /&gt;
* [[Корвет|Выложена вся имеющаяся документация по «Корвету»]]&lt;br /&gt;
* [[Юниор|Схема и руководство от компьютера «Юниор»]]&lt;br /&gt;
* [[Teledisk|Описание формата Teledisk]]&lt;br /&gt;
* [[FDC 1793|Описание контроллера КР1818ВГ93&amp;amp;nbsp;/ FDC&amp;amp;nbsp;1793]]&lt;br /&gt;
* [[MOS Technology 6502/Система команд|Система команд 6502]]&lt;br /&gt;
* [[Орион-Про|Авторская документация по «Орион-Про»]]&lt;br /&gt;
* [[Ириша|Отсканирована и размещена в DjVu книга «Персональный компьютер «Ириша»]]&lt;br /&gt;
* [[Эрик/Радиолюбитель 1994/Персональный компьютер «Эрик»|Персональный компьютер «Эрик» — статья из журнала «Радиолюбитель»]]&lt;br /&gt;
* [[Партнёр/Радиолюбитель 1994/Большие возможности ПК «Партнёр»|ПК «Партнёр» — статья из журнала «Радиолюбитель»]]&lt;br /&gt;
* [[:Категория:Микро-80/Публикации|Публикации по Микро-80]]&lt;br /&gt;
* [[Радиолюбитель 1994-02,03/Спектрум-128|Архитектура Спектрум-128]]&lt;br /&gt;
* [[Zilog Z80/Система команд‎|Система команд‎ Z80]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[https://emuverse.ru/w/index.php?title=Заглавная_страница/Новости&amp;amp;action=edit редактировать]&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80_%D1%86%D0%B2%D0%B5%D1%82%D0%B0&amp;diff=4256</id>
		<title>Специалист/Контроллер цвета</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80_%D1%86%D0%B2%D0%B5%D1%82%D0%B0&amp;diff=4256"/>
		<updated>2026-06-17T09:39:58Z</updated>

		<summary type="html">&lt;p&gt;Panther: + lic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
&lt;br /&gt;
На «Специалисте» существует четыре варианта реализации цвета, во всех вариантах разрешение 384×256:&lt;br /&gt;
# &amp;quot;Классический&amp;quot; ч/б вариант без цвета&lt;br /&gt;
# 5-цветный вариант - PAPER всегда чёрный + 4 цвета для INK; цвет задаётся записью в порт FF02 биты 6-7&lt;br /&gt;
# 8-цветный вариант, расширение 5-цветного; цвет задаётся записью в порт FF02 биты 4/6/7&lt;br /&gt;
# Цвет в «Специалист MX», байт цвета имеет 4 бита на PAPER и 4 бита на INK; порт FFF8&lt;br /&gt;
&lt;br /&gt;
== 5-цветный вариант ==&lt;br /&gt;
&lt;br /&gt;
На примере ПК &amp;quot;Специалист&amp;quot; из журнала «Моделист - конструктор», № 8 за 1990 г.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Для усовершенствования «Специалиста» нужен формирователь RGB (контроллер цвета) для сопряжения с цветным телевизором. Устройство представляет собой модуль, конструктивно оформленный в виде отдельной приставки. Модуль имеет четыре выхода: R, G, B и Y+SS. Каково же их назначение?&lt;br /&gt;
Многообразие цветовых оттенков на экране телевизора складывается из трех основных цветов – красного (Red), зеленого (Green) и синего (Blue). Соответственно у цветного кинескопа имеются три электронные пушки и столько же видеоусилителей: R, G, B. Отклонение лучей осуществляет блок разверток. Следовательно, для цветного телевизора нужно сформировать три видеосигнала R, G, B и сигнал синхросмеси (Y+SS). Данную функцию и выполняет модуль RGB.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица цветности, запись в порт FF02:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Specialist-colortable4.png]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.spetsialist-mx.ru/schemes/ColorController1.png Контроллер цвета ПК &amp;quot;Специалист&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== 8-цветный вариант ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Модуль RGB собран на шести микросхемах (см. рисунок) и состоит из дополнительного ОЗУ (DD1, DD2, DD5), буферного регистра DD3, выходного регистра DD4 и формирователя RGB сигналов на микросхеме DD6. Код цвета выставляется на выводах 10, 11 и 13 параллельного адаптера. При записи информации на экранное ОЗУ одновременно записывается код цвета в дополнительное ОЗУ, работающее синхронно с экранным. Назначение регистра DD3 аналогично DD46 на схеме компьютера.&lt;br /&gt;
В течение 1 мкс на выходе регистра DD4 сохраняется код цвета, который стробируется яркостным сигналом. Таким образом, светлые элементы изображения окрашиваются в один из семи цветов. Вместе с черным получаем восемь цветов.&lt;br /&gt;
Подключение модуля к выводу 13 DD44 вызвало необходимость изменить схему начального пуска. Теперь схема начального пуска отключается командой FBH (разрешение прерывания).&lt;br /&gt;
Для каждого блока из восьми точек, соответствующего 1 байту, задают свой цвет изображения, но в пределах блока можно использовать только один из восьми цветов. Фоновый цвет всегда черный. Для установки цвета изображения надо записать код цвета в порт FF02H:&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 MVI A, COLOUR1	; НА АССЕМБЛЕРЕ&lt;br /&gt;
 STA FF03		; НА АССЕМБЛЕРЕ&lt;br /&gt;
 POKE -2, COLOUR2	; НА БЕЙСИКЕ&lt;br /&gt;
 где, COLOUR1 – код цвета на ассемблере, COLOUR2 – код цвета на Бейсике.&lt;br /&gt;
&lt;br /&gt;
Таблица цветности, запись в порт FF02:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Specialist-colortable1.png]]&lt;br /&gt;
* [http://www.spetsialist-mx.ru/images/colortable1.png &amp;quot;Цветовая&amp;quot; таблица ПК &amp;quot;Специалист&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Специалист MX ==&lt;br /&gt;
&lt;br /&gt;
Таблица кодов цветности:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Номер цвета !! Y !! R !! G !! B !! Цвет&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || 0 || 0&lt;br /&gt;
|style=&amp;quot;background-color:#000000; color:white&amp;quot;| Черный&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || 0 || 1&lt;br /&gt;
|style=&amp;quot;background-color:#0000C0; color:white&amp;quot;| Синий&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 0 || 0 || 1 || 0&lt;br /&gt;
|style=&amp;quot;background-color:#00C000; color:white&amp;quot;| Зеленый&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 0 || 0 || 1 || 1&lt;br /&gt;
|style=&amp;quot;background-color:#00C0C0; color:white&amp;quot;| Бирюзовый&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 0 || 1 || 0 || 0&lt;br /&gt;
|style=&amp;quot;background-color:#C00000; color:white&amp;quot;| Красный&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 0 || 1 || 0 || 1&lt;br /&gt;
|style=&amp;quot;background-color:#C000C0; color:white&amp;quot;| Фиолетовый&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 0 || 1 || 1 || 0&lt;br /&gt;
|style=&amp;quot;background-color:#C0C000; color:black&amp;quot;| Коричневый&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 0 || 1 || 1 || 1&lt;br /&gt;
|style=&amp;quot;background-color:#C0C0C0; color:black&amp;quot;| Белый&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 1 || 0 || 0 || 0&lt;br /&gt;
|style=&amp;quot;background-color:#808080; color:white&amp;quot;| Серый&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 1 || 0 || 0 || 1&lt;br /&gt;
|style=&amp;quot;background-color:#0000FF; color:white&amp;quot;| Голубой&lt;br /&gt;
|-&lt;br /&gt;
| A || 1 || 0 || 1 || 0&lt;br /&gt;
|style=&amp;quot;background-color:#00FF00; color:black&amp;quot;| Светло-зеленый&lt;br /&gt;
|-&lt;br /&gt;
| B || 1 || 0 || 1 || 1&lt;br /&gt;
|style=&amp;quot;background-color:#00FFFF; color:black&amp;quot;| Светло-бирюзовый&lt;br /&gt;
|-&lt;br /&gt;
| C || 1 || 1 || 0 || 0&lt;br /&gt;
|style=&amp;quot;background-color:#FF0000; color:black&amp;quot;| Розовый&lt;br /&gt;
|-&lt;br /&gt;
| D || 1 || 1 || 0 || 1&lt;br /&gt;
|style=&amp;quot;background-color:#FF00FF; color:black&amp;quot;| Светло-фиолетовый&lt;br /&gt;
|-&lt;br /&gt;
| E || 1 || 1 || 1 || 0&lt;br /&gt;
|style=&amp;quot;background-color:#FFFF00; color:black&amp;quot;| Желтый&lt;br /&gt;
|-&lt;br /&gt;
| F || 1 || 1 || 1 || 1&lt;br /&gt;
|style=&amp;quot;background-color:#FFFFFF; color:black&amp;quot;| Ярко-белый&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Биты порта FFF8: цвет точек изображения/цвет фоновых точек&lt;br /&gt;
 0 1 2 3 4 5 6 7&lt;br /&gt;
 Y R G B Y R G B&lt;br /&gt;
&lt;br /&gt;
[[Категория:Специалист]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=.imd&amp;diff=4244</id>
		<title>.imd</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=.imd&amp;diff=4244"/>
		<updated>2026-05-18T10:09:58Z</updated>

		<summary type="html">&lt;p&gt;Panther: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ|Автор=Dave Dunfield|Источник=http://dunfield.classiccmp.org/img/}}&lt;br /&gt;
&lt;br /&gt;
= Формат файла образа ImageDisk (.IMD) =&lt;br /&gt;
&lt;br /&gt;
ImageDisk — программа для чтения полных образов дискет в файлы (тип .IMD) и для воссоздания копии дискеты из этого образа. Выполняется детальный анализ дискеты, и информация о форматировании записывается в файл образа. Это позволяет ImageDisk работать практически с любым программно-секторированным (soft-sectored) форматом дискет, совместимым с накопителями и контроллером гибких дисков типа 765 в составе ПК.&lt;br /&gt;
&lt;br /&gt;
== 6. Формат файла образа ==&lt;br /&gt;
&lt;br /&gt;
Общая структура файла образа ImageDisk .IMD:&lt;br /&gt;
&lt;br /&gt;
 IMD v.vv: dd/mm/yyyy hh:mm:ss          (ASCII-заголовок)&lt;br /&gt;
 Комментарий (только ASCII, без ограничения размера)  &lt;br /&gt;
 1A — байт ASCII EOF                                   &lt;br /&gt;
 — Для каждой дорожки на диске:&lt;br /&gt;
    1 байт   Значение режима (Mode)              (0–5)&lt;br /&gt;
    1 байт   Цилиндр                             (0–n)&lt;br /&gt;
    1 байт   Сторона (Head)                      (0–1) (см. примечание)&lt;br /&gt;
    1 байт   Число секторов на дорожке           (1–n)&lt;br /&gt;
    1 байт   Размер сектора                      (0–6)&lt;br /&gt;
    Карта нумерации секторов                     * число секторов&lt;br /&gt;
    Карта цилиндров секторов (опционально)       * число секторов&lt;br /&gt;
    Карта сторон секторов     (опционально)      * число секторов&lt;br /&gt;
    Записи данных секторов                       * число секторов&lt;br /&gt;
 &amp;lt;Конец файла&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Значение режима (Mode) ===&lt;br /&gt;
&lt;br /&gt;
Это значение указывает скорость передачи данных и плотность записи, с которыми изначально была записана дорожка:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Режим&lt;br /&gt;
|-&lt;br /&gt;
| 00 || 500 кбит/с FM&lt;br /&gt;
|-&lt;br /&gt;
| 01 || 300 кбит/с FM&lt;br /&gt;
|-&lt;br /&gt;
| 02 || 250 кбит/с FM&lt;br /&gt;
|-&lt;br /&gt;
| 03 || 500 кбит/с MFM&lt;br /&gt;
|-&lt;br /&gt;
| 04 || 300 кбит/с MFM&lt;br /&gt;
|-&lt;br /&gt;
| 05 || 250 кбит/с MFM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; кбит/с указывает скорость &#039;&#039;передачи&#039;&#039;, а не скорость данных, которая для FM-кодирования составляет 1/2 от указанной.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Размер сектора ===&lt;br /&gt;
&lt;br /&gt;
Значение размера сектора задаёт фактический размер данных сектора на дорожке:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Размер&lt;br /&gt;
|-&lt;br /&gt;
| 00 || 128 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 01 || 256 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 02 || 512 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 03 || 1024 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 04 || 2048 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 05 || 4096 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 06 || 8192 байт/сектор&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ImageDisk в настоящее время не поддерживает диски с секторами разного размера в пределах одной дорожки (КГМД ПК не может записывать такие диски), однако предложено расширение формата .IMD для представления дисков такого типа:&lt;br /&gt;
&lt;br /&gt;
Значение размера сектора &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; означает, что после карт нумерации секторов / цилиндров / сторон (непосредственно перед записями данных) располагается таблица размеров секторов, содержащая по одному 16-битному значению (в формате little-endian) на каждый сектор, определяющему фактический размер этого сектора.&lt;br /&gt;
&lt;br /&gt;
=== 6.3 Значение стороны (Head) ===&lt;br /&gt;
&lt;br /&gt;
Это значение указывает сторону диска, на которой находится данная дорожка (0 или 1).&lt;br /&gt;
&lt;br /&gt;
Поскольку HEAD может принимать только значения 0 или 1, ImageDisk использует старшие биты этого байта для индикации наличия опциональных элементов в данных дорожки:&lt;br /&gt;
&lt;br /&gt;
* Бит 7 (&amp;lt;code&amp;gt;0x80&amp;lt;/code&amp;gt;) — Карта цилиндров секторов (Sector Cylinder Map)&lt;br /&gt;
* Бит 6 (&amp;lt;code&amp;gt;0x40&amp;lt;/code&amp;gt;) — Карта сторон секторов (Sector Head Map)&lt;br /&gt;
&lt;br /&gt;
=== 6.4 Карта нумерации секторов ===&lt;br /&gt;
&lt;br /&gt;
Карта нумерации секторов содержит по одному байту на каждый сектор дорожки с физическим идентификатором (ID) этого сектора.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что эти значения &#039;&#039;&#039;могут не быть последовательными&#039;&#039;&#039;. Диск с чередованием секторов (interleave) будет иметь карту нумерации секторов, в которой номера секторов идут в непоследовательном порядке.&lt;br /&gt;
&lt;br /&gt;
Если ImageDisk не удаётся получить все номера секторов за один оборот диска, он сообщит «Unable to determine interleave» и перестроит номера секторов в простой последовательный список.&lt;br /&gt;
&lt;br /&gt;
=== 6.5 Карта цилиндров секторов ===&lt;br /&gt;
&lt;br /&gt;
Опциональное поле. Его наличие обозначается установленным битом 7 в значении Head для дорожки.&lt;br /&gt;
&lt;br /&gt;
Если поле присутствует, это означает, что значения цилиндров, записанные в секторах, &#039;&#039;&#039;не совпадают&#039;&#039;&#039; с физическим цилиндром дорожки.&lt;br /&gt;
&lt;br /&gt;
Карта цилиндров секторов содержит по одной записи на каждый сектор; запись содержит логический идентификатор цилиндра для соответствующего сектора из карты нумерации секторов.&lt;br /&gt;
&lt;br /&gt;
Для чтения диска с нестандартными идентификаторами цилиндров потребуется использование режима &#039;&#039;&#039;FULL ANALYSIS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 6.6 Карта сторон секторов ===&lt;br /&gt;
&lt;br /&gt;
Опциональное поле. Его наличие обозначается установленным битом 6 в значении Head для дорожки.&lt;br /&gt;
&lt;br /&gt;
Если поле присутствует, это означает, что значения сторон, записанные в секторах, &#039;&#039;&#039;не совпадают&#039;&#039;&#039; с физическим выбором стороны для дорожки.&lt;br /&gt;
&lt;br /&gt;
Карта сторон секторов содержит по одной записи на каждый сектор; запись содержит логический идентификатор стороны для соответствующего сектора из карты нумерации секторов.&lt;br /&gt;
&lt;br /&gt;
Для чтения диска с нестандартными идентификаторами сторон может потребоваться использование режима &#039;&#039;&#039;FULL ANALYSIS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 6.7 Записи данных секторов ===&lt;br /&gt;
&lt;br /&gt;
Для каждого идентификатора сектора в карте нумерации секторов ImageDisk сохраняет запись данных сектора. Эти записи следуют в том же порядке, что и идентификаторы в карте нумерации секторов:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || Данные сектора недоступны — не удалось прочитать&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; .... || Обычные данные: следует (размер сектора) байт&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02 xx&amp;lt;/code&amp;gt; || Сжатые: все байты сектора имеют одинаковое значение (&amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; .... || Обычные данные с меткой адреса удалённых данных (Deleted-Data address mark)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;04 xx&amp;lt;/code&amp;gt; || Сжатые с меткой адреса удалённых данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; .... || Обычные данные, прочитанные с ошибкой данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06 xx&amp;lt;/code&amp;gt; || Сжатые, прочитанные с ошибкой данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; .... || Удалённые данные, прочитанные с ошибкой данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;08 xx&amp;lt;/code&amp;gt; || Сжатые, удалённые, прочитанные с ошибкой данных&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Форматы файлов]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=.imd&amp;diff=4243</id>
		<title>.imd</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=.imd&amp;diff=4243"/>
		<updated>2026-05-18T10:08:03Z</updated>

		<summary type="html">&lt;p&gt;Panther: + src&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ|Автор=David Dunfield|Источник=http://dunfield.classiccmp.org/img/}}&lt;br /&gt;
&lt;br /&gt;
= Формат файла образа ImageDisk (.IMD) =&lt;br /&gt;
&lt;br /&gt;
ImageDisk — программа для чтения полных образов дискет в файлы (тип .IMD) и для воссоздания копии дискеты из этого образа. Выполняется детальный анализ дискеты, и информация о форматировании записывается в файл образа. Это позволяет ImageDisk работать практически с любым программно-секторированным (soft-sectored) форматом дискет, совместимым с накопителями и контроллером гибких дисков типа 765 в составе ПК.&lt;br /&gt;
&lt;br /&gt;
== 6. Формат файла образа ==&lt;br /&gt;
&lt;br /&gt;
Общая структура файла образа ImageDisk .IMD:&lt;br /&gt;
&lt;br /&gt;
 IMD v.vv: dd/mm/yyyy hh:mm:ss          (ASCII-заголовок)&lt;br /&gt;
 Комментарий (только ASCII, без ограничения размера)  &lt;br /&gt;
 1A — байт ASCII EOF                                   &lt;br /&gt;
 — Для каждой дорожки на диске:&lt;br /&gt;
    1 байт   Значение режима (Mode)              (0–5)&lt;br /&gt;
    1 байт   Цилиндр                             (0–n)&lt;br /&gt;
    1 байт   Сторона (Head)                      (0–1) (см. примечание)&lt;br /&gt;
    1 байт   Число секторов на дорожке           (1–n)&lt;br /&gt;
    1 байт   Размер сектора                      (0–6)&lt;br /&gt;
    Карта нумерации секторов                     * число секторов&lt;br /&gt;
    Карта цилиндров секторов (опционально)       * число секторов&lt;br /&gt;
    Карта сторон секторов     (опционально)      * число секторов&lt;br /&gt;
    Записи данных секторов                       * число секторов&lt;br /&gt;
 &amp;lt;Конец файла&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Значение режима (Mode) ===&lt;br /&gt;
&lt;br /&gt;
Это значение указывает скорость передачи данных и плотность записи, с которыми изначально была записана дорожка:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Режим&lt;br /&gt;
|-&lt;br /&gt;
| 00 || 500 кбит/с FM&lt;br /&gt;
|-&lt;br /&gt;
| 01 || 300 кбит/с FM&lt;br /&gt;
|-&lt;br /&gt;
| 02 || 250 кбит/с FM&lt;br /&gt;
|-&lt;br /&gt;
| 03 || 500 кбит/с MFM&lt;br /&gt;
|-&lt;br /&gt;
| 04 || 300 кбит/с MFM&lt;br /&gt;
|-&lt;br /&gt;
| 05 || 250 кбит/с MFM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; кбит/с указывает скорость &#039;&#039;передачи&#039;&#039;, а не скорость данных, которая для FM-кодирования составляет 1/2 от указанной.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Размер сектора ===&lt;br /&gt;
&lt;br /&gt;
Значение размера сектора задаёт фактический размер данных сектора на дорожке:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Размер&lt;br /&gt;
|-&lt;br /&gt;
| 00 || 128 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 01 || 256 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 02 || 512 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 03 || 1024 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 04 || 2048 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 05 || 4096 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 06 || 8192 байт/сектор&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ImageDisk в настоящее время не поддерживает диски с секторами разного размера в пределах одной дорожки (КГМД ПК не может записывать такие диски), однако предложено расширение формата .IMD для представления дисков такого типа:&lt;br /&gt;
&lt;br /&gt;
Значение размера сектора &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; означает, что после карт нумерации секторов / цилиндров / сторон (непосредственно перед записями данных) располагается таблица размеров секторов, содержащая по одному 16-битному значению (в формате little-endian) на каждый сектор, определяющему фактический размер этого сектора.&lt;br /&gt;
&lt;br /&gt;
=== 6.3 Значение стороны (Head) ===&lt;br /&gt;
&lt;br /&gt;
Это значение указывает сторону диска, на которой находится данная дорожка (0 или 1).&lt;br /&gt;
&lt;br /&gt;
Поскольку HEAD может принимать только значения 0 или 1, ImageDisk использует старшие биты этого байта для индикации наличия опциональных элементов в данных дорожки:&lt;br /&gt;
&lt;br /&gt;
* Бит 7 (&amp;lt;code&amp;gt;0x80&amp;lt;/code&amp;gt;) — Карта цилиндров секторов (Sector Cylinder Map)&lt;br /&gt;
* Бит 6 (&amp;lt;code&amp;gt;0x40&amp;lt;/code&amp;gt;) — Карта сторон секторов (Sector Head Map)&lt;br /&gt;
&lt;br /&gt;
=== 6.4 Карта нумерации секторов ===&lt;br /&gt;
&lt;br /&gt;
Карта нумерации секторов содержит по одному байту на каждый сектор дорожки с физическим идентификатором (ID) этого сектора.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что эти значения &#039;&#039;&#039;могут не быть последовательными&#039;&#039;&#039;. Диск с чередованием секторов (interleave) будет иметь карту нумерации секторов, в которой номера секторов идут в непоследовательном порядке.&lt;br /&gt;
&lt;br /&gt;
Если ImageDisk не удаётся получить все номера секторов за один оборот диска, он сообщит «Unable to determine interleave» и перестроит номера секторов в простой последовательный список.&lt;br /&gt;
&lt;br /&gt;
=== 6.5 Карта цилиндров секторов ===&lt;br /&gt;
&lt;br /&gt;
Опциональное поле. Его наличие обозначается установленным битом 7 в значении Head для дорожки.&lt;br /&gt;
&lt;br /&gt;
Если поле присутствует, это означает, что значения цилиндров, записанные в секторах, &#039;&#039;&#039;не совпадают&#039;&#039;&#039; с физическим цилиндром дорожки.&lt;br /&gt;
&lt;br /&gt;
Карта цилиндров секторов содержит по одной записи на каждый сектор; запись содержит логический идентификатор цилиндра для соответствующего сектора из карты нумерации секторов.&lt;br /&gt;
&lt;br /&gt;
Для чтения диска с нестандартными идентификаторами цилиндров потребуется использование режима &#039;&#039;&#039;FULL ANALYSIS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 6.6 Карта сторон секторов ===&lt;br /&gt;
&lt;br /&gt;
Опциональное поле. Его наличие обозначается установленным битом 6 в значении Head для дорожки.&lt;br /&gt;
&lt;br /&gt;
Если поле присутствует, это означает, что значения сторон, записанные в секторах, &#039;&#039;&#039;не совпадают&#039;&#039;&#039; с физическим выбором стороны для дорожки.&lt;br /&gt;
&lt;br /&gt;
Карта сторон секторов содержит по одной записи на каждый сектор; запись содержит логический идентификатор стороны для соответствующего сектора из карты нумерации секторов.&lt;br /&gt;
&lt;br /&gt;
Для чтения диска с нестандартными идентификаторами сторон может потребоваться использование режима &#039;&#039;&#039;FULL ANALYSIS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 6.7 Записи данных секторов ===&lt;br /&gt;
&lt;br /&gt;
Для каждого идентификатора сектора в карте нумерации секторов ImageDisk сохраняет запись данных сектора. Эти записи следуют в том же порядке, что и идентификаторы в карте нумерации секторов:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || Данные сектора недоступны — не удалось прочитать&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; .... || Обычные данные: следует (размер сектора) байт&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02 xx&amp;lt;/code&amp;gt; || Сжатые: все байты сектора имеют одинаковое значение (&amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; .... || Обычные данные с меткой адреса удалённых данных (Deleted-Data address mark)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;04 xx&amp;lt;/code&amp;gt; || Сжатые с меткой адреса удалённых данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; .... || Обычные данные, прочитанные с ошибкой данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06 xx&amp;lt;/code&amp;gt; || Сжатые, прочитанные с ошибкой данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; .... || Удалённые данные, прочитанные с ошибкой данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;08 xx&amp;lt;/code&amp;gt; || Сжатые, удалённые, прочитанные с ошибкой данных&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Форматы файлов]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=.imd&amp;diff=4242</id>
		<title>.imd</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=.imd&amp;diff=4242"/>
		<updated>2026-05-15T17:44:42Z</updated>

		<summary type="html">&lt;p&gt;Panther: Новая страница: «{{ДИ}}  = Формат файла образа ImageDisk (.IMD) =  == 6. Формат файла образа ==  Общая структура файла образа ImageDisk .IMD:   IMD v.vv: dd/mm/yyyy hh:mm:ss          (ASCII-заголовок)  Комментарий (только ASCII, без ограничения размера)    1A — байт ASCII EOF                                     — Для каждой дорожки на диск...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
&lt;br /&gt;
= Формат файла образа ImageDisk (.IMD) =&lt;br /&gt;
&lt;br /&gt;
== 6. Формат файла образа ==&lt;br /&gt;
&lt;br /&gt;
Общая структура файла образа ImageDisk .IMD:&lt;br /&gt;
&lt;br /&gt;
 IMD v.vv: dd/mm/yyyy hh:mm:ss          (ASCII-заголовок)&lt;br /&gt;
 Комментарий (только ASCII, без ограничения размера)  &lt;br /&gt;
 1A — байт ASCII EOF                                   &lt;br /&gt;
 — Для каждой дорожки на диске:&lt;br /&gt;
    1 байт   Значение режима (Mode)              (0–5)&lt;br /&gt;
    1 байт   Цилиндр                             (0–n)&lt;br /&gt;
    1 байт   Сторона (Head)                      (0–1) (см. примечание)&lt;br /&gt;
    1 байт   Число секторов на дорожке           (1–n)&lt;br /&gt;
    1 байт   Размер сектора                      (0–6)&lt;br /&gt;
    Карта нумерации секторов                     * число секторов&lt;br /&gt;
    Карта цилиндров секторов (опционально)       * число секторов&lt;br /&gt;
    Карта сторон секторов     (опционально)      * число секторов&lt;br /&gt;
    Записи данных секторов                       * число секторов&lt;br /&gt;
 &amp;lt;Конец файла&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Значение режима (Mode) ===&lt;br /&gt;
&lt;br /&gt;
Это значение указывает скорость передачи данных и плотность записи, с которыми изначально была записана дорожка:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Режим&lt;br /&gt;
|-&lt;br /&gt;
| 00 || 500 кбит/с FM&lt;br /&gt;
|-&lt;br /&gt;
| 01 || 300 кбит/с FM&lt;br /&gt;
|-&lt;br /&gt;
| 02 || 250 кбит/с FM&lt;br /&gt;
|-&lt;br /&gt;
| 03 || 500 кбит/с MFM&lt;br /&gt;
|-&lt;br /&gt;
| 04 || 300 кбит/с MFM&lt;br /&gt;
|-&lt;br /&gt;
| 05 || 250 кбит/с MFM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; кбит/с указывает скорость &#039;&#039;передачи&#039;&#039;, а не скорость данных, которая для FM-кодирования составляет 1/2 от указанной.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Размер сектора ===&lt;br /&gt;
&lt;br /&gt;
Значение размера сектора задаёт фактический размер данных сектора на дорожке:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Значение !! Размер&lt;br /&gt;
|-&lt;br /&gt;
| 00 || 128 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 01 || 256 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 02 || 512 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 03 || 1024 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 04 || 2048 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 05 || 4096 байт/сектор&lt;br /&gt;
|-&lt;br /&gt;
| 06 || 8192 байт/сектор&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ImageDisk в настоящее время не поддерживает диски с секторами разного размера в пределах одной дорожки (КГМД ПК не может записывать такие диски), однако предложено расширение формата .IMD для представления дисков такого типа:&lt;br /&gt;
&lt;br /&gt;
Значение размера сектора &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; означает, что после карт нумерации секторов / цилиндров / сторон (непосредственно перед записями данных) располагается таблица размеров секторов, содержащая по одному 16-битному значению (в формате little-endian) на каждый сектор, определяющему фактический размер этого сектора.&lt;br /&gt;
&lt;br /&gt;
=== 6.3 Значение стороны (Head) ===&lt;br /&gt;
&lt;br /&gt;
Это значение указывает сторону диска, на которой находится данная дорожка (0 или 1).&lt;br /&gt;
&lt;br /&gt;
Поскольку HEAD может принимать только значения 0 или 1, ImageDisk использует старшие биты этого байта для индикации наличия опциональных элементов в данных дорожки:&lt;br /&gt;
&lt;br /&gt;
* Бит 7 (&amp;lt;code&amp;gt;0x80&amp;lt;/code&amp;gt;) — Карта цилиндров секторов (Sector Cylinder Map)&lt;br /&gt;
* Бит 6 (&amp;lt;code&amp;gt;0x40&amp;lt;/code&amp;gt;) — Карта сторон секторов (Sector Head Map)&lt;br /&gt;
&lt;br /&gt;
=== 6.4 Карта нумерации секторов ===&lt;br /&gt;
&lt;br /&gt;
Карта нумерации секторов содержит по одному байту на каждый сектор дорожки с физическим идентификатором (ID) этого сектора.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что эти значения &#039;&#039;&#039;могут не быть последовательными&#039;&#039;&#039;. Диск с чередованием секторов (interleave) будет иметь карту нумерации секторов, в которой номера секторов идут в непоследовательном порядке.&lt;br /&gt;
&lt;br /&gt;
Если ImageDisk не удаётся получить все номера секторов за один оборот диска, он сообщит «Unable to determine interleave» и перестроит номера секторов в простой последовательный список.&lt;br /&gt;
&lt;br /&gt;
=== 6.5 Карта цилиндров секторов ===&lt;br /&gt;
&lt;br /&gt;
Опциональное поле. Его наличие обозначается установленным битом 7 в значении Head для дорожки.&lt;br /&gt;
&lt;br /&gt;
Если поле присутствует, это означает, что значения цилиндров, записанные в секторах, &#039;&#039;&#039;не совпадают&#039;&#039;&#039; с физическим цилиндром дорожки.&lt;br /&gt;
&lt;br /&gt;
Карта цилиндров секторов содержит по одной записи на каждый сектор; запись содержит логический идентификатор цилиндра для соответствующего сектора из карты нумерации секторов.&lt;br /&gt;
&lt;br /&gt;
Для чтения диска с нестандартными идентификаторами цилиндров потребуется использование режима &#039;&#039;&#039;FULL ANALYSIS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 6.6 Карта сторон секторов ===&lt;br /&gt;
&lt;br /&gt;
Опциональное поле. Его наличие обозначается установленным битом 6 в значении Head для дорожки.&lt;br /&gt;
&lt;br /&gt;
Если поле присутствует, это означает, что значения сторон, записанные в секторах, &#039;&#039;&#039;не совпадают&#039;&#039;&#039; с физическим выбором стороны для дорожки.&lt;br /&gt;
&lt;br /&gt;
Карта сторон секторов содержит по одной записи на каждый сектор; запись содержит логический идентификатор стороны для соответствующего сектора из карты нумерации секторов.&lt;br /&gt;
&lt;br /&gt;
Для чтения диска с нестандартными идентификаторами сторон может потребоваться использование режима &#039;&#039;&#039;FULL ANALYSIS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 6.7 Записи данных секторов ===&lt;br /&gt;
&lt;br /&gt;
Для каждого идентификатора сектора в карте нумерации секторов ImageDisk сохраняет запись данных сектора. Эти записи следуют в том же порядке, что и идентификаторы в карте нумерации секторов:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Тип !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; || Данные сектора недоступны — не удалось прочитать&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; .... || Обычные данные: следует (размер сектора) байт&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;02 xx&amp;lt;/code&amp;gt; || Сжатые: все байты сектора имеют одинаковое значение (&amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;03&amp;lt;/code&amp;gt; .... || Обычные данные с меткой адреса удалённых данных (Deleted-Data address mark)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;04 xx&amp;lt;/code&amp;gt; || Сжатые с меткой адреса удалённых данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;05&amp;lt;/code&amp;gt; .... || Обычные данные, прочитанные с ошибкой данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;06 xx&amp;lt;/code&amp;gt; || Сжатые, прочитанные с ошибкой данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; .... || Удалённые данные, прочитанные с ошибкой данных&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;08 xx&amp;lt;/code&amp;gt; || Сжатые, удалённые, прочитанные с ошибкой данных&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Форматы файлов]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4241</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4241"/>
		<updated>2026-04-22T19:10:14Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* 1. Команды для работы с целыми числами и логические команды */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.8. Основные параметры прерываний и исключительных состояний ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Векторы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Переход на подпрограммы обслуживания особых ситуаций осуществляется с помощью специальных векторов, которые представляют собой длинные слова, интерпретируемые следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) Биты &amp;lt;1:0&amp;gt; содержат интерпретируемый код:&lt;br /&gt;
&lt;br /&gt;
* 0 - обслужить событие через стек ядра. Если работа уже выполняется через стек прерываний, то обслужить событие через стек прерываний.&lt;br /&gt;
* 1 - обслужить событие через стек прерываний. Если это событие является исключительным состоянием, то IPL повышается до 1F;&lt;br /&gt;
* 2 - обслужить событие в перезаписываемой управляющей памяти. Если эта память не используется, то процессор переходит на команду останова HALT;&lt;br /&gt;
* 3 - процессор переходит на HALT.&lt;br /&gt;
&lt;br /&gt;
2) Биты &amp;lt;31:2&amp;gt; содержат виртуальный адрес подпрограммы обслуживания - для кодов 0 и 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Системный управляющий блок (SCB).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все векторы обслуживания прерываний и исключительных состояний находятся в системном управляющем блоке ( SCB - *System Control Block* ), который представляет собой две смежных страницы памяти. Физический адрес первой страницы содержится в привилегированном регистре - базе системного управляющего блока SCBB ( *SCB base* ).&lt;br /&gt;
&lt;br /&gt;
Векторы устройств на *UNIBUS* находятся во второй странице, адрес которой получается добавлением к адресу, содержащемуся в SCBB, константы (200)₁₆. Разрешенными для этих устройств считаются только векторы (200-3FC)₁₆.&lt;br /&gt;
&lt;br /&gt;
Основные параметры прерываний и исключительных состояний приведены в табл.5.&lt;br /&gt;
&lt;br /&gt;
Таблица 5&lt;br /&gt;
&lt;br /&gt;
Таблица основных параметров особых ситуаций&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| Наименование особых  | Тип        | Уровень приори-  | Вектор | Источник  | Код  | Параметры, загру-  |&lt;br /&gt;
| ситуаций             | ситуации   | тета прерывания  | 16     | (а/МП)*   | 16   | жаемые в стек      |&lt;br /&gt;
|                      |            | IPL_16           |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 1. Машинный сбой     | Прекращение| 1F**             | 04     | Контроллер|  6?  | См.Примечание 1    | &amp;lt;Неразборчиво, 4 зачеркнуто, исправлено на 6 или 8&amp;gt;&lt;br /&gt;
|                      | / ловушка  |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 2. Недостоверный стек| Прекращение| 1F**             | 08     | Процессор |  2   | РНК***, PSL        | &amp;lt;D зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| ядра                 |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 3. Недостоверный стек| Прекращение| 1F**             | -      | Процессор |  2   | РНК, PSL и причи-  | &amp;lt;1 зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| прерываний           |            |                  |        | (а)       |      | на останова оста-  |&lt;br /&gt;
|                      |            |                  |        |           |      | ются на регистрах  |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 4. Сбой питания      | Прерывание | 1E               | 0C     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 5. Резервная/привиле-| Нарушение  | -                | 10     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| гированная команда   |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 6. Резервная команда | Нарушение  | -                | 14     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| пользователя         |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 7. Резервный операнд | Нарушение/ | -                | 18     | Процессор | 7    | РНК, PSL           | &amp;lt;E зачеркнуто, исправлено на 7&amp;gt;&lt;br /&gt;
|                      | прекращение|                  |        | (а/МП)    |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 8. Резервный метод   | Нарушение  | -                | 10C    | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| адресации            |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 9. Нарушение управле-| Нарушение  | -                | 20     | Процессор |  4   | См.Примечание 2    | &amp;lt;2 зачеркнуто, исправлено на 4&amp;gt;&lt;br /&gt;
| ния доступом         |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 10. Запрет трансляции| Нарушение  | -                | 24     | Процессор |  5   | См.Примечание 2    | &amp;lt;3 зачеркнуто, исправлено на 5&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 11. Трассировка      | Нарушение  | -                | 28     | Процессор |  E   | РНК, PSL           | &amp;lt;7 зачеркнуто, исправлено на E&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 12. Команда ВРТ      | Нарушение  | -                | 2C     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
|                      |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 13. Арифметические   | Ловушка    | -                | 34     | Процессор |8-A   | См.Примечание 3    | &amp;lt;B зачеркнуто, исправлено на A&amp;gt;&lt;br /&gt;
| ловушки              |            |                  |        | (а/МП)    |нрзб,A|                    | &amp;lt;неразборчиво&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 14. Команды:  СНМК   | Ловушка    | -                | 40     | Процессор.| -    | См.Примечание 4    |&lt;br /&gt;
|               СНМЕ   |            |                  | 44     | (МП)      |      |                    |&lt;br /&gt;
|               СНМS   |            |                  | 48     |           |      |                    |&lt;br /&gt;
|               СНМИ   |            |                  | 4C     |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 15. Зависание по     | Прерывание | 1D               | 60     | Контроллер| C    | PC, PSL            |&lt;br /&gt;
| записи в память      |            |                  |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 16. Исправимые ошибки| Прерывание | 1A               | 54     | Контроллер| C    | PC,PSL             |&lt;br /&gt;
| памяти               |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 17. Таймер           | Прерывание | 18               | C0     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 18. Консольный       | Прерывание | 14               | F8     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (приемник)  |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 19. Консольный       | Прерывание | 14               | FC     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (передатчик)|            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 20. Программные      | Прерывание | 1...F            | 84...BC| Адаптер   | D?   | PC, PSL            |  &amp;lt;&amp;quot;-&amp;quot; исправлено на D?&amp;gt;&lt;br /&gt;
| прерывания           |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 21. Прерывания       | Прерывание | 14-17            |200-3FC | Адаптер   |      | PC, PSL            |  &amp;lt;5-6 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| устройств            |            |                  |        | (а)       | D    |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - аппаратный/микропрограммный характер соответствующего события;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - для этих событий IPL = 1F, если 1:0 разряды вектора равны 1;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;***&#039;&#039;&#039; - РНК - регистр начала команды. Он указывает на код операции команды, при выполнении которой произошло нарушение или прекращение.&lt;br /&gt;
&lt;br /&gt;
П р и м е ч а н и я  к табл.5:&lt;br /&gt;
&lt;br /&gt;
1. При машинном сбое в стеке сохраняются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Параметр длины (равен 28₁₆).&lt;br /&gt;
* (SP)+4   Код ошибки (для ошибок памяти, например, равен 2).&lt;br /&gt;
* (SP)+8   Регистр виртуального адреса (РКВА).&lt;br /&gt;
* (SP)+C   PC во время сбоя.&lt;br /&gt;
* (SP)+10  Регистр данных памяти (MDR).&lt;br /&gt;
* (SP)+14  Сохраненный регистр режима ( SMR).&lt;br /&gt;
* (SP)+18  Регистр зависания по чтению-модификации-записи (RLTO).&lt;br /&gt;
* (SP)+1C  Регистр групповой четности буфера трансляции (TBGPR).&lt;br /&gt;
* (SP)+20  Регистр ошибок КЭШ-памяти (CAER).&lt;br /&gt;
* (SP)+24  Регистр ошибок шины (BER).&lt;br /&gt;
* (SP)+28  Регистр суммарных ошибок при машинном сбое (MCESR).&lt;br /&gt;
* (SP)+2C  PC, указывающий на код операции.&lt;br /&gt;
* (SP)+30  PSL.&lt;br /&gt;
&lt;br /&gt;
2. При исключительных состояниях от диспетчера памяти в стеке сохраняются:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Регистр суммарных ошибок диспетчера памяти.&lt;br /&gt;
* (SP)+4   Виртуальный адрес в странице нарушения (РКВА).&lt;br /&gt;
* (ST)+8   РНК.&lt;br /&gt;
* (SP)+C   PSL.&lt;br /&gt;
&lt;br /&gt;
3. При арифметических ловушках в стеке, кроме PC, также сохраняется код арифметической ловушки, который имеет следующие значения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Код     Тип арифметической ловушки&lt;br /&gt;
&lt;br /&gt;
      1       Целочисленное переполнение&lt;br /&gt;
      2       Целочисленное деление на 0&lt;br /&gt;
      3       Плавающее  переполнение&lt;br /&gt;
      4       Плавающее/десятичное деление на 0&lt;br /&gt;
      5       Плавающее обнуление&lt;br /&gt;
      6       Десятичное переполнение&lt;br /&gt;
      7       Диапазон приписки&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. При выполнении команд смены режима в стек, кроме PC, PSL загружается операнд команды ( *code* ) с расширенным знаком.&lt;br /&gt;
&lt;br /&gt;
Вся аппаратура, связанная с обработкой прерываний и исключительных состояний, располагается в контроллере памяти, адаптере магистрали и в процессоре.&lt;br /&gt;
&lt;br /&gt;
Контроллер фиксирует аппаратные ошибки, связанные с работой памяти и сообщает об этом процессору с помощью сигналов *INRC* (прерывание контроллера) и MCH (машинный сбой). Адаптер фиксирует все остальные прерывания, проводит разбор приоритетов между ними и сообщает процессору о наличии запроса прерывания сигналом *INRA* (прерывание адаптера). Кроме этого в адаптере находится часть внутренних регистров системы, которые связаны с обработкой прерываний.&lt;br /&gt;
&lt;br /&gt;
В процессоре находится, собственно блок прерываний (БПР), который наряду с прерываниями контроллера и адаптера, обрабатывает все аппаратные исключительные состояния, проводит окончательный разбор приоритетов и формирует код особой ситуации, с помощью которого осуществляется формирование начального адреса соответствующей микропрограммы обработки.&lt;br /&gt;
&lt;br /&gt;
== 1.9. Блок прерываний БПР ==&lt;br /&gt;
&lt;br /&gt;
1.9.1. На рис.8 приведена структурная схема БПР процессора. Ниже перечислены основные блоки, входы и выходы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic8.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1) БСБПР - блок синхронизации БПР.&lt;br /&gt;
&lt;br /&gt;
2) БРП   - блок разбора приоритетов.&lt;br /&gt;
&lt;br /&gt;
3) ДШРИП - дешифратор сброса источника прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
4) РИП   - регистр источников прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
5) Входы:&lt;br /&gt;
&lt;br /&gt;
* КК    - признак конца команды;&lt;br /&gt;
* PA    - выход элемента ИЛИ, на входах которого собраны все нарушения и прекращения;&lt;br /&gt;
* 1T    - выход элемента ИЛИ, на входах которого собраны все прерывания и ловушки;&lt;br /&gt;
* 5CN   - запрос недостоверного стека ядра;&lt;br /&gt;
* SINN - запрос недостоверного стека прерываний;&lt;br /&gt;
* НУД   - запрос нарушения управления доступом;&lt;br /&gt;
* ЗТ    - запрос запрета трансляции;&lt;br /&gt;
* MCH   - запрос машинного сбоя;&lt;br /&gt;
* REZ   - запрос резервного операнда;&lt;br /&gt;
* INRA  - запрос адаптера;&lt;br /&gt;
* HALT  - запрос останова;&lt;br /&gt;
* T     - запрос трассировки;&lt;br /&gt;
* FUZ   - запрос ловушки плавающего недополнения;&lt;br /&gt;
* DVV   - запрос ловушки десятичного переполнения;&lt;br /&gt;
* IVV   - запрос ловушки целочисленного переполнения;&lt;br /&gt;
* FVV   - запрос ловушки плавающего переполнения;&lt;br /&gt;
* INRC  - запрос прерывания контроллера;&lt;br /&gt;
* РИП   - сигнал сброса источника прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Выходы:&lt;br /&gt;
&lt;br /&gt;
* RA        - сигнал запроса сбоя;&lt;br /&gt;
* IRQ       - сигнал запроса прерывания;&lt;br /&gt;
* ЗРПП      - сигнал записи регистра признака прерывания и исключительного состояния (РПП);&lt;br /&gt;
* ЗРИП      - сигнал записи РИП;&lt;br /&gt;
* РПП(0-3)  - код прерываний и исключительных состояний;&lt;br /&gt;
* 5РИП      - сигнал сброса конкретного источника (в соответствии с кодом).&lt;br /&gt;
&lt;br /&gt;
1.9.2. Алгоритм работы БПР&lt;br /&gt;
&lt;br /&gt;
При поступлении в БПР сигналов прерываний - ловушек или сигналов нарушений-прекращений запускается БСБПР - по сигналу IT или PA соответственно. PA может возникать в любой момент выполнения команды, IT возникает лишь после окончания команды, перед выполнением следующей команды. БСБПР вырабатывает сигналы RA или IRQ , которые поступают на ПЛМ ДШК, ЗРИП, по которому производится запись в РИП всех имеющихся к этому времени запросов. В БРП, в соответствии с самым высокоприоритетным запросом, формируется код, который поступает на входы РПП (находящегося в блоке управления ПЗУ) и на входы ДШ КИП для последующего сброса источника запроса по сигналу РИП&lt;br /&gt;
&lt;br /&gt;
Запись в РПП производится сигналом ЗРПП, также выработанным БСБПА.&lt;br /&gt;
&lt;br /&gt;
Содержимое РПП затем используется микрокомандой перехода по регистру для выхода на конкретные микропрограммы обработки прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
В табл. 5 в графе &amp;quot;Код₁₆&amp;quot; приведены шестнадцатеричные коды аппаратных особых ситуаций.&lt;br /&gt;
&lt;br /&gt;
Приоритетность между прерываниями и ловушками в БПР принята следующая (в порядке убывания приоритетов):&lt;br /&gt;
&lt;br /&gt;
# Арифметические ловушки.&lt;br /&gt;
# Прерывания контроллера.&lt;br /&gt;
# Прерывания адаптера.&lt;br /&gt;
#  Ловушка трассы.&lt;br /&gt;
&lt;br /&gt;
На рис. 9 приведена временная диаграмма работы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic9.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.9.3. Алгоритм обработки прерываний и исключительных состояний&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки ситуаций сводится, в основном, к двум действиям:&lt;br /&gt;
&lt;br /&gt;
1) сохранению текущего состояния (PC(РНК), *PSL* , параметры (если нужно));&lt;br /&gt;
&lt;br /&gt;
2) формированию нового состояния (загрузка PC начальным адресом программы обработки особой ситуации, формирование нового *PSL* ).&lt;br /&gt;
&lt;br /&gt;
Более подробно эти два действия, и другие описаны в алгоритме обработки прерываний и исключительных состояний на рис.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic10.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.10. Временные диаграммы процессора, идентификаторы обменов ==&lt;br /&gt;
&lt;br /&gt;
1.10.1. Ко всем временным диаграммам относится следующее:&lt;br /&gt;
&lt;br /&gt;
1) Если на вход тестирования *TEST* подан низкий уровень, то новый обмен по микрокомандной магистрали не начнется, пока ответный сигнал *MSDS* от накопителя микрокоманд не закончится. По магистрали AD(0-31) не начнется новый обмен, пока не закончатся ответные сигналы *SAS* и *SDS* от предыдущего обмена. Если на входе *TEST* высокий уровень, то новые обмены по магистралям начинаются независимо от окончания ответных сигналов. При этом окончание сигналов *SAS* и *SDS* должно происходить асинхронно с минимальным временем задержки по окончании сигналов *MAS* и *MDS* . Представленные ниже временные диаграммы справедливы для высокого уровня на входе *TEST*.&lt;br /&gt;
&lt;br /&gt;
2) Интерфейсные сигналы при магистрали AD(0-31): *MAS* , *PGB* , *PCRQ* , *MDS* , *SEL* , *DMAK* вырабатываются выходами с тремя состояниями. На эти выходы необходимо ставить резисторы 2,7 кОм к шине источника питания + Ucc. После окончания сигналов в процедурах обменов на этих выходах осуществляется &amp;quot;подброс в &amp;quot;1&amp;quot; на время 0,5 T*CLC* , причем на выходах *MAS*, *PCRQ* , *DMAK* в отрицательной фазе CLC, а на выходах *PGB* , *MDS* и *SEL* - в положительной. Также в состояние активного высокого уровня эти выходы приводятся от низкого уровня на входе *SR* при начальном пуске ЦПР, причем для активного высокого уровня на выходе *MAS* необходимо наличие высокого уровня на входе *ACTR*.&lt;br /&gt;
&lt;br /&gt;
3) Выходы AD(0-31) также имеют три состояния. В третьем состоянии выходы AD(0-31) находятся при приеме команд или данных, от низкого уровня на входе *SR* , в процедуре &amp;quot;Запись с перехватом&amp;quot; и при предоставлении прямого доступа к памяти.&lt;br /&gt;
&lt;br /&gt;
В состояние активного высокого уровня выходы AD(0-31) приводятся между обменами по окончании сигнала *MDS* .&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение микрокоманды&amp;quot; представлена на рис. 11. Минимальный цикл приема микрокоманды составляет 2 T*CLC* . [зачёркнуто: Ответный сигнал *MSDS* от накопителя микрокоманд может быть также статическим низким уровнем - в отличие от представленного на рис. 11.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic11.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На временной диаграмме представлен дополнительно внутренний сигнал ЦПР *WBMC* - запись в буфер микрокоманд.&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Адресное чтение&amp;quot; представлена на рис. *12*. Минимальный цикл адресного чтения 3T*CLC*. Низкий уровень сигнала *SAS* принимается в отрицательной фазе *CLC* , затем выдается сигнал *MDS* низкого уровня и открывается внутренняя магистраль MD(0-31) для приема данных. В целях обеспечения быстродействия на частоте 10 МГц низкий уровень сигнала *SAS* необходимо подавать в течение первых 25 нс отрицательной фазы *CLC* . Низкий уровень сигнала *SDS* принимается также в отрицательной фазе *CLC* , и в следующей положительной фазе *CLC* заканчивается сигнал *MDS* . Для обеспечения быстродействия необходимо выполнить такие же требования, как и для сигнала *SAS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic12.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма &amp;quot;Безадресное чтение команды&amp;quot; представлена на рис. *13* . Минимальный цикл процедуры 2 T*CLC* . Прием сигнала *SDS* происходит также, как и при адресном чтении и требования для обеспечения быстродействия те же.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic13.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Запись&amp;quot; представлена на рис. *14* . Минимальный цикл процедуры - 4T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic14.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись&amp;quot; представлена на рис. *15* . Минимальный цикл процедуры - 7 T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия такие как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic15.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры передачи адреса при пересечении данными границы страницы представлена на рис. *16* . Сигнал *PGB* при первом появлении сопровождает адрес перед границей страницы, при втором появлении сопровождает адрес начала новой страницы. Между двумя адресами (рис. *16* ) возможно выполнение обменов, например, &amp;quot;Чтение PTE&amp;quot;, если пуст &amp;quot;Буфер трансляции&amp;quot;, или &amp;quot;Безадресное чтение команды&amp;quot;. Для обеспечения быстродействия на частоте 10 МГц требования к сигналам *SAS* и *SDS* такие же, как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic16.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма отказа от записи в процедуре &amp;quot;Чтение-модификация-запись PTE&amp;quot; представлена на рис. *17*. Отказ от записи *PTE* происходит, когда страница уже модифицировалась (бит модификации М &amp;lt;26&amp;gt; регистра PTE установлен в &amp;quot;1&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic17.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы процедур чтения и записи внутренних регистров *IPR* , размещенных в процессоре ( *POBR* , *POLR* , *P1BR* , *P1LR* , *SBR*, *SLR*, *MAPEN* , *TBIA* , *TBIS* , *ACCS* ) представлены на рис. *18,19*. Внешние сигналы *SAS* , *SDS* не требуются, вместо них в процессоре вырабатываются внутренние сигналы такого же назначения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic18.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic19.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма чтения внешнего регистра начальных условий представлена на рис. *20* . Для чтения этого регистра предназначен выход *SEL* . Сигнал *SEL* возникает при чтении системной памяти (A31, A30 = &amp;quot;1&amp;quot;) и при A23 = &amp;quot;1&amp;quot;. На временной диаграмме сигнал *SEL* аналогичен сигналу *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic20.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма сигналов сопровождения процедуры захвата магистрали при прямом доступе к памяти представлена на рис. *21*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic21.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сигнал *DMR* магистрали *Q-BUS* преобразуется микросхемой адаптера магистрали КЛ839ВВ1 в сигнал *DMRQ* , поступающий на процессор. При отсутствии обменов процессор принимает сигнал *DMRQ* в низкой фазе *CLC* и через период *CLC* выдает сигнал разрешения прямого доступа к памяти *DMAK* , который микросхема АМ преобразует в сигнал *DMGO* магистрали *Q-BUS*. Окончание сигнала *DMAK* происходит в той же фазе низкого уровня CLC в какой принимается окончание сигнала *DMRQ* . На временной диаграмме также представлен перевод выходов магистрали AD(0-31) в третье состояние и выход из третьего состояния. При наличии обмена сигнал *DMAK* появится только по его окончании.&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы адресного чтения и адресной записи с перехватом сопроцессором обменов с памятью представлены на рис. *22, 23* . Обмен с перехватом происходит при A31 = &amp;quot;0&amp;quot;, A30 = &amp;quot;1&amp;quot;. О том, что микросхема сопроцессора начинает обмен с памятью, свидетельствует сигнал *ACTR* . Приняв асинхронно этот сигнал, процессор переводит выход *MAS* в третье состояние, предоставляя возможность сопроцессору выставить активный низкий уровень *MAS*спрц и далее сопроцессор читает данные из памяти или записывает данные в память также, как выполняет эти процедуры процессор. При записи с перехватом выходы AD(0-31) процессора переводятся в третье состояние по окончании адреса в низкой фазе· *CLC* и выходят из третьего состояния (подброс в &amp;quot;1&amp;quot;) по окончании низкого уровня на шине *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Рис. 22 отсутствует&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic23.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись с перехватом&amp;quot; представлена на рис. *24*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic24.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойное адресное чтение&amp;quot; представлено на рис. *25*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic25.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойная запись&amp;quot; представлена на рис. *26*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic26.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Двойное чтение и запись выполняются при обменах с четверными словами.&lt;br /&gt;
&lt;br /&gt;
На рис. *27-30* представлены временные диаграммы различных обменов с внешними и внутренними сигналами процессора.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic27.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic28.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic29.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic30.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
К внутренним сигналам процессора относятся:&lt;br /&gt;
&lt;br /&gt;
* WBMC  - запись в буфер микрокоманд;&lt;br /&gt;
* WMCE  - запись в регистр микрокоманд;&lt;br /&gt;
* NRFW  - сигнал записи поля чтения;&lt;br /&gt;
* SRDI  - сигнал чтения источника;&lt;br /&gt;
* SWT2  - сигнал записи в приемник;&lt;br /&gt;
* WTWA  - запись в регистр виртуального адреса;&lt;br /&gt;
* WTPA  - запись в регистр физического адреса;&lt;br /&gt;
* ADRE  - сигнал разрешения выдачи адреса в системную магистраль AD(0-31);&lt;br /&gt;
* DTIE  - сигнал приема команд и данных на внутреннюю магистраль MD(0-31);&lt;br /&gt;
* WCE   - сигнал записи в буферные регистры команд;&lt;br /&gt;
* WTBDR - сигнал записи в буферные регистры данных;&lt;br /&gt;
* DTOE  - сигнал выдачи данных в системную магистраль AD(0-31) при записи;&lt;br /&gt;
* DATL  - сигнал выдачи данных с выходного буферного регистра данных во внутреннюю магистраль MD(0-31).&lt;br /&gt;
&lt;br /&gt;
1.10.2. Идентификаторы обменов&lt;br /&gt;
&lt;br /&gt;
Старший байт физического адреса содержит идентификаторы обменов. В таблицах, приведенных ниже, даны логические значения кодов и электрические уровни на магистрали AD .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
|         |         |                   |&lt;br /&gt;
| Направ- | Формат  |    Код обмена     |&lt;br /&gt;
| ление   | данных  |                   |&lt;br /&gt;
| обмена  |         |                   |&lt;br /&gt;
+---------+---------+-------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.1. Направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 31 разряд            | 30 разряд            | Направление обмена            |&lt;br /&gt;
+------------+---------+------------+---------+                               |&lt;br /&gt;
| логические | уровень | логические | уровень |                               |&lt;br /&gt;
| значения   |         | значения   |         |                               |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Основная память, регист-      |&lt;br /&gt;
|            |         |            |         | ры внешних устройств          |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Основная память, с            |&lt;br /&gt;
|            |         |            |         | перехватом магистрали         |&lt;br /&gt;
|            |         |            |         | сопроцессором                 |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Внутренние регистры           |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Системная память              |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.2. Формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 29 разряд            | 28 разряд            | Формат данных    |&lt;br /&gt;
+------------+---------+------------+---------+                  |&lt;br /&gt;
| логические | уровень | логические | уровень |                  |&lt;br /&gt;
| значения   |         | значения   |         |                  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Двойное слово    |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Слово            |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Четверное слово  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Байт             |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.3. Код обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 27 разряд     | 26 разряд     | 25 разряд     | 24 разряд     | Обмен     |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+           |&lt;br /&gt;
| лог. | уровень| лог. | уровень| лог. | уровень| лог. | уровень|           |&lt;br /&gt;
| знач |        | знач |        | знач |        | знач |        |           |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | данных    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 1    | низкий | X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | команд    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 0    | высокий| Запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 1    | низкий | Чтение-   |&lt;br /&gt;
|      |        |      |        |      |        |      |        | модифика- |&lt;br /&gt;
|      |        |      |        |      |        |      |        | ция -     |&lt;br /&gt;
|      |        |      |        |      |        |      |        | запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где X - безразличное значение, остальные комбинации 24-27 разрядов - резервные.&lt;br /&gt;
&lt;br /&gt;
== 1.11. Функциональные и электрические схемы входных и выходных каскадов ==&lt;br /&gt;
&lt;br /&gt;
Функциональные схемы входных и выходных каскадов представлены на рис. 31-39.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic31.png|400px]] [[Файл:1839VM1 TO Pic32.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic33.png|400px]] [[Файл:1839VM1 TO Pic34.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic35.png|400px]] [[Файл:1839VM1 TO Pic36.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic37.png|400px]] [[Файл:1839VM1 TO Pic38.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic39.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На всех рисунках численное значение около логических элементов обозначает ширину транзисторов элементов в мкм: сверху р-типа, снизу п-типа.&lt;br /&gt;
&lt;br /&gt;
Внутренние тактовые сигналы синхронизации φ , φ̄ соответствуют следующим фазам входного сигнала CLCI: φ соответствует CLCI; φ̄ - CLCI̅.&lt;br /&gt;
&lt;br /&gt;
Электрические схемы входов и входов/выходов представлены на рис. 40,41.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic40.png|400px]] [[Файл:1839VM1 TO Pic41.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах 15-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных (БРД)           | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слов с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4240</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4240"/>
		<updated>2026-04-22T10:02:00Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* ЧКА */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.8. Основные параметры прерываний и исключительных состояний ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Векторы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Переход на подпрограммы обслуживания особых ситуаций осуществляется с помощью специальных векторов, которые представляют собой длинные слова, интерпретируемые следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) Биты &amp;lt;1:0&amp;gt; содержат интерпретируемый код:&lt;br /&gt;
&lt;br /&gt;
* 0 - обслужить событие через стек ядра. Если работа уже выполняется через стек прерываний, то обслужить событие через стек прерываний.&lt;br /&gt;
* 1 - обслужить событие через стек прерываний. Если это событие является исключительным состоянием, то IPL повышается до 1F;&lt;br /&gt;
* 2 - обслужить событие в перезаписываемой управляющей памяти. Если эта память не используется, то процессор переходит на команду останова HALT;&lt;br /&gt;
* 3 - процессор переходит на HALT.&lt;br /&gt;
&lt;br /&gt;
2) Биты &amp;lt;31:2&amp;gt; содержат виртуальный адрес подпрограммы обслуживания - для кодов 0 и 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Системный управляющий блок (SCB).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все векторы обслуживания прерываний и исключительных состояний находятся в системном управляющем блоке ( SCB - *System Control Block* ), который представляет собой две смежных страницы памяти. Физический адрес первой страницы содержится в привилегированном регистре - базе системного управляющего блока SCBB ( *SCB base* ).&lt;br /&gt;
&lt;br /&gt;
Векторы устройств на *UNIBUS* находятся во второй странице, адрес которой получается добавлением к адресу, содержащемуся в SCBB, константы (200)₁₆. Разрешенными для этих устройств считаются только векторы (200-3FC)₁₆.&lt;br /&gt;
&lt;br /&gt;
Основные параметры прерываний и исключительных состояний приведены в табл.5.&lt;br /&gt;
&lt;br /&gt;
Таблица 5&lt;br /&gt;
&lt;br /&gt;
Таблица основных параметров особых ситуаций&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| Наименование особых  | Тип        | Уровень приори-  | Вектор | Источник  | Код  | Параметры, загру-  |&lt;br /&gt;
| ситуаций             | ситуации   | тета прерывания  | 16     | (а/МП)*   | 16   | жаемые в стек      |&lt;br /&gt;
|                      |            | IPL_16           |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 1. Машинный сбой     | Прекращение| 1F**             | 04     | Контроллер|  6?  | См.Примечание 1    | &amp;lt;Неразборчиво, 4 зачеркнуто, исправлено на 6 или 8&amp;gt;&lt;br /&gt;
|                      | / ловушка  |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 2. Недостоверный стек| Прекращение| 1F**             | 08     | Процессор |  2   | РНК***, PSL        | &amp;lt;D зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| ядра                 |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 3. Недостоверный стек| Прекращение| 1F**             | -      | Процессор |  2   | РНК, PSL и причи-  | &amp;lt;1 зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| прерываний           |            |                  |        | (а)       |      | на останова оста-  |&lt;br /&gt;
|                      |            |                  |        |           |      | ются на регистрах  |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 4. Сбой питания      | Прерывание | 1E               | 0C     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 5. Резервная/привиле-| Нарушение  | -                | 10     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| гированная команда   |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 6. Резервная команда | Нарушение  | -                | 14     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| пользователя         |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 7. Резервный операнд | Нарушение/ | -                | 18     | Процессор | 7    | РНК, PSL           | &amp;lt;E зачеркнуто, исправлено на 7&amp;gt;&lt;br /&gt;
|                      | прекращение|                  |        | (а/МП)    |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 8. Резервный метод   | Нарушение  | -                | 10C    | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| адресации            |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 9. Нарушение управле-| Нарушение  | -                | 20     | Процессор |  4   | См.Примечание 2    | &amp;lt;2 зачеркнуто, исправлено на 4&amp;gt;&lt;br /&gt;
| ния доступом         |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 10. Запрет трансляции| Нарушение  | -                | 24     | Процессор |  5   | См.Примечание 2    | &amp;lt;3 зачеркнуто, исправлено на 5&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 11. Трассировка      | Нарушение  | -                | 28     | Процессор |  E   | РНК, PSL           | &amp;lt;7 зачеркнуто, исправлено на E&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 12. Команда ВРТ      | Нарушение  | -                | 2C     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
|                      |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 13. Арифметические   | Ловушка    | -                | 34     | Процессор |8-A   | См.Примечание 3    | &amp;lt;B зачеркнуто, исправлено на A&amp;gt;&lt;br /&gt;
| ловушки              |            |                  |        | (а/МП)    |нрзб,A|                    | &amp;lt;неразборчиво&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 14. Команды:  СНМК   | Ловушка    | -                | 40     | Процессор.| -    | См.Примечание 4    |&lt;br /&gt;
|               СНМЕ   |            |                  | 44     | (МП)      |      |                    |&lt;br /&gt;
|               СНМS   |            |                  | 48     |           |      |                    |&lt;br /&gt;
|               СНМИ   |            |                  | 4C     |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 15. Зависание по     | Прерывание | 1D               | 60     | Контроллер| C    | PC, PSL            |&lt;br /&gt;
| записи в память      |            |                  |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 16. Исправимые ошибки| Прерывание | 1A               | 54     | Контроллер| C    | PC,PSL             |&lt;br /&gt;
| памяти               |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 17. Таймер           | Прерывание | 18               | C0     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 18. Консольный       | Прерывание | 14               | F8     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (приемник)  |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 19. Консольный       | Прерывание | 14               | FC     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (передатчик)|            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 20. Программные      | Прерывание | 1...F            | 84...BC| Адаптер   | D?   | PC, PSL            |  &amp;lt;&amp;quot;-&amp;quot; исправлено на D?&amp;gt;&lt;br /&gt;
| прерывания           |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 21. Прерывания       | Прерывание | 14-17            |200-3FC | Адаптер   |      | PC, PSL            |  &amp;lt;5-6 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| устройств            |            |                  |        | (а)       | D    |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - аппаратный/микропрограммный характер соответствующего события;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - для этих событий IPL = 1F, если 1:0 разряды вектора равны 1;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;***&#039;&#039;&#039; - РНК - регистр начала команды. Он указывает на код операции команды, при выполнении которой произошло нарушение или прекращение.&lt;br /&gt;
&lt;br /&gt;
П р и м е ч а н и я  к табл.5:&lt;br /&gt;
&lt;br /&gt;
1. При машинном сбое в стеке сохраняются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Параметр длины (равен 28₁₆).&lt;br /&gt;
* (SP)+4   Код ошибки (для ошибок памяти, например, равен 2).&lt;br /&gt;
* (SP)+8   Регистр виртуального адреса (РКВА).&lt;br /&gt;
* (SP)+C   PC во время сбоя.&lt;br /&gt;
* (SP)+10  Регистр данных памяти (MDR).&lt;br /&gt;
* (SP)+14  Сохраненный регистр режима ( SMR).&lt;br /&gt;
* (SP)+18  Регистр зависания по чтению-модификации-записи (RLTO).&lt;br /&gt;
* (SP)+1C  Регистр групповой четности буфера трансляции (TBGPR).&lt;br /&gt;
* (SP)+20  Регистр ошибок КЭШ-памяти (CAER).&lt;br /&gt;
* (SP)+24  Регистр ошибок шины (BER).&lt;br /&gt;
* (SP)+28  Регистр суммарных ошибок при машинном сбое (MCESR).&lt;br /&gt;
* (SP)+2C  PC, указывающий на код операции.&lt;br /&gt;
* (SP)+30  PSL.&lt;br /&gt;
&lt;br /&gt;
2. При исключительных состояниях от диспетчера памяти в стеке сохраняются:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Регистр суммарных ошибок диспетчера памяти.&lt;br /&gt;
* (SP)+4   Виртуальный адрес в странице нарушения (РКВА).&lt;br /&gt;
* (ST)+8   РНК.&lt;br /&gt;
* (SP)+C   PSL.&lt;br /&gt;
&lt;br /&gt;
3. При арифметических ловушках в стеке, кроме PC, также сохраняется код арифметической ловушки, который имеет следующие значения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Код     Тип арифметической ловушки&lt;br /&gt;
&lt;br /&gt;
      1       Целочисленное переполнение&lt;br /&gt;
      2       Целочисленное деление на 0&lt;br /&gt;
      3       Плавающее  переполнение&lt;br /&gt;
      4       Плавающее/десятичное деление на 0&lt;br /&gt;
      5       Плавающее обнуление&lt;br /&gt;
      6       Десятичное переполнение&lt;br /&gt;
      7       Диапазон приписки&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. При выполнении команд смены режима в стек, кроме PC, PSL загружается операнд команды ( *code* ) с расширенным знаком.&lt;br /&gt;
&lt;br /&gt;
Вся аппаратура, связанная с обработкой прерываний и исключительных состояний, располагается в контроллере памяти, адаптере магистрали и в процессоре.&lt;br /&gt;
&lt;br /&gt;
Контроллер фиксирует аппаратные ошибки, связанные с работой памяти и сообщает об этом процессору с помощью сигналов *INRC* (прерывание контроллера) и MCH (машинный сбой). Адаптер фиксирует все остальные прерывания, проводит разбор приоритетов между ними и сообщает процессору о наличии запроса прерывания сигналом *INRA* (прерывание адаптера). Кроме этого в адаптере находится часть внутренних регистров системы, которые связаны с обработкой прерываний.&lt;br /&gt;
&lt;br /&gt;
В процессоре находится, собственно блок прерываний (БПР), который наряду с прерываниями контроллера и адаптера, обрабатывает все аппаратные исключительные состояния, проводит окончательный разбор приоритетов и формирует код особой ситуации, с помощью которого осуществляется формирование начального адреса соответствующей микропрограммы обработки.&lt;br /&gt;
&lt;br /&gt;
== 1.9. Блок прерываний БПР ==&lt;br /&gt;
&lt;br /&gt;
1.9.1. На рис.8 приведена структурная схема БПР процессора. Ниже перечислены основные блоки, входы и выходы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic8.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1) БСБПР - блок синхронизации БПР.&lt;br /&gt;
&lt;br /&gt;
2) БРП   - блок разбора приоритетов.&lt;br /&gt;
&lt;br /&gt;
3) ДШРИП - дешифратор сброса источника прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
4) РИП   - регистр источников прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
5) Входы:&lt;br /&gt;
&lt;br /&gt;
* КК    - признак конца команды;&lt;br /&gt;
* PA    - выход элемента ИЛИ, на входах которого собраны все нарушения и прекращения;&lt;br /&gt;
* 1T    - выход элемента ИЛИ, на входах которого собраны все прерывания и ловушки;&lt;br /&gt;
* 5CN   - запрос недостоверного стека ядра;&lt;br /&gt;
* SINN - запрос недостоверного стека прерываний;&lt;br /&gt;
* НУД   - запрос нарушения управления доступом;&lt;br /&gt;
* ЗТ    - запрос запрета трансляции;&lt;br /&gt;
* MCH   - запрос машинного сбоя;&lt;br /&gt;
* REZ   - запрос резервного операнда;&lt;br /&gt;
* INRA  - запрос адаптера;&lt;br /&gt;
* HALT  - запрос останова;&lt;br /&gt;
* T     - запрос трассировки;&lt;br /&gt;
* FUZ   - запрос ловушки плавающего недополнения;&lt;br /&gt;
* DVV   - запрос ловушки десятичного переполнения;&lt;br /&gt;
* IVV   - запрос ловушки целочисленного переполнения;&lt;br /&gt;
* FVV   - запрос ловушки плавающего переполнения;&lt;br /&gt;
* INRC  - запрос прерывания контроллера;&lt;br /&gt;
* РИП   - сигнал сброса источника прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Выходы:&lt;br /&gt;
&lt;br /&gt;
* RA        - сигнал запроса сбоя;&lt;br /&gt;
* IRQ       - сигнал запроса прерывания;&lt;br /&gt;
* ЗРПП      - сигнал записи регистра признака прерывания и исключительного состояния (РПП);&lt;br /&gt;
* ЗРИП      - сигнал записи РИП;&lt;br /&gt;
* РПП(0-3)  - код прерываний и исключительных состояний;&lt;br /&gt;
* 5РИП      - сигнал сброса конкретного источника (в соответствии с кодом).&lt;br /&gt;
&lt;br /&gt;
1.9.2. Алгоритм работы БПР&lt;br /&gt;
&lt;br /&gt;
При поступлении в БПР сигналов прерываний - ловушек или сигналов нарушений-прекращений запускается БСБПР - по сигналу IT или PA соответственно. PA может возникать в любой момент выполнения команды, IT возникает лишь после окончания команды, перед выполнением следующей команды. БСБПР вырабатывает сигналы RA или IRQ , которые поступают на ПЛМ ДШК, ЗРИП, по которому производится запись в РИП всех имеющихся к этому времени запросов. В БРП, в соответствии с самым высокоприоритетным запросом, формируется код, который поступает на входы РПП (находящегося в блоке управления ПЗУ) и на входы ДШ КИП для последующего сброса источника запроса по сигналу РИП&lt;br /&gt;
&lt;br /&gt;
Запись в РПП производится сигналом ЗРПП, также выработанным БСБПА.&lt;br /&gt;
&lt;br /&gt;
Содержимое РПП затем используется микрокомандой перехода по регистру для выхода на конкретные микропрограммы обработки прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
В табл. 5 в графе &amp;quot;Код₁₆&amp;quot; приведены шестнадцатеричные коды аппаратных особых ситуаций.&lt;br /&gt;
&lt;br /&gt;
Приоритетность между прерываниями и ловушками в БПР принята следующая (в порядке убывания приоритетов):&lt;br /&gt;
&lt;br /&gt;
# Арифметические ловушки.&lt;br /&gt;
# Прерывания контроллера.&lt;br /&gt;
# Прерывания адаптера.&lt;br /&gt;
#  Ловушка трассы.&lt;br /&gt;
&lt;br /&gt;
На рис. 9 приведена временная диаграмма работы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic9.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.9.3. Алгоритм обработки прерываний и исключительных состояний&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки ситуаций сводится, в основном, к двум действиям:&lt;br /&gt;
&lt;br /&gt;
1) сохранению текущего состояния (PC(РНК), *PSL* , параметры (если нужно));&lt;br /&gt;
&lt;br /&gt;
2) формированию нового состояния (загрузка PC начальным адресом программы обработки особой ситуации, формирование нового *PSL* ).&lt;br /&gt;
&lt;br /&gt;
Более подробно эти два действия, и другие описаны в алгоритме обработки прерываний и исключительных состояний на рис.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic10.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.10. Временные диаграммы процессора, идентификаторы обменов ==&lt;br /&gt;
&lt;br /&gt;
1.10.1. Ко всем временным диаграммам относится следующее:&lt;br /&gt;
&lt;br /&gt;
1) Если на вход тестирования *TEST* подан низкий уровень, то новый обмен по микрокомандной магистрали не начнется, пока ответный сигнал *MSDS* от накопителя микрокоманд не закончится. По магистрали AD(0-31) не начнется новый обмен, пока не закончатся ответные сигналы *SAS* и *SDS* от предыдущего обмена. Если на входе *TEST* высокий уровень, то новые обмены по магистралям начинаются независимо от окончания ответных сигналов. При этом окончание сигналов *SAS* и *SDS* должно происходить асинхронно с минимальным временем задержки по окончании сигналов *MAS* и *MDS* . Представленные ниже временные диаграммы справедливы для высокого уровня на входе *TEST*.&lt;br /&gt;
&lt;br /&gt;
2) Интерфейсные сигналы при магистрали AD(0-31): *MAS* , *PGB* , *PCRQ* , *MDS* , *SEL* , *DMAK* вырабатываются выходами с тремя состояниями. На эти выходы необходимо ставить резисторы 2,7 кОм к шине источника питания + Ucc. После окончания сигналов в процедурах обменов на этих выходах осуществляется &amp;quot;подброс в &amp;quot;1&amp;quot; на время 0,5 T*CLC* , причем на выходах *MAS*, *PCRQ* , *DMAK* в отрицательной фазе CLC, а на выходах *PGB* , *MDS* и *SEL* - в положительной. Также в состояние активного высокого уровня эти выходы приводятся от низкого уровня на входе *SR* при начальном пуске ЦПР, причем для активного высокого уровня на выходе *MAS* необходимо наличие высокого уровня на входе *ACTR*.&lt;br /&gt;
&lt;br /&gt;
3) Выходы AD(0-31) также имеют три состояния. В третьем состоянии выходы AD(0-31) находятся при приеме команд или данных, от низкого уровня на входе *SR* , в процедуре &amp;quot;Запись с перехватом&amp;quot; и при предоставлении прямого доступа к памяти.&lt;br /&gt;
&lt;br /&gt;
В состояние активного высокого уровня выходы AD(0-31) приводятся между обменами по окончании сигнала *MDS* .&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение микрокоманды&amp;quot; представлена на рис. 11. Минимальный цикл приема микрокоманды составляет 2 T*CLC* . [зачёркнуто: Ответный сигнал *MSDS* от накопителя микрокоманд может быть также статическим низким уровнем - в отличие от представленного на рис. 11.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic11.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На временной диаграмме представлен дополнительно внутренний сигнал ЦПР *WBMC* - запись в буфер микрокоманд.&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Адресное чтение&amp;quot; представлена на рис. *12*. Минимальный цикл адресного чтения 3T*CLC*. Низкий уровень сигнала *SAS* принимается в отрицательной фазе *CLC* , затем выдается сигнал *MDS* низкого уровня и открывается внутренняя магистраль MD(0-31) для приема данных. В целях обеспечения быстродействия на частоте 10 МГц низкий уровень сигнала *SAS* необходимо подавать в течение первых 25 нс отрицательной фазы *CLC* . Низкий уровень сигнала *SDS* принимается также в отрицательной фазе *CLC* , и в следующей положительной фазе *CLC* заканчивается сигнал *MDS* . Для обеспечения быстродействия необходимо выполнить такие же требования, как и для сигнала *SAS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic12.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма &amp;quot;Безадресное чтение команды&amp;quot; представлена на рис. *13* . Минимальный цикл процедуры 2 T*CLC* . Прием сигнала *SDS* происходит также, как и при адресном чтении и требования для обеспечения быстродействия те же.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic13.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Запись&amp;quot; представлена на рис. *14* . Минимальный цикл процедуры - 4T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic14.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись&amp;quot; представлена на рис. *15* . Минимальный цикл процедуры - 7 T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия такие как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic15.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры передачи адреса при пересечении данными границы страницы представлена на рис. *16* . Сигнал *PGB* при первом появлении сопровождает адрес перед границей страницы, при втором появлении сопровождает адрес начала новой страницы. Между двумя адресами (рис. *16* ) возможно выполнение обменов, например, &amp;quot;Чтение PTE&amp;quot;, если пуст &amp;quot;Буфер трансляции&amp;quot;, или &amp;quot;Безадресное чтение команды&amp;quot;. Для обеспечения быстродействия на частоте 10 МГц требования к сигналам *SAS* и *SDS* такие же, как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic16.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма отказа от записи в процедуре &amp;quot;Чтение-модификация-запись PTE&amp;quot; представлена на рис. *17*. Отказ от записи *PTE* происходит, когда страница уже модифицировалась (бит модификации М &amp;lt;26&amp;gt; регистра PTE установлен в &amp;quot;1&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic17.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы процедур чтения и записи внутренних регистров *IPR* , размещенных в процессоре ( *POBR* , *POLR* , *P1BR* , *P1LR* , *SBR*, *SLR*, *MAPEN* , *TBIA* , *TBIS* , *ACCS* ) представлены на рис. *18,19*. Внешние сигналы *SAS* , *SDS* не требуются, вместо них в процессоре вырабатываются внутренние сигналы такого же назначения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic18.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic19.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма чтения внешнего регистра начальных условий представлена на рис. *20* . Для чтения этого регистра предназначен выход *SEL* . Сигнал *SEL* возникает при чтении системной памяти (A31, A30 = &amp;quot;1&amp;quot;) и при A23 = &amp;quot;1&amp;quot;. На временной диаграмме сигнал *SEL* аналогичен сигналу *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic20.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма сигналов сопровождения процедуры захвата магистрали при прямом доступе к памяти представлена на рис. *21*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic21.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сигнал *DMR* магистрали *Q-BUS* преобразуется микросхемой адаптера магистрали КЛ839ВВ1 в сигнал *DMRQ* , поступающий на процессор. При отсутствии обменов процессор принимает сигнал *DMRQ* в низкой фазе *CLC* и через период *CLC* выдает сигнал разрешения прямого доступа к памяти *DMAK* , который микросхема АМ преобразует в сигнал *DMGO* магистрали *Q-BUS*. Окончание сигнала *DMAK* происходит в той же фазе низкого уровня CLC в какой принимается окончание сигнала *DMRQ* . На временной диаграмме также представлен перевод выходов магистрали AD(0-31) в третье состояние и выход из третьего состояния. При наличии обмена сигнал *DMAK* появится только по его окончании.&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы адресного чтения и адресной записи с перехватом сопроцессором обменов с памятью представлены на рис. *22, 23* . Обмен с перехватом происходит при A31 = &amp;quot;0&amp;quot;, A30 = &amp;quot;1&amp;quot;. О том, что микросхема сопроцессора начинает обмен с памятью, свидетельствует сигнал *ACTR* . Приняв асинхронно этот сигнал, процессор переводит выход *MAS* в третье состояние, предоставляя возможность сопроцессору выставить активный низкий уровень *MAS*спрц и далее сопроцессор читает данные из памяти или записывает данные в память также, как выполняет эти процедуры процессор. При записи с перехватом выходы AD(0-31) процессора переводятся в третье состояние по окончании адреса в низкой фазе· *CLC* и выходят из третьего состояния (подброс в &amp;quot;1&amp;quot;) по окончании низкого уровня на шине *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Рис. 22 отсутствует&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic23.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись с перехватом&amp;quot; представлена на рис. *24*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic24.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойное адресное чтение&amp;quot; представлено на рис. *25*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic25.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойная запись&amp;quot; представлена на рис. *26*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic26.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Двойное чтение и запись выполняются при обменах с четверными словами.&lt;br /&gt;
&lt;br /&gt;
На рис. *27-30* представлены временные диаграммы различных обменов с внешними и внутренними сигналами процессора.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic27.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic28.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic29.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic30.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
К внутренним сигналам процессора относятся:&lt;br /&gt;
&lt;br /&gt;
* WBMC  - запись в буфер микрокоманд;&lt;br /&gt;
* WMCE  - запись в регистр микрокоманд;&lt;br /&gt;
* NRFW  - сигнал записи поля чтения;&lt;br /&gt;
* SRDI  - сигнал чтения источника;&lt;br /&gt;
* SWT2  - сигнал записи в приемник;&lt;br /&gt;
* WTWA  - запись в регистр виртуального адреса;&lt;br /&gt;
* WTPA  - запись в регистр физического адреса;&lt;br /&gt;
* ADRE  - сигнал разрешения выдачи адреса в системную магистраль AD(0-31);&lt;br /&gt;
* DTIE  - сигнал приема команд и данных на внутреннюю магистраль MD(0-31);&lt;br /&gt;
* WCE   - сигнал записи в буферные регистры команд;&lt;br /&gt;
* WTBDR - сигнал записи в буферные регистры данных;&lt;br /&gt;
* DTOE  - сигнал выдачи данных в системную магистраль AD(0-31) при записи;&lt;br /&gt;
* DATL  - сигнал выдачи данных с выходного буферного регистра данных во внутреннюю магистраль MD(0-31).&lt;br /&gt;
&lt;br /&gt;
1.10.2. Идентификаторы обменов&lt;br /&gt;
&lt;br /&gt;
Старший байт физического адреса содержит идентификаторы обменов. В таблицах, приведенных ниже, даны логические значения кодов и электрические уровни на магистрали AD .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
|         |         |                   |&lt;br /&gt;
| Направ- | Формат  |    Код обмена     |&lt;br /&gt;
| ление   | данных  |                   |&lt;br /&gt;
| обмена  |         |                   |&lt;br /&gt;
+---------+---------+-------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.1. Направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 31 разряд            | 30 разряд            | Направление обмена            |&lt;br /&gt;
+------------+---------+------------+---------+                               |&lt;br /&gt;
| логические | уровень | логические | уровень |                               |&lt;br /&gt;
| значения   |         | значения   |         |                               |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Основная память, регист-      |&lt;br /&gt;
|            |         |            |         | ры внешних устройств          |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Основная память, с            |&lt;br /&gt;
|            |         |            |         | перехватом магистрали         |&lt;br /&gt;
|            |         |            |         | сопроцессором                 |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Внутренние регистры           |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Системная память              |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.2. Формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 29 разряд            | 28 разряд            | Формат данных    |&lt;br /&gt;
+------------+---------+------------+---------+                  |&lt;br /&gt;
| логические | уровень | логические | уровень |                  |&lt;br /&gt;
| значения   |         | значения   |         |                  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Двойное слово    |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Слово            |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Четверное слово  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Байт             |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.3. Код обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 27 разряд     | 26 разряд     | 25 разряд     | 24 разряд     | Обмен     |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+           |&lt;br /&gt;
| лог. | уровень| лог. | уровень| лог. | уровень| лог. | уровень|           |&lt;br /&gt;
| знач |        | знач |        | знач |        | знач |        |           |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | данных    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 1    | низкий | X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | команд    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 0    | высокий| Запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 1    | низкий | Чтение-   |&lt;br /&gt;
|      |        |      |        |      |        |      |        | модифика- |&lt;br /&gt;
|      |        |      |        |      |        |      |        | ция -     |&lt;br /&gt;
|      |        |      |        |      |        |      |        | запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где X - безразличное значение, остальные комбинации 24-27 разрядов - резервные.&lt;br /&gt;
&lt;br /&gt;
== 1.11. Функциональные и электрические схемы входных и выходных каскадов ==&lt;br /&gt;
&lt;br /&gt;
Функциональные схемы входных и выходных каскадов представлены на рис. 31-39.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic31.png|400px]] [[Файл:1839VM1 TO Pic32.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic33.png|400px]] [[Файл:1839VM1 TO Pic34.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic35.png|400px]] [[Файл:1839VM1 TO Pic36.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic37.png|400px]] [[Файл:1839VM1 TO Pic38.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic39.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На всех рисунках численное значение около логических элементов обозначает ширину транзисторов элементов в мкм: сверху р-типа, снизу п-типа.&lt;br /&gt;
&lt;br /&gt;
Внутренние тактовые сигналы синхронизации φ , φ̄ соответствуют следующим фазам входного сигнала CLCI: φ соответствует CLCI; φ̄ - CLCI̅.&lt;br /&gt;
&lt;br /&gt;
Электрические схемы входов и входов/выходов представлены на рис. 40,41.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic40.png|400px]] [[Файл:1839VM1 TO Pic41.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах 15-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных (БРД)           | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4239</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4239"/>
		<updated>2026-04-16T15:05:48Z</updated>

		<summary type="html">&lt;p&gt;Panther: 1.11&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.8. Основные параметры прерываний и исключительных состояний ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Векторы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Переход на подпрограммы обслуживания особых ситуаций осуществляется с помощью специальных векторов, которые представляют собой длинные слова, интерпретируемые следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) Биты &amp;lt;1:0&amp;gt; содержат интерпретируемый код:&lt;br /&gt;
&lt;br /&gt;
* 0 - обслужить событие через стек ядра. Если работа уже выполняется через стек прерываний, то обслужить событие через стек прерываний.&lt;br /&gt;
* 1 - обслужить событие через стек прерываний. Если это событие является исключительным состоянием, то IPL повышается до 1F;&lt;br /&gt;
* 2 - обслужить событие в перезаписываемой управляющей памяти. Если эта память не используется, то процессор переходит на команду останова HALT;&lt;br /&gt;
* 3 - процессор переходит на HALT.&lt;br /&gt;
&lt;br /&gt;
2) Биты &amp;lt;31:2&amp;gt; содержат виртуальный адрес подпрограммы обслуживания - для кодов 0 и 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Системный управляющий блок (SCB).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все векторы обслуживания прерываний и исключительных состояний находятся в системном управляющем блоке ( SCB - *System Control Block* ), который представляет собой две смежных страницы памяти. Физический адрес первой страницы содержится в привилегированном регистре - базе системного управляющего блока SCBB ( *SCB base* ).&lt;br /&gt;
&lt;br /&gt;
Векторы устройств на *UNIBUS* находятся во второй странице, адрес которой получается добавлением к адресу, содержащемуся в SCBB, константы (200)₁₆. Разрешенными для этих устройств считаются только векторы (200-3FC)₁₆.&lt;br /&gt;
&lt;br /&gt;
Основные параметры прерываний и исключительных состояний приведены в табл.5.&lt;br /&gt;
&lt;br /&gt;
Таблица 5&lt;br /&gt;
&lt;br /&gt;
Таблица основных параметров особых ситуаций&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| Наименование особых  | Тип        | Уровень приори-  | Вектор | Источник  | Код  | Параметры, загру-  |&lt;br /&gt;
| ситуаций             | ситуации   | тета прерывания  | 16     | (а/МП)*   | 16   | жаемые в стек      |&lt;br /&gt;
|                      |            | IPL_16           |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 1. Машинный сбой     | Прекращение| 1F**             | 04     | Контроллер|  6?  | См.Примечание 1    | &amp;lt;Неразборчиво, 4 зачеркнуто, исправлено на 6 или 8&amp;gt;&lt;br /&gt;
|                      | / ловушка  |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 2. Недостоверный стек| Прекращение| 1F**             | 08     | Процессор |  2   | РНК***, PSL        | &amp;lt;D зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| ядра                 |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 3. Недостоверный стек| Прекращение| 1F**             | -      | Процессор |  2   | РНК, PSL и причи-  | &amp;lt;1 зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| прерываний           |            |                  |        | (а)       |      | на останова оста-  |&lt;br /&gt;
|                      |            |                  |        |           |      | ются на регистрах  |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 4. Сбой питания      | Прерывание | 1E               | 0C     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 5. Резервная/привиле-| Нарушение  | -                | 10     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| гированная команда   |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 6. Резервная команда | Нарушение  | -                | 14     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| пользователя         |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 7. Резервный операнд | Нарушение/ | -                | 18     | Процессор | 7    | РНК, PSL           | &amp;lt;E зачеркнуто, исправлено на 7&amp;gt;&lt;br /&gt;
|                      | прекращение|                  |        | (а/МП)    |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 8. Резервный метод   | Нарушение  | -                | 10C    | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| адресации            |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 9. Нарушение управле-| Нарушение  | -                | 20     | Процессор |  4   | См.Примечание 2    | &amp;lt;2 зачеркнуто, исправлено на 4&amp;gt;&lt;br /&gt;
| ния доступом         |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 10. Запрет трансляции| Нарушение  | -                | 24     | Процессор |  5   | См.Примечание 2    | &amp;lt;3 зачеркнуто, исправлено на 5&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 11. Трассировка      | Нарушение  | -                | 28     | Процессор |  E   | РНК, PSL           | &amp;lt;7 зачеркнуто, исправлено на E&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 12. Команда ВРТ      | Нарушение  | -                | 2C     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
|                      |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 13. Арифметические   | Ловушка    | -                | 34     | Процессор |8-A   | См.Примечание 3    | &amp;lt;B зачеркнуто, исправлено на A&amp;gt;&lt;br /&gt;
| ловушки              |            |                  |        | (а/МП)    |нрзб,A|                    | &amp;lt;неразборчиво&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 14. Команды:  СНМК   | Ловушка    | -                | 40     | Процессор.| -    | См.Примечание 4    |&lt;br /&gt;
|               СНМЕ   |            |                  | 44     | (МП)      |      |                    |&lt;br /&gt;
|               СНМS   |            |                  | 48     |           |      |                    |&lt;br /&gt;
|               СНМИ   |            |                  | 4C     |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 15. Зависание по     | Прерывание | 1D               | 60     | Контроллер| C    | PC, PSL            |&lt;br /&gt;
| записи в память      |            |                  |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 16. Исправимые ошибки| Прерывание | 1A               | 54     | Контроллер| C    | PC,PSL             |&lt;br /&gt;
| памяти               |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 17. Таймер           | Прерывание | 18               | C0     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 18. Консольный       | Прерывание | 14               | F8     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (приемник)  |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 19. Консольный       | Прерывание | 14               | FC     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (передатчик)|            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 20. Программные      | Прерывание | 1...F            | 84...BC| Адаптер   | D?   | PC, PSL            |  &amp;lt;&amp;quot;-&amp;quot; исправлено на D?&amp;gt;&lt;br /&gt;
| прерывания           |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 21. Прерывания       | Прерывание | 14-17            |200-3FC | Адаптер   |      | PC, PSL            |  &amp;lt;5-6 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| устройств            |            |                  |        | (а)       | D    |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - аппаратный/микропрограммный характер соответствующего события;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - для этих событий IPL = 1F, если 1:0 разряды вектора равны 1;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;***&#039;&#039;&#039; - РНК - регистр начала команды. Он указывает на код операции команды, при выполнении которой произошло нарушение или прекращение.&lt;br /&gt;
&lt;br /&gt;
П р и м е ч а н и я  к табл.5:&lt;br /&gt;
&lt;br /&gt;
1. При машинном сбое в стеке сохраняются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Параметр длины (равен 28₁₆).&lt;br /&gt;
* (SP)+4   Код ошибки (для ошибок памяти, например, равен 2).&lt;br /&gt;
* (SP)+8   Регистр виртуального адреса (РКВА).&lt;br /&gt;
* (SP)+C   PC во время сбоя.&lt;br /&gt;
* (SP)+10  Регистр данных памяти (MDR).&lt;br /&gt;
* (SP)+14  Сохраненный регистр режима ( SMR).&lt;br /&gt;
* (SP)+18  Регистр зависания по чтению-модификации-записи (RLTO).&lt;br /&gt;
* (SP)+1C  Регистр групповой четности буфера трансляции (TBGPR).&lt;br /&gt;
* (SP)+20  Регистр ошибок КЭШ-памяти (CAER).&lt;br /&gt;
* (SP)+24  Регистр ошибок шины (BER).&lt;br /&gt;
* (SP)+28  Регистр суммарных ошибок при машинном сбое (MCESR).&lt;br /&gt;
* (SP)+2C  PC, указывающий на код операции.&lt;br /&gt;
* (SP)+30  PSL.&lt;br /&gt;
&lt;br /&gt;
2. При исключительных состояниях от диспетчера памяти в стеке сохраняются:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Регистр суммарных ошибок диспетчера памяти.&lt;br /&gt;
* (SP)+4   Виртуальный адрес в странице нарушения (РКВА).&lt;br /&gt;
* (ST)+8   РНК.&lt;br /&gt;
* (SP)+C   PSL.&lt;br /&gt;
&lt;br /&gt;
3. При арифметических ловушках в стеке, кроме PC, также сохраняется код арифметической ловушки, который имеет следующие значения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Код     Тип арифметической ловушки&lt;br /&gt;
&lt;br /&gt;
      1       Целочисленное переполнение&lt;br /&gt;
      2       Целочисленное деление на 0&lt;br /&gt;
      3       Плавающее  переполнение&lt;br /&gt;
      4       Плавающее/десятичное деление на 0&lt;br /&gt;
      5       Плавающее обнуление&lt;br /&gt;
      6       Десятичное переполнение&lt;br /&gt;
      7       Диапазон приписки&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. При выполнении команд смены режима в стек, кроме PC, PSL загружается операнд команды ( *code* ) с расширенным знаком.&lt;br /&gt;
&lt;br /&gt;
Вся аппаратура, связанная с обработкой прерываний и исключительных состояний, располагается в контроллере памяти, адаптере магистрали и в процессоре.&lt;br /&gt;
&lt;br /&gt;
Контроллер фиксирует аппаратные ошибки, связанные с работой памяти и сообщает об этом процессору с помощью сигналов *INRC* (прерывание контроллера) и MCH (машинный сбой). Адаптер фиксирует все остальные прерывания, проводит разбор приоритетов между ними и сообщает процессору о наличии запроса прерывания сигналом *INRA* (прерывание адаптера). Кроме этого в адаптере находится часть внутренних регистров системы, которые связаны с обработкой прерываний.&lt;br /&gt;
&lt;br /&gt;
В процессоре находится, собственно блок прерываний (БПР), который наряду с прерываниями контроллера и адаптера, обрабатывает все аппаратные исключительные состояния, проводит окончательный разбор приоритетов и формирует код особой ситуации, с помощью которого осуществляется формирование начального адреса соответствующей микропрограммы обработки.&lt;br /&gt;
&lt;br /&gt;
== 1.9. Блок прерываний БПР ==&lt;br /&gt;
&lt;br /&gt;
1.9.1. На рис.8 приведена структурная схема БПР процессора. Ниже перечислены основные блоки, входы и выходы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic8.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1) БСБПР - блок синхронизации БПР.&lt;br /&gt;
&lt;br /&gt;
2) БРП   - блок разбора приоритетов.&lt;br /&gt;
&lt;br /&gt;
3) ДШРИП - дешифратор сброса источника прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
4) РИП   - регистр источников прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
5) Входы:&lt;br /&gt;
&lt;br /&gt;
* КК    - признак конца команды;&lt;br /&gt;
* PA    - выход элемента ИЛИ, на входах которого собраны все нарушения и прекращения;&lt;br /&gt;
* 1T    - выход элемента ИЛИ, на входах которого собраны все прерывания и ловушки;&lt;br /&gt;
* 5CN   - запрос недостоверного стека ядра;&lt;br /&gt;
* SINN - запрос недостоверного стека прерываний;&lt;br /&gt;
* НУД   - запрос нарушения управления доступом;&lt;br /&gt;
* ЗТ    - запрос запрета трансляции;&lt;br /&gt;
* MCH   - запрос машинного сбоя;&lt;br /&gt;
* REZ   - запрос резервного операнда;&lt;br /&gt;
* INRA  - запрос адаптера;&lt;br /&gt;
* HALT  - запрос останова;&lt;br /&gt;
* T     - запрос трассировки;&lt;br /&gt;
* FUZ   - запрос ловушки плавающего недополнения;&lt;br /&gt;
* DVV   - запрос ловушки десятичного переполнения;&lt;br /&gt;
* IVV   - запрос ловушки целочисленного переполнения;&lt;br /&gt;
* FVV   - запрос ловушки плавающего переполнения;&lt;br /&gt;
* INRC  - запрос прерывания контроллера;&lt;br /&gt;
* РИП   - сигнал сброса источника прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Выходы:&lt;br /&gt;
&lt;br /&gt;
* RA        - сигнал запроса сбоя;&lt;br /&gt;
* IRQ       - сигнал запроса прерывания;&lt;br /&gt;
* ЗРПП      - сигнал записи регистра признака прерывания и исключительного состояния (РПП);&lt;br /&gt;
* ЗРИП      - сигнал записи РИП;&lt;br /&gt;
* РПП(0-3)  - код прерываний и исключительных состояний;&lt;br /&gt;
* 5РИП      - сигнал сброса конкретного источника (в соответствии с кодом).&lt;br /&gt;
&lt;br /&gt;
1.9.2. Алгоритм работы БПР&lt;br /&gt;
&lt;br /&gt;
При поступлении в БПР сигналов прерываний - ловушек или сигналов нарушений-прекращений запускается БСБПР - по сигналу IT или PA соответственно. PA может возникать в любой момент выполнения команды, IT возникает лишь после окончания команды, перед выполнением следующей команды. БСБПР вырабатывает сигналы RA или IRQ , которые поступают на ПЛМ ДШК, ЗРИП, по которому производится запись в РИП всех имеющихся к этому времени запросов. В БРП, в соответствии с самым высокоприоритетным запросом, формируется код, который поступает на входы РПП (находящегося в блоке управления ПЗУ) и на входы ДШ КИП для последующего сброса источника запроса по сигналу РИП&lt;br /&gt;
&lt;br /&gt;
Запись в РПП производится сигналом ЗРПП, также выработанным БСБПА.&lt;br /&gt;
&lt;br /&gt;
Содержимое РПП затем используется микрокомандой перехода по регистру для выхода на конкретные микропрограммы обработки прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
В табл. 5 в графе &amp;quot;Код₁₆&amp;quot; приведены шестнадцатеричные коды аппаратных особых ситуаций.&lt;br /&gt;
&lt;br /&gt;
Приоритетность между прерываниями и ловушками в БПР принята следующая (в порядке убывания приоритетов):&lt;br /&gt;
&lt;br /&gt;
# Арифметические ловушки.&lt;br /&gt;
# Прерывания контроллера.&lt;br /&gt;
# Прерывания адаптера.&lt;br /&gt;
#  Ловушка трассы.&lt;br /&gt;
&lt;br /&gt;
На рис. 9 приведена временная диаграмма работы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic9.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.9.3. Алгоритм обработки прерываний и исключительных состояний&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки ситуаций сводится, в основном, к двум действиям:&lt;br /&gt;
&lt;br /&gt;
1) сохранению текущего состояния (PC(РНК), *PSL* , параметры (если нужно));&lt;br /&gt;
&lt;br /&gt;
2) формированию нового состояния (загрузка PC начальным адресом программы обработки особой ситуации, формирование нового *PSL* ).&lt;br /&gt;
&lt;br /&gt;
Более подробно эти два действия, и другие описаны в алгоритме обработки прерываний и исключительных состояний на рис.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic10.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.10. Временные диаграммы процессора, идентификаторы обменов ==&lt;br /&gt;
&lt;br /&gt;
1.10.1. Ко всем временным диаграммам относится следующее:&lt;br /&gt;
&lt;br /&gt;
1) Если на вход тестирования *TEST* подан низкий уровень, то новый обмен по микрокомандной магистрали не начнется, пока ответный сигнал *MSDS* от накопителя микрокоманд не закончится. По магистрали AD(0-31) не начнется новый обмен, пока не закончатся ответные сигналы *SAS* и *SDS* от предыдущего обмена. Если на входе *TEST* высокий уровень, то новые обмены по магистралям начинаются независимо от окончания ответных сигналов. При этом окончание сигналов *SAS* и *SDS* должно происходить асинхронно с минимальным временем задержки по окончании сигналов *MAS* и *MDS* . Представленные ниже временные диаграммы справедливы для высокого уровня на входе *TEST*.&lt;br /&gt;
&lt;br /&gt;
2) Интерфейсные сигналы при магистрали AD(0-31): *MAS* , *PGB* , *PCRQ* , *MDS* , *SEL* , *DMAK* вырабатываются выходами с тремя состояниями. На эти выходы необходимо ставить резисторы 2,7 кОм к шине источника питания + Ucc. После окончания сигналов в процедурах обменов на этих выходах осуществляется &amp;quot;подброс в &amp;quot;1&amp;quot; на время 0,5 T*CLC* , причем на выходах *MAS*, *PCRQ* , *DMAK* в отрицательной фазе CLC, а на выходах *PGB* , *MDS* и *SEL* - в положительной. Также в состояние активного высокого уровня эти выходы приводятся от низкого уровня на входе *SR* при начальном пуске ЦПР, причем для активного высокого уровня на выходе *MAS* необходимо наличие высокого уровня на входе *ACTR*.&lt;br /&gt;
&lt;br /&gt;
3) Выходы AD(0-31) также имеют три состояния. В третьем состоянии выходы AD(0-31) находятся при приеме команд или данных, от низкого уровня на входе *SR* , в процедуре &amp;quot;Запись с перехватом&amp;quot; и при предоставлении прямого доступа к памяти.&lt;br /&gt;
&lt;br /&gt;
В состояние активного высокого уровня выходы AD(0-31) приводятся между обменами по окончании сигнала *MDS* .&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение микрокоманды&amp;quot; представлена на рис. 11. Минимальный цикл приема микрокоманды составляет 2 T*CLC* . [зачёркнуто: Ответный сигнал *MSDS* от накопителя микрокоманд может быть также статическим низким уровнем - в отличие от представленного на рис. 11.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic11.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На временной диаграмме представлен дополнительно внутренний сигнал ЦПР *WBMC* - запись в буфер микрокоманд.&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Адресное чтение&amp;quot; представлена на рис. *12*. Минимальный цикл адресного чтения 3T*CLC*. Низкий уровень сигнала *SAS* принимается в отрицательной фазе *CLC* , затем выдается сигнал *MDS* низкого уровня и открывается внутренняя магистраль MD(0-31) для приема данных. В целях обеспечения быстродействия на частоте 10 МГц низкий уровень сигнала *SAS* необходимо подавать в течение первых 25 нс отрицательной фазы *CLC* . Низкий уровень сигнала *SDS* принимается также в отрицательной фазе *CLC* , и в следующей положительной фазе *CLC* заканчивается сигнал *MDS* . Для обеспечения быстродействия необходимо выполнить такие же требования, как и для сигнала *SAS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic12.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма &amp;quot;Безадресное чтение команды&amp;quot; представлена на рис. *13* . Минимальный цикл процедуры 2 T*CLC* . Прием сигнала *SDS* происходит также, как и при адресном чтении и требования для обеспечения быстродействия те же.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic13.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Запись&amp;quot; представлена на рис. *14* . Минимальный цикл процедуры - 4T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic14.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись&amp;quot; представлена на рис. *15* . Минимальный цикл процедуры - 7 T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия такие как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic15.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры передачи адреса при пересечении данными границы страницы представлена на рис. *16* . Сигнал *PGB* при первом появлении сопровождает адрес перед границей страницы, при втором появлении сопровождает адрес начала новой страницы. Между двумя адресами (рис. *16* ) возможно выполнение обменов, например, &amp;quot;Чтение PTE&amp;quot;, если пуст &amp;quot;Буфер трансляции&amp;quot;, или &amp;quot;Безадресное чтение команды&amp;quot;. Для обеспечения быстродействия на частоте 10 МГц требования к сигналам *SAS* и *SDS* такие же, как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic16.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма отказа от записи в процедуре &amp;quot;Чтение-модификация-запись PTE&amp;quot; представлена на рис. *17*. Отказ от записи *PTE* происходит, когда страница уже модифицировалась (бит модификации М &amp;lt;26&amp;gt; регистра PTE установлен в &amp;quot;1&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic17.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы процедур чтения и записи внутренних регистров *IPR* , размещенных в процессоре ( *POBR* , *POLR* , *P1BR* , *P1LR* , *SBR*, *SLR*, *MAPEN* , *TBIA* , *TBIS* , *ACCS* ) представлены на рис. *18,19*. Внешние сигналы *SAS* , *SDS* не требуются, вместо них в процессоре вырабатываются внутренние сигналы такого же назначения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic18.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic19.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма чтения внешнего регистра начальных условий представлена на рис. *20* . Для чтения этого регистра предназначен выход *SEL* . Сигнал *SEL* возникает при чтении системной памяти (A31, A30 = &amp;quot;1&amp;quot;) и при A23 = &amp;quot;1&amp;quot;. На временной диаграмме сигнал *SEL* аналогичен сигналу *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic20.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма сигналов сопровождения процедуры захвата магистрали при прямом доступе к памяти представлена на рис. *21*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic21.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сигнал *DMR* магистрали *Q-BUS* преобразуется микросхемой адаптера магистрали КЛ839ВВ1 в сигнал *DMRQ* , поступающий на процессор. При отсутствии обменов процессор принимает сигнал *DMRQ* в низкой фазе *CLC* и через период *CLC* выдает сигнал разрешения прямого доступа к памяти *DMAK* , который микросхема АМ преобразует в сигнал *DMGO* магистрали *Q-BUS*. Окончание сигнала *DMAK* происходит в той же фазе низкого уровня CLC в какой принимается окончание сигнала *DMRQ* . На временной диаграмме также представлен перевод выходов магистрали AD(0-31) в третье состояние и выход из третьего состояния. При наличии обмена сигнал *DMAK* появится только по его окончании.&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы адресного чтения и адресной записи с перехватом сопроцессором обменов с памятью представлены на рис. *22, 23* . Обмен с перехватом происходит при A31 = &amp;quot;0&amp;quot;, A30 = &amp;quot;1&amp;quot;. О том, что микросхема сопроцессора начинает обмен с памятью, свидетельствует сигнал *ACTR* . Приняв асинхронно этот сигнал, процессор переводит выход *MAS* в третье состояние, предоставляя возможность сопроцессору выставить активный низкий уровень *MAS*спрц и далее сопроцессор читает данные из памяти или записывает данные в память также, как выполняет эти процедуры процессор. При записи с перехватом выходы AD(0-31) процессора переводятся в третье состояние по окончании адреса в низкой фазе· *CLC* и выходят из третьего состояния (подброс в &amp;quot;1&amp;quot;) по окончании низкого уровня на шине *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Рис. 22 отсутствует&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic23.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись с перехватом&amp;quot; представлена на рис. *24*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic24.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойное адресное чтение&amp;quot; представлено на рис. *25*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic25.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойная запись&amp;quot; представлена на рис. *26*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic26.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Двойное чтение и запись выполняются при обменах с четверными словами.&lt;br /&gt;
&lt;br /&gt;
На рис. *27-30* представлены временные диаграммы различных обменов с внешними и внутренними сигналами процессора.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic27.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic28.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic29.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic30.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
К внутренним сигналам процессора относятся:&lt;br /&gt;
&lt;br /&gt;
* WBMC  - запись в буфер микрокоманд;&lt;br /&gt;
* WMCE  - запись в регистр микрокоманд;&lt;br /&gt;
* NRFW  - сигнал записи поля чтения;&lt;br /&gt;
* SRDI  - сигнал чтения источника;&lt;br /&gt;
* SWT2  - сигнал записи в приемник;&lt;br /&gt;
* WTWA  - запись в регистр виртуального адреса;&lt;br /&gt;
* WTPA  - запись в регистр физического адреса;&lt;br /&gt;
* ADRE  - сигнал разрешения выдачи адреса в системную магистраль AD(0-31);&lt;br /&gt;
* DTIE  - сигнал приема команд и данных на внутреннюю магистраль MD(0-31);&lt;br /&gt;
* WCE   - сигнал записи в буферные регистры команд;&lt;br /&gt;
* WTBDR - сигнал записи в буферные регистры данных;&lt;br /&gt;
* DTOE  - сигнал выдачи данных в системную магистраль AD(0-31) при записи;&lt;br /&gt;
* DATL  - сигнал выдачи данных с выходного буферного регистра данных во внутреннюю магистраль MD(0-31).&lt;br /&gt;
&lt;br /&gt;
1.10.2. Идентификаторы обменов&lt;br /&gt;
&lt;br /&gt;
Старший байт физического адреса содержит идентификаторы обменов. В таблицах, приведенных ниже, даны логические значения кодов и электрические уровни на магистрали AD .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
|         |         |                   |&lt;br /&gt;
| Направ- | Формат  |    Код обмена     |&lt;br /&gt;
| ление   | данных  |                   |&lt;br /&gt;
| обмена  |         |                   |&lt;br /&gt;
+---------+---------+-------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.1. Направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 31 разряд            | 30 разряд            | Направление обмена            |&lt;br /&gt;
+------------+---------+------------+---------+                               |&lt;br /&gt;
| логические | уровень | логические | уровень |                               |&lt;br /&gt;
| значения   |         | значения   |         |                               |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Основная память, регист-      |&lt;br /&gt;
|            |         |            |         | ры внешних устройств          |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Основная память, с            |&lt;br /&gt;
|            |         |            |         | перехватом магистрали         |&lt;br /&gt;
|            |         |            |         | сопроцессором                 |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Внутренние регистры           |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Системная память              |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.2. Формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 29 разряд            | 28 разряд            | Формат данных    |&lt;br /&gt;
+------------+---------+------------+---------+                  |&lt;br /&gt;
| логические | уровень | логические | уровень |                  |&lt;br /&gt;
| значения   |         | значения   |         |                  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Двойное слово    |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Слово            |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Четверное слово  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Байт             |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.3. Код обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 27 разряд     | 26 разряд     | 25 разряд     | 24 разряд     | Обмен     |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+           |&lt;br /&gt;
| лог. | уровень| лог. | уровень| лог. | уровень| лог. | уровень|           |&lt;br /&gt;
| знач |        | знач |        | знач |        | знач |        |           |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | данных    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 1    | низкий | X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | команд    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 0    | высокий| Запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 1    | низкий | Чтение-   |&lt;br /&gt;
|      |        |      |        |      |        |      |        | модифика- |&lt;br /&gt;
|      |        |      |        |      |        |      |        | ция -     |&lt;br /&gt;
|      |        |      |        |      |        |      |        | запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где X - безразличное значение, остальные комбинации 24-27 разрядов - резервные.&lt;br /&gt;
&lt;br /&gt;
== 1.11. Функциональные и электрические схемы входных и выходных каскадов ==&lt;br /&gt;
&lt;br /&gt;
Функциональные схемы входных и выходных каскадов представлены на рис. 31-39.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic31.png|400px]] [[Файл:1839VM1 TO Pic32.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic33.png|400px]] [[Файл:1839VM1 TO Pic34.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic35.png|400px]] [[Файл:1839VM1 TO Pic36.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic37.png|400px]] [[Файл:1839VM1 TO Pic38.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic39.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На всех рисунках численное значение около логических элементов обозначает ширину транзисторов элементов в мкм: сверху р-типа, снизу п-типа.&lt;br /&gt;
&lt;br /&gt;
Внутренние тактовые сигналы синхронизации φ , φ̄ соответствуют следующим фазам входного сигнала CLCI: φ соответствует CLCI; φ̄ - CLCI̅.&lt;br /&gt;
&lt;br /&gt;
Электрические схемы входов и входов/выходов представлены на рис. 40,41.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic40.png|400px]] [[Файл:1839VM1 TO Pic41.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных (БРД)           | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4238</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4238"/>
		<updated>2026-04-16T14:54:47Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* 1.10. Временные диаграммы процессора, идентификаторы обменов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.8. Основные параметры прерываний и исключительных состояний ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Векторы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Переход на подпрограммы обслуживания особых ситуаций осуществляется с помощью специальных векторов, которые представляют собой длинные слова, интерпретируемые следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) Биты &amp;lt;1:0&amp;gt; содержат интерпретируемый код:&lt;br /&gt;
&lt;br /&gt;
* 0 - обслужить событие через стек ядра. Если работа уже выполняется через стек прерываний, то обслужить событие через стек прерываний.&lt;br /&gt;
* 1 - обслужить событие через стек прерываний. Если это событие является исключительным состоянием, то IPL повышается до 1F;&lt;br /&gt;
* 2 - обслужить событие в перезаписываемой управляющей памяти. Если эта память не используется, то процессор переходит на команду останова HALT;&lt;br /&gt;
* 3 - процессор переходит на HALT.&lt;br /&gt;
&lt;br /&gt;
2) Биты &amp;lt;31:2&amp;gt; содержат виртуальный адрес подпрограммы обслуживания - для кодов 0 и 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Системный управляющий блок (SCB).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все векторы обслуживания прерываний и исключительных состояний находятся в системном управляющем блоке ( SCB - *System Control Block* ), который представляет собой две смежных страницы памяти. Физический адрес первой страницы содержится в привилегированном регистре - базе системного управляющего блока SCBB ( *SCB base* ).&lt;br /&gt;
&lt;br /&gt;
Векторы устройств на *UNIBUS* находятся во второй странице, адрес которой получается добавлением к адресу, содержащемуся в SCBB, константы (200)₁₆. Разрешенными для этих устройств считаются только векторы (200-3FC)₁₆.&lt;br /&gt;
&lt;br /&gt;
Основные параметры прерываний и исключительных состояний приведены в табл.5.&lt;br /&gt;
&lt;br /&gt;
Таблица 5&lt;br /&gt;
&lt;br /&gt;
Таблица основных параметров особых ситуаций&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| Наименование особых  | Тип        | Уровень приори-  | Вектор | Источник  | Код  | Параметры, загру-  |&lt;br /&gt;
| ситуаций             | ситуации   | тета прерывания  | 16     | (а/МП)*   | 16   | жаемые в стек      |&lt;br /&gt;
|                      |            | IPL_16           |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 1. Машинный сбой     | Прекращение| 1F**             | 04     | Контроллер|  6?  | См.Примечание 1    | &amp;lt;Неразборчиво, 4 зачеркнуто, исправлено на 6 или 8&amp;gt;&lt;br /&gt;
|                      | / ловушка  |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 2. Недостоверный стек| Прекращение| 1F**             | 08     | Процессор |  2   | РНК***, PSL        | &amp;lt;D зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| ядра                 |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 3. Недостоверный стек| Прекращение| 1F**             | -      | Процессор |  2   | РНК, PSL и причи-  | &amp;lt;1 зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| прерываний           |            |                  |        | (а)       |      | на останова оста-  |&lt;br /&gt;
|                      |            |                  |        |           |      | ются на регистрах  |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 4. Сбой питания      | Прерывание | 1E               | 0C     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 5. Резервная/привиле-| Нарушение  | -                | 10     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| гированная команда   |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 6. Резервная команда | Нарушение  | -                | 14     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| пользователя         |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 7. Резервный операнд | Нарушение/ | -                | 18     | Процессор | 7    | РНК, PSL           | &amp;lt;E зачеркнуто, исправлено на 7&amp;gt;&lt;br /&gt;
|                      | прекращение|                  |        | (а/МП)    |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 8. Резервный метод   | Нарушение  | -                | 10C    | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| адресации            |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 9. Нарушение управле-| Нарушение  | -                | 20     | Процессор |  4   | См.Примечание 2    | &amp;lt;2 зачеркнуто, исправлено на 4&amp;gt;&lt;br /&gt;
| ния доступом         |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 10. Запрет трансляции| Нарушение  | -                | 24     | Процессор |  5   | См.Примечание 2    | &amp;lt;3 зачеркнуто, исправлено на 5&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 11. Трассировка      | Нарушение  | -                | 28     | Процессор |  E   | РНК, PSL           | &amp;lt;7 зачеркнуто, исправлено на E&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 12. Команда ВРТ      | Нарушение  | -                | 2C     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
|                      |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 13. Арифметические   | Ловушка    | -                | 34     | Процессор |8-A   | См.Примечание 3    | &amp;lt;B зачеркнуто, исправлено на A&amp;gt;&lt;br /&gt;
| ловушки              |            |                  |        | (а/МП)    |нрзб,A|                    | &amp;lt;неразборчиво&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 14. Команды:  СНМК   | Ловушка    | -                | 40     | Процессор.| -    | См.Примечание 4    |&lt;br /&gt;
|               СНМЕ   |            |                  | 44     | (МП)      |      |                    |&lt;br /&gt;
|               СНМS   |            |                  | 48     |           |      |                    |&lt;br /&gt;
|               СНМИ   |            |                  | 4C     |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 15. Зависание по     | Прерывание | 1D               | 60     | Контроллер| C    | PC, PSL            |&lt;br /&gt;
| записи в память      |            |                  |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 16. Исправимые ошибки| Прерывание | 1A               | 54     | Контроллер| C    | PC,PSL             |&lt;br /&gt;
| памяти               |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 17. Таймер           | Прерывание | 18               | C0     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 18. Консольный       | Прерывание | 14               | F8     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (приемник)  |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 19. Консольный       | Прерывание | 14               | FC     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (передатчик)|            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 20. Программные      | Прерывание | 1...F            | 84...BC| Адаптер   | D?   | PC, PSL            |  &amp;lt;&amp;quot;-&amp;quot; исправлено на D?&amp;gt;&lt;br /&gt;
| прерывания           |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 21. Прерывания       | Прерывание | 14-17            |200-3FC | Адаптер   |      | PC, PSL            |  &amp;lt;5-6 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| устройств            |            |                  |        | (а)       | D    |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - аппаратный/микропрограммный характер соответствующего события;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - для этих событий IPL = 1F, если 1:0 разряды вектора равны 1;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;***&#039;&#039;&#039; - РНК - регистр начала команды. Он указывает на код операции команды, при выполнении которой произошло нарушение или прекращение.&lt;br /&gt;
&lt;br /&gt;
П р и м е ч а н и я  к табл.5:&lt;br /&gt;
&lt;br /&gt;
1. При машинном сбое в стеке сохраняются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Параметр длины (равен 28₁₆).&lt;br /&gt;
* (SP)+4   Код ошибки (для ошибок памяти, например, равен 2).&lt;br /&gt;
* (SP)+8   Регистр виртуального адреса (РКВА).&lt;br /&gt;
* (SP)+C   PC во время сбоя.&lt;br /&gt;
* (SP)+10  Регистр данных памяти (MDR).&lt;br /&gt;
* (SP)+14  Сохраненный регистр режима ( SMR).&lt;br /&gt;
* (SP)+18  Регистр зависания по чтению-модификации-записи (RLTO).&lt;br /&gt;
* (SP)+1C  Регистр групповой четности буфера трансляции (TBGPR).&lt;br /&gt;
* (SP)+20  Регистр ошибок КЭШ-памяти (CAER).&lt;br /&gt;
* (SP)+24  Регистр ошибок шины (BER).&lt;br /&gt;
* (SP)+28  Регистр суммарных ошибок при машинном сбое (MCESR).&lt;br /&gt;
* (SP)+2C  PC, указывающий на код операции.&lt;br /&gt;
* (SP)+30  PSL.&lt;br /&gt;
&lt;br /&gt;
2. При исключительных состояниях от диспетчера памяти в стеке сохраняются:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Регистр суммарных ошибок диспетчера памяти.&lt;br /&gt;
* (SP)+4   Виртуальный адрес в странице нарушения (РКВА).&lt;br /&gt;
* (ST)+8   РНК.&lt;br /&gt;
* (SP)+C   PSL.&lt;br /&gt;
&lt;br /&gt;
3. При арифметических ловушках в стеке, кроме PC, также сохраняется код арифметической ловушки, который имеет следующие значения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Код     Тип арифметической ловушки&lt;br /&gt;
&lt;br /&gt;
      1       Целочисленное переполнение&lt;br /&gt;
      2       Целочисленное деление на 0&lt;br /&gt;
      3       Плавающее  переполнение&lt;br /&gt;
      4       Плавающее/десятичное деление на 0&lt;br /&gt;
      5       Плавающее обнуление&lt;br /&gt;
      6       Десятичное переполнение&lt;br /&gt;
      7       Диапазон приписки&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. При выполнении команд смены режима в стек, кроме PC, PSL загружается операнд команды ( *code* ) с расширенным знаком.&lt;br /&gt;
&lt;br /&gt;
Вся аппаратура, связанная с обработкой прерываний и исключительных состояний, располагается в контроллере памяти, адаптере магистрали и в процессоре.&lt;br /&gt;
&lt;br /&gt;
Контроллер фиксирует аппаратные ошибки, связанные с работой памяти и сообщает об этом процессору с помощью сигналов *INRC* (прерывание контроллера) и MCH (машинный сбой). Адаптер фиксирует все остальные прерывания, проводит разбор приоритетов между ними и сообщает процессору о наличии запроса прерывания сигналом *INRA* (прерывание адаптера). Кроме этого в адаптере находится часть внутренних регистров системы, которые связаны с обработкой прерываний.&lt;br /&gt;
&lt;br /&gt;
В процессоре находится, собственно блок прерываний (БПР), который наряду с прерываниями контроллера и адаптера, обрабатывает все аппаратные исключительные состояния, проводит окончательный разбор приоритетов и формирует код особой ситуации, с помощью которого осуществляется формирование начального адреса соответствующей микропрограммы обработки.&lt;br /&gt;
&lt;br /&gt;
== 1.9. Блок прерываний БПР ==&lt;br /&gt;
&lt;br /&gt;
1.9.1. На рис.8 приведена структурная схема БПР процессора. Ниже перечислены основные блоки, входы и выходы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic8.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1) БСБПР - блок синхронизации БПР.&lt;br /&gt;
&lt;br /&gt;
2) БРП   - блок разбора приоритетов.&lt;br /&gt;
&lt;br /&gt;
3) ДШРИП - дешифратор сброса источника прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
4) РИП   - регистр источников прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
5) Входы:&lt;br /&gt;
&lt;br /&gt;
* КК    - признак конца команды;&lt;br /&gt;
* PA    - выход элемента ИЛИ, на входах которого собраны все нарушения и прекращения;&lt;br /&gt;
* 1T    - выход элемента ИЛИ, на входах которого собраны все прерывания и ловушки;&lt;br /&gt;
* 5CN   - запрос недостоверного стека ядра;&lt;br /&gt;
* SINN - запрос недостоверного стека прерываний;&lt;br /&gt;
* НУД   - запрос нарушения управления доступом;&lt;br /&gt;
* ЗТ    - запрос запрета трансляции;&lt;br /&gt;
* MCH   - запрос машинного сбоя;&lt;br /&gt;
* REZ   - запрос резервного операнда;&lt;br /&gt;
* INRA  - запрос адаптера;&lt;br /&gt;
* HALT  - запрос останова;&lt;br /&gt;
* T     - запрос трассировки;&lt;br /&gt;
* FUZ   - запрос ловушки плавающего недополнения;&lt;br /&gt;
* DVV   - запрос ловушки десятичного переполнения;&lt;br /&gt;
* IVV   - запрос ловушки целочисленного переполнения;&lt;br /&gt;
* FVV   - запрос ловушки плавающего переполнения;&lt;br /&gt;
* INRC  - запрос прерывания контроллера;&lt;br /&gt;
* РИП   - сигнал сброса источника прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Выходы:&lt;br /&gt;
&lt;br /&gt;
* RA        - сигнал запроса сбоя;&lt;br /&gt;
* IRQ       - сигнал запроса прерывания;&lt;br /&gt;
* ЗРПП      - сигнал записи регистра признака прерывания и исключительного состояния (РПП);&lt;br /&gt;
* ЗРИП      - сигнал записи РИП;&lt;br /&gt;
* РПП(0-3)  - код прерываний и исключительных состояний;&lt;br /&gt;
* 5РИП      - сигнал сброса конкретного источника (в соответствии с кодом).&lt;br /&gt;
&lt;br /&gt;
1.9.2. Алгоритм работы БПР&lt;br /&gt;
&lt;br /&gt;
При поступлении в БПР сигналов прерываний - ловушек или сигналов нарушений-прекращений запускается БСБПР - по сигналу IT или PA соответственно. PA может возникать в любой момент выполнения команды, IT возникает лишь после окончания команды, перед выполнением следующей команды. БСБПР вырабатывает сигналы RA или IRQ , которые поступают на ПЛМ ДШК, ЗРИП, по которому производится запись в РИП всех имеющихся к этому времени запросов. В БРП, в соответствии с самым высокоприоритетным запросом, формируется код, который поступает на входы РПП (находящегося в блоке управления ПЗУ) и на входы ДШ КИП для последующего сброса источника запроса по сигналу РИП&lt;br /&gt;
&lt;br /&gt;
Запись в РПП производится сигналом ЗРПП, также выработанным БСБПА.&lt;br /&gt;
&lt;br /&gt;
Содержимое РПП затем используется микрокомандой перехода по регистру для выхода на конкретные микропрограммы обработки прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
В табл. 5 в графе &amp;quot;Код₁₆&amp;quot; приведены шестнадцатеричные коды аппаратных особых ситуаций.&lt;br /&gt;
&lt;br /&gt;
Приоритетность между прерываниями и ловушками в БПР принята следующая (в порядке убывания приоритетов):&lt;br /&gt;
&lt;br /&gt;
# Арифметические ловушки.&lt;br /&gt;
# Прерывания контроллера.&lt;br /&gt;
# Прерывания адаптера.&lt;br /&gt;
#  Ловушка трассы.&lt;br /&gt;
&lt;br /&gt;
На рис. 9 приведена временная диаграмма работы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic9.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.9.3. Алгоритм обработки прерываний и исключительных состояний&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки ситуаций сводится, в основном, к двум действиям:&lt;br /&gt;
&lt;br /&gt;
1) сохранению текущего состояния (PC(РНК), *PSL* , параметры (если нужно));&lt;br /&gt;
&lt;br /&gt;
2) формированию нового состояния (загрузка PC начальным адресом программы обработки особой ситуации, формирование нового *PSL* ).&lt;br /&gt;
&lt;br /&gt;
Более подробно эти два действия, и другие описаны в алгоритме обработки прерываний и исключительных состояний на рис.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic10.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.10. Временные диаграммы процессора, идентификаторы обменов ==&lt;br /&gt;
&lt;br /&gt;
1.10.1. Ко всем временным диаграммам относится следующее:&lt;br /&gt;
&lt;br /&gt;
1) Если на вход тестирования *TEST* подан низкий уровень, то новый обмен по микрокомандной магистрали не начнется, пока ответный сигнал *MSDS* от накопителя микрокоманд не закончится. По магистрали AD(0-31) не начнется новый обмен, пока не закончатся ответные сигналы *SAS* и *SDS* от предыдущего обмена. Если на входе *TEST* высокий уровень, то новые обмены по магистралям начинаются независимо от окончания ответных сигналов. При этом окончание сигналов *SAS* и *SDS* должно происходить асинхронно с минимальным временем задержки по окончании сигналов *MAS* и *MDS* . Представленные ниже временные диаграммы справедливы для высокого уровня на входе *TEST*.&lt;br /&gt;
&lt;br /&gt;
2) Интерфейсные сигналы при магистрали AD(0-31): *MAS* , *PGB* , *PCRQ* , *MDS* , *SEL* , *DMAK* вырабатываются выходами с тремя состояниями. На эти выходы необходимо ставить резисторы 2,7 кОм к шине источника питания + Ucc. После окончания сигналов в процедурах обменов на этих выходах осуществляется &amp;quot;подброс в &amp;quot;1&amp;quot; на время 0,5 T*CLC* , причем на выходах *MAS*, *PCRQ* , *DMAK* в отрицательной фазе CLC, а на выходах *PGB* , *MDS* и *SEL* - в положительной. Также в состояние активного высокого уровня эти выходы приводятся от низкого уровня на входе *SR* при начальном пуске ЦПР, причем для активного высокого уровня на выходе *MAS* необходимо наличие высокого уровня на входе *ACTR*.&lt;br /&gt;
&lt;br /&gt;
3) Выходы AD(0-31) также имеют три состояния. В третьем состоянии выходы AD(0-31) находятся при приеме команд или данных, от низкого уровня на входе *SR* , в процедуре &amp;quot;Запись с перехватом&amp;quot; и при предоставлении прямого доступа к памяти.&lt;br /&gt;
&lt;br /&gt;
В состояние активного высокого уровня выходы AD(0-31) приводятся между обменами по окончании сигнала *MDS* .&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение микрокоманды&amp;quot; представлена на рис. 11. Минимальный цикл приема микрокоманды составляет 2 T*CLC* . [зачёркнуто: Ответный сигнал *MSDS* от накопителя микрокоманд может быть также статическим низким уровнем - в отличие от представленного на рис. 11.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic11.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На временной диаграмме представлен дополнительно внутренний сигнал ЦПР *WBMC* - запись в буфер микрокоманд.&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Адресное чтение&amp;quot; представлена на рис. *12*. Минимальный цикл адресного чтения 3T*CLC*. Низкий уровень сигнала *SAS* принимается в отрицательной фазе *CLC* , затем выдается сигнал *MDS* низкого уровня и открывается внутренняя магистраль MD(0-31) для приема данных. В целях обеспечения быстродействия на частоте 10 МГц низкий уровень сигнала *SAS* необходимо подавать в течение первых 25 нс отрицательной фазы *CLC* . Низкий уровень сигнала *SDS* принимается также в отрицательной фазе *CLC* , и в следующей положительной фазе *CLC* заканчивается сигнал *MDS* . Для обеспечения быстродействия необходимо выполнить такие же требования, как и для сигнала *SAS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic12.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма &amp;quot;Безадресное чтение команды&amp;quot; представлена на рис. *13* . Минимальный цикл процедуры 2 T*CLC* . Прием сигнала *SDS* происходит также, как и при адресном чтении и требования для обеспечения быстродействия те же.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic13.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Запись&amp;quot; представлена на рис. *14* . Минимальный цикл процедуры - 4T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic14.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись&amp;quot; представлена на рис. *15* . Минимальный цикл процедуры - 7 T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия такие как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic15.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры передачи адреса при пересечении данными границы страницы представлена на рис. *16* . Сигнал *PGB* при первом появлении сопровождает адрес перед границей страницы, при втором появлении сопровождает адрес начала новой страницы. Между двумя адресами (рис. *16* ) возможно выполнение обменов, например, &amp;quot;Чтение PTE&amp;quot;, если пуст &amp;quot;Буфер трансляции&amp;quot;, или &amp;quot;Безадресное чтение команды&amp;quot;. Для обеспечения быстродействия на частоте 10 МГц требования к сигналам *SAS* и *SDS* такие же, как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic16.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма отказа от записи в процедуре &amp;quot;Чтение-модификация-запись PTE&amp;quot; представлена на рис. *17*. Отказ от записи *PTE* происходит, когда страница уже модифицировалась (бит модификации М &amp;lt;26&amp;gt; регистра PTE установлен в &amp;quot;1&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic17.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы процедур чтения и записи внутренних регистров *IPR* , размещенных в процессоре ( *POBR* , *POLR* , *P1BR* , *P1LR* , *SBR*, *SLR*, *MAPEN* , *TBIA* , *TBIS* , *ACCS* ) представлены на рис. *18,19*. Внешние сигналы *SAS* , *SDS* не требуются, вместо них в процессоре вырабатываются внутренние сигналы такого же назначения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic18.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic19.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма чтения внешнего регистра начальных условий представлена на рис. *20* . Для чтения этого регистра предназначен выход *SEL* . Сигнал *SEL* возникает при чтении системной памяти (A31, A30 = &amp;quot;1&amp;quot;) и при A23 = &amp;quot;1&amp;quot;. На временной диаграмме сигнал *SEL* аналогичен сигналу *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic20.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма сигналов сопровождения процедуры захвата магистрали при прямом доступе к памяти представлена на рис. *21*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic21.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сигнал *DMR* магистрали *Q-BUS* преобразуется микросхемой адаптера магистрали КЛ839ВВ1 в сигнал *DMRQ* , поступающий на процессор. При отсутствии обменов процессор принимает сигнал *DMRQ* в низкой фазе *CLC* и через период *CLC* выдает сигнал разрешения прямого доступа к памяти *DMAK* , который микросхема АМ преобразует в сигнал *DMGO* магистрали *Q-BUS*. Окончание сигнала *DMAK* происходит в той же фазе низкого уровня CLC в какой принимается окончание сигнала *DMRQ* . На временной диаграмме также представлен перевод выходов магистрали AD(0-31) в третье состояние и выход из третьего состояния. При наличии обмена сигнал *DMAK* появится только по его окончании.&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы адресного чтения и адресной записи с перехватом сопроцессором обменов с памятью представлены на рис. *22, 23* . Обмен с перехватом происходит при A31 = &amp;quot;0&amp;quot;, A30 = &amp;quot;1&amp;quot;. О том, что микросхема сопроцессора начинает обмен с памятью, свидетельствует сигнал *ACTR* . Приняв асинхронно этот сигнал, процессор переводит выход *MAS* в третье состояние, предоставляя возможность сопроцессору выставить активный низкий уровень *MAS*спрц и далее сопроцессор читает данные из памяти или записывает данные в память также, как выполняет эти процедуры процессор. При записи с перехватом выходы AD(0-31) процессора переводятся в третье состояние по окончании адреса в низкой фазе· *CLC* и выходят из третьего состояния (подброс в &amp;quot;1&amp;quot;) по окончании низкого уровня на шине *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Рис. 22 отсутствует&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic23.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись с перехватом&amp;quot; представлена на рис. *24*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic24.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойное адресное чтение&amp;quot; представлено на рис. *25*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic25.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойная запись&amp;quot; представлена на рис. *26*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic26.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Двойное чтение и запись выполняются при обменах с четверными словами.&lt;br /&gt;
&lt;br /&gt;
На рис. *27-30* представлены временные диаграммы различных обменов с внешними и внутренними сигналами процессора.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic27.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic28.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic29.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic30.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
К внутренним сигналам процессора относятся:&lt;br /&gt;
&lt;br /&gt;
* WBMC  - запись в буфер микрокоманд;&lt;br /&gt;
* WMCE  - запись в регистр микрокоманд;&lt;br /&gt;
* NRFW  - сигнал записи поля чтения;&lt;br /&gt;
* SRDI  - сигнал чтения источника;&lt;br /&gt;
* SWT2  - сигнал записи в приемник;&lt;br /&gt;
* WTWA  - запись в регистр виртуального адреса;&lt;br /&gt;
* WTPA  - запись в регистр физического адреса;&lt;br /&gt;
* ADRE  - сигнал разрешения выдачи адреса в системную магистраль AD(0-31);&lt;br /&gt;
* DTIE  - сигнал приема команд и данных на внутреннюю магистраль MD(0-31);&lt;br /&gt;
* WCE   - сигнал записи в буферные регистры команд;&lt;br /&gt;
* WTBDR - сигнал записи в буферные регистры данных;&lt;br /&gt;
* DTOE  - сигнал выдачи данных в системную магистраль AD(0-31) при записи;&lt;br /&gt;
* DATL  - сигнал выдачи данных с выходного буферного регистра данных во внутреннюю магистраль MD(0-31).&lt;br /&gt;
&lt;br /&gt;
1.10.2. Идентификаторы обменов&lt;br /&gt;
&lt;br /&gt;
Старший байт физического адреса содержит идентификаторы обменов. В таблицах, приведенных ниже, даны логические значения кодов и электрические уровни на магистрали AD .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
|         |         |                   |&lt;br /&gt;
| Направ- | Формат  |    Код обмена     |&lt;br /&gt;
| ление   | данных  |                   |&lt;br /&gt;
| обмена  |         |                   |&lt;br /&gt;
+---------+---------+-------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.1. Направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 31 разряд            | 30 разряд            | Направление обмена            |&lt;br /&gt;
+------------+---------+------------+---------+                               |&lt;br /&gt;
| логические | уровень | логические | уровень |                               |&lt;br /&gt;
| значения   |         | значения   |         |                               |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Основная память, регист-      |&lt;br /&gt;
|            |         |            |         | ры внешних устройств          |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Основная память, с            |&lt;br /&gt;
|            |         |            |         | перехватом магистрали         |&lt;br /&gt;
|            |         |            |         | сопроцессором                 |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Внутренние регистры           |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Системная память              |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.2. Формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 29 разряд            | 28 разряд            | Формат данных    |&lt;br /&gt;
+------------+---------+------------+---------+                  |&lt;br /&gt;
| логические | уровень | логические | уровень |                  |&lt;br /&gt;
| значения   |         | значения   |         |                  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Двойное слово    |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Слово            |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Четверное слово  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Байт             |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.3. Код обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 27 разряд     | 26 разряд     | 25 разряд     | 24 разряд     | Обмен     |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+           |&lt;br /&gt;
| лог. | уровень| лог. | уровень| лог. | уровень| лог. | уровень|           |&lt;br /&gt;
| знач |        | знач |        | знач |        | знач |        |           |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | данных    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 1    | низкий | X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | команд    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 0    | высокий| Запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 1    | низкий | Чтение-   |&lt;br /&gt;
|      |        |      |        |      |        |      |        | модифика- |&lt;br /&gt;
|      |        |      |        |      |        |      |        | ция -     |&lt;br /&gt;
|      |        |      |        |      |        |      |        | запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где X - безразличное значение, остальные комбинации 24-27 разрядов - резервные.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных (БРД)           | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4237</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4237"/>
		<updated>2026-04-16T14:53:04Z</updated>

		<summary type="html">&lt;p&gt;Panther: 1.10&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.8. Основные параметры прерываний и исключительных состояний ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Векторы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Переход на подпрограммы обслуживания особых ситуаций осуществляется с помощью специальных векторов, которые представляют собой длинные слова, интерпретируемые следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) Биты &amp;lt;1:0&amp;gt; содержат интерпретируемый код:&lt;br /&gt;
&lt;br /&gt;
* 0 - обслужить событие через стек ядра. Если работа уже выполняется через стек прерываний, то обслужить событие через стек прерываний.&lt;br /&gt;
* 1 - обслужить событие через стек прерываний. Если это событие является исключительным состоянием, то IPL повышается до 1F;&lt;br /&gt;
* 2 - обслужить событие в перезаписываемой управляющей памяти. Если эта память не используется, то процессор переходит на команду останова HALT;&lt;br /&gt;
* 3 - процессор переходит на HALT.&lt;br /&gt;
&lt;br /&gt;
2) Биты &amp;lt;31:2&amp;gt; содержат виртуальный адрес подпрограммы обслуживания - для кодов 0 и 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Системный управляющий блок (SCB).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все векторы обслуживания прерываний и исключительных состояний находятся в системном управляющем блоке ( SCB - *System Control Block* ), который представляет собой две смежных страницы памяти. Физический адрес первой страницы содержится в привилегированном регистре - базе системного управляющего блока SCBB ( *SCB base* ).&lt;br /&gt;
&lt;br /&gt;
Векторы устройств на *UNIBUS* находятся во второй странице, адрес которой получается добавлением к адресу, содержащемуся в SCBB, константы (200)₁₆. Разрешенными для этих устройств считаются только векторы (200-3FC)₁₆.&lt;br /&gt;
&lt;br /&gt;
Основные параметры прерываний и исключительных состояний приведены в табл.5.&lt;br /&gt;
&lt;br /&gt;
Таблица 5&lt;br /&gt;
&lt;br /&gt;
Таблица основных параметров особых ситуаций&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| Наименование особых  | Тип        | Уровень приори-  | Вектор | Источник  | Код  | Параметры, загру-  |&lt;br /&gt;
| ситуаций             | ситуации   | тета прерывания  | 16     | (а/МП)*   | 16   | жаемые в стек      |&lt;br /&gt;
|                      |            | IPL_16           |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 1. Машинный сбой     | Прекращение| 1F**             | 04     | Контроллер|  6?  | См.Примечание 1    | &amp;lt;Неразборчиво, 4 зачеркнуто, исправлено на 6 или 8&amp;gt;&lt;br /&gt;
|                      | / ловушка  |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 2. Недостоверный стек| Прекращение| 1F**             | 08     | Процессор |  2   | РНК***, PSL        | &amp;lt;D зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| ядра                 |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 3. Недостоверный стек| Прекращение| 1F**             | -      | Процессор |  2   | РНК, PSL и причи-  | &amp;lt;1 зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| прерываний           |            |                  |        | (а)       |      | на останова оста-  |&lt;br /&gt;
|                      |            |                  |        |           |      | ются на регистрах  |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 4. Сбой питания      | Прерывание | 1E               | 0C     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 5. Резервная/привиле-| Нарушение  | -                | 10     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| гированная команда   |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 6. Резервная команда | Нарушение  | -                | 14     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| пользователя         |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 7. Резервный операнд | Нарушение/ | -                | 18     | Процессор | 7    | РНК, PSL           | &amp;lt;E зачеркнуто, исправлено на 7&amp;gt;&lt;br /&gt;
|                      | прекращение|                  |        | (а/МП)    |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 8. Резервный метод   | Нарушение  | -                | 10C    | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| адресации            |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 9. Нарушение управле-| Нарушение  | -                | 20     | Процессор |  4   | См.Примечание 2    | &amp;lt;2 зачеркнуто, исправлено на 4&amp;gt;&lt;br /&gt;
| ния доступом         |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 10. Запрет трансляции| Нарушение  | -                | 24     | Процессор |  5   | См.Примечание 2    | &amp;lt;3 зачеркнуто, исправлено на 5&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 11. Трассировка      | Нарушение  | -                | 28     | Процессор |  E   | РНК, PSL           | &amp;lt;7 зачеркнуто, исправлено на E&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 12. Команда ВРТ      | Нарушение  | -                | 2C     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
|                      |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 13. Арифметические   | Ловушка    | -                | 34     | Процессор |8-A   | См.Примечание 3    | &amp;lt;B зачеркнуто, исправлено на A&amp;gt;&lt;br /&gt;
| ловушки              |            |                  |        | (а/МП)    |нрзб,A|                    | &amp;lt;неразборчиво&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 14. Команды:  СНМК   | Ловушка    | -                | 40     | Процессор.| -    | См.Примечание 4    |&lt;br /&gt;
|               СНМЕ   |            |                  | 44     | (МП)      |      |                    |&lt;br /&gt;
|               СНМS   |            |                  | 48     |           |      |                    |&lt;br /&gt;
|               СНМИ   |            |                  | 4C     |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 15. Зависание по     | Прерывание | 1D               | 60     | Контроллер| C    | PC, PSL            |&lt;br /&gt;
| записи в память      |            |                  |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 16. Исправимые ошибки| Прерывание | 1A               | 54     | Контроллер| C    | PC,PSL             |&lt;br /&gt;
| памяти               |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 17. Таймер           | Прерывание | 18               | C0     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 18. Консольный       | Прерывание | 14               | F8     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (приемник)  |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 19. Консольный       | Прерывание | 14               | FC     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (передатчик)|            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 20. Программные      | Прерывание | 1...F            | 84...BC| Адаптер   | D?   | PC, PSL            |  &amp;lt;&amp;quot;-&amp;quot; исправлено на D?&amp;gt;&lt;br /&gt;
| прерывания           |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 21. Прерывания       | Прерывание | 14-17            |200-3FC | Адаптер   |      | PC, PSL            |  &amp;lt;5-6 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| устройств            |            |                  |        | (а)       | D    |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - аппаратный/микропрограммный характер соответствующего события;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - для этих событий IPL = 1F, если 1:0 разряды вектора равны 1;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;***&#039;&#039;&#039; - РНК - регистр начала команды. Он указывает на код операции команды, при выполнении которой произошло нарушение или прекращение.&lt;br /&gt;
&lt;br /&gt;
П р и м е ч а н и я  к табл.5:&lt;br /&gt;
&lt;br /&gt;
1. При машинном сбое в стеке сохраняются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Параметр длины (равен 28₁₆).&lt;br /&gt;
* (SP)+4   Код ошибки (для ошибок памяти, например, равен 2).&lt;br /&gt;
* (SP)+8   Регистр виртуального адреса (РКВА).&lt;br /&gt;
* (SP)+C   PC во время сбоя.&lt;br /&gt;
* (SP)+10  Регистр данных памяти (MDR).&lt;br /&gt;
* (SP)+14  Сохраненный регистр режима ( SMR).&lt;br /&gt;
* (SP)+18  Регистр зависания по чтению-модификации-записи (RLTO).&lt;br /&gt;
* (SP)+1C  Регистр групповой четности буфера трансляции (TBGPR).&lt;br /&gt;
* (SP)+20  Регистр ошибок КЭШ-памяти (CAER).&lt;br /&gt;
* (SP)+24  Регистр ошибок шины (BER).&lt;br /&gt;
* (SP)+28  Регистр суммарных ошибок при машинном сбое (MCESR).&lt;br /&gt;
* (SP)+2C  PC, указывающий на код операции.&lt;br /&gt;
* (SP)+30  PSL.&lt;br /&gt;
&lt;br /&gt;
2. При исключительных состояниях от диспетчера памяти в стеке сохраняются:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Регистр суммарных ошибок диспетчера памяти.&lt;br /&gt;
* (SP)+4   Виртуальный адрес в странице нарушения (РКВА).&lt;br /&gt;
* (ST)+8   РНК.&lt;br /&gt;
* (SP)+C   PSL.&lt;br /&gt;
&lt;br /&gt;
3. При арифметических ловушках в стеке, кроме PC, также сохраняется код арифметической ловушки, который имеет следующие значения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Код     Тип арифметической ловушки&lt;br /&gt;
&lt;br /&gt;
      1       Целочисленное переполнение&lt;br /&gt;
      2       Целочисленное деление на 0&lt;br /&gt;
      3       Плавающее  переполнение&lt;br /&gt;
      4       Плавающее/десятичное деление на 0&lt;br /&gt;
      5       Плавающее обнуление&lt;br /&gt;
      6       Десятичное переполнение&lt;br /&gt;
      7       Диапазон приписки&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. При выполнении команд смены режима в стек, кроме PC, PSL загружается операнд команды ( *code* ) с расширенным знаком.&lt;br /&gt;
&lt;br /&gt;
Вся аппаратура, связанная с обработкой прерываний и исключительных состояний, располагается в контроллере памяти, адаптере магистрали и в процессоре.&lt;br /&gt;
&lt;br /&gt;
Контроллер фиксирует аппаратные ошибки, связанные с работой памяти и сообщает об этом процессору с помощью сигналов *INRC* (прерывание контроллера) и MCH (машинный сбой). Адаптер фиксирует все остальные прерывания, проводит разбор приоритетов между ними и сообщает процессору о наличии запроса прерывания сигналом *INRA* (прерывание адаптера). Кроме этого в адаптере находится часть внутренних регистров системы, которые связаны с обработкой прерываний.&lt;br /&gt;
&lt;br /&gt;
В процессоре находится, собственно блок прерываний (БПР), который наряду с прерываниями контроллера и адаптера, обрабатывает все аппаратные исключительные состояния, проводит окончательный разбор приоритетов и формирует код особой ситуации, с помощью которого осуществляется формирование начального адреса соответствующей микропрограммы обработки.&lt;br /&gt;
&lt;br /&gt;
== 1.9. Блок прерываний БПР ==&lt;br /&gt;
&lt;br /&gt;
1.9.1. На рис.8 приведена структурная схема БПР процессора. Ниже перечислены основные блоки, входы и выходы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic8.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1) БСБПР - блок синхронизации БПР.&lt;br /&gt;
&lt;br /&gt;
2) БРП   - блок разбора приоритетов.&lt;br /&gt;
&lt;br /&gt;
3) ДШРИП - дешифратор сброса источника прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
4) РИП   - регистр источников прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
5) Входы:&lt;br /&gt;
&lt;br /&gt;
* КК    - признак конца команды;&lt;br /&gt;
* PA    - выход элемента ИЛИ, на входах которого собраны все нарушения и прекращения;&lt;br /&gt;
* 1T    - выход элемента ИЛИ, на входах которого собраны все прерывания и ловушки;&lt;br /&gt;
* 5CN   - запрос недостоверного стека ядра;&lt;br /&gt;
* SINN - запрос недостоверного стека прерываний;&lt;br /&gt;
* НУД   - запрос нарушения управления доступом;&lt;br /&gt;
* ЗТ    - запрос запрета трансляции;&lt;br /&gt;
* MCH   - запрос машинного сбоя;&lt;br /&gt;
* REZ   - запрос резервного операнда;&lt;br /&gt;
* INRA  - запрос адаптера;&lt;br /&gt;
* HALT  - запрос останова;&lt;br /&gt;
* T     - запрос трассировки;&lt;br /&gt;
* FUZ   - запрос ловушки плавающего недополнения;&lt;br /&gt;
* DVV   - запрос ловушки десятичного переполнения;&lt;br /&gt;
* IVV   - запрос ловушки целочисленного переполнения;&lt;br /&gt;
* FVV   - запрос ловушки плавающего переполнения;&lt;br /&gt;
* INRC  - запрос прерывания контроллера;&lt;br /&gt;
* РИП   - сигнал сброса источника прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Выходы:&lt;br /&gt;
&lt;br /&gt;
* RA        - сигнал запроса сбоя;&lt;br /&gt;
* IRQ       - сигнал запроса прерывания;&lt;br /&gt;
* ЗРПП      - сигнал записи регистра признака прерывания и исключительного состояния (РПП);&lt;br /&gt;
* ЗРИП      - сигнал записи РИП;&lt;br /&gt;
* РПП(0-3)  - код прерываний и исключительных состояний;&lt;br /&gt;
* 5РИП      - сигнал сброса конкретного источника (в соответствии с кодом).&lt;br /&gt;
&lt;br /&gt;
1.9.2. Алгоритм работы БПР&lt;br /&gt;
&lt;br /&gt;
При поступлении в БПР сигналов прерываний - ловушек или сигналов нарушений-прекращений запускается БСБПР - по сигналу IT или PA соответственно. PA может возникать в любой момент выполнения команды, IT возникает лишь после окончания команды, перед выполнением следующей команды. БСБПР вырабатывает сигналы RA или IRQ , которые поступают на ПЛМ ДШК, ЗРИП, по которому производится запись в РИП всех имеющихся к этому времени запросов. В БРП, в соответствии с самым высокоприоритетным запросом, формируется код, который поступает на входы РПП (находящегося в блоке управления ПЗУ) и на входы ДШ КИП для последующего сброса источника запроса по сигналу РИП&lt;br /&gt;
&lt;br /&gt;
Запись в РПП производится сигналом ЗРПП, также выработанным БСБПА.&lt;br /&gt;
&lt;br /&gt;
Содержимое РПП затем используется микрокомандой перехода по регистру для выхода на конкретные микропрограммы обработки прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
В табл. 5 в графе &amp;quot;Код₁₆&amp;quot; приведены шестнадцатеричные коды аппаратных особых ситуаций.&lt;br /&gt;
&lt;br /&gt;
Приоритетность между прерываниями и ловушками в БПР принята следующая (в порядке убывания приоритетов):&lt;br /&gt;
&lt;br /&gt;
# Арифметические ловушки.&lt;br /&gt;
# Прерывания контроллера.&lt;br /&gt;
# Прерывания адаптера.&lt;br /&gt;
#  Ловушка трассы.&lt;br /&gt;
&lt;br /&gt;
На рис. 9 приведена временная диаграмма работы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic9.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.9.3. Алгоритм обработки прерываний и исключительных состояний&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки ситуаций сводится, в основном, к двум действиям:&lt;br /&gt;
&lt;br /&gt;
1) сохранению текущего состояния (PC(РНК), *PSL* , параметры (если нужно));&lt;br /&gt;
&lt;br /&gt;
2) формированию нового состояния (загрузка PC начальным адресом программы обработки особой ситуации, формирование нового *PSL* ).&lt;br /&gt;
&lt;br /&gt;
Более подробно эти два действия, и другие описаны в алгоритме обработки прерываний и исключительных состояний на рис.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic10.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.10. Временные диаграммы процессора, идентификаторы обменов ==&lt;br /&gt;
&lt;br /&gt;
1.10.1. Ко всем временным диаграммам относится следующее:&lt;br /&gt;
&lt;br /&gt;
1) Если на вход тестирования *TEST* подан низкий уровень, то новый обмен по микрокомандной магистрали не начнется, пока ответный сигнал *MSDS* от накопителя микрокоманд не закончится. По магистрали AD(0-31) не начнется новый обмен, пока не закончатся ответные сигналы *SAS* и *SDS* от предыдущего обмена. Если на входе *TEST* высокий уровень, то новые обмены по магистралям начинаются независимо от окончания ответных сигналов. При этом окончание сигналов *SAS* и *SDS* должно происходить асинхронно с минимальным временем задержки по окончании сигналов *MAS* и *MDS* . Представленные ниже временные диаграммы справедливы для высокого уровня на входе *TEST*.&lt;br /&gt;
&lt;br /&gt;
2) Интерфейсные сигналы при магистрали AD(0-31): *MAS* , *PGB* , *PCRQ* , *MDS* , *SEL* , *DMAK* вырабатываются выходами с тремя состояниями. На эти выходы необходимо ставить резисторы 2,7 кОм к шине источника питания + Ucc. После окончания сигналов в процедурах обменов на этих выходах осуществляется &amp;quot;подброс в &amp;quot;1&amp;quot; на время 0,5 T*CLC* , причем на выходах *MAS*, *PCRQ* , *DMAK* в отрицательной фазе CLC, а на выходах *PGB* , *MDS* и *SEL* - в положительной. Также в состояние активного высокого уровня эти выходы приводятся от низкого уровня на входе *SR* при начальном пуске ЦПР, причем для активного высокого уровня на выходе *MAS* необходимо наличие высокого уровня на входе *ACTR*.&lt;br /&gt;
&lt;br /&gt;
3) Выходы AD(0-31) также имеют три состояния. В третьем состоянии выходы AD(0-31) находятся при приеме команд или данных, от низкого уровня на входе *SR* , в процедуре &amp;quot;Запись с перехватом&amp;quot; и при предоставлении прямого доступа к памяти.&lt;br /&gt;
&lt;br /&gt;
В состояние активного высокого уровня выходы AD(0-31) приводятся между обменами по окончании сигнала *MDS* .&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение микрокоманды&amp;quot; представлена на рис. 11. Минимальный цикл приема микрокоманды составляет 2 T*CLC* . [зачёркнуто: Ответный сигнал *MSDS* от накопителя микрокоманд может быть также статическим низким уровнем - в отличие от представленного на рис. 11.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic11.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На временной диаграмме представлен дополнительно внутренний сигнал ЦПР *WBMC* - запись в буфер микрокоманд.&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Адресное чтение&amp;quot; представлена на рис. *12*. Минимальный цикл адресного чтения 3T*CLC*. Низкий уровень сигнала *SAS* принимается в отрицательной фазе *CLC* , затем выдается сигнал *MDS* низкого уровня и открывается внутренняя магистраль MD(0-31) для приема данных. В целях обеспечения быстродействия на частоте 10 МГц низкий уровень сигнала *SAS* необходимо подавать в течение первых 25 нс отрицательной фазы *CLC* . Низкий уровень сигнала *SDS* принимается также в отрицательной фазе *CLC* , и в следующей положительной фазе *CLC* заканчивается сигнал *MDS* . Для обеспечения быстродействия необходимо выполнить такие же требования, как и для сигнала *SAS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic12.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма &amp;quot;Безадресное чтение команды&amp;quot; представлена на рис. *13* . Минимальный цикл процедуры 2 T*CLC* . Прием сигнала *SDS* происходит также, как и при адресном чтении и требования для обеспечения быстродействия те же.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic13.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Запись&amp;quot; представлена на рис. *14* . Минимальный цикл процедуры - 4T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic14.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись&amp;quot; представлена на рис. *15* . Минимальный цикл процедуры - 7 T*CLC* . Прием сигналов *SAS* и *SDS* и требования по обеспечению быстродействия такие как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic15.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры передачи адреса при пересечении данными границы страницы представлена на рис. *16* . Сигнал *PGB* при первом появлении сопровождает адрес перед границей страницы, при втором появлении сопровождает адрес начала новой страницы. Между двумя адресами (рис. *16* ) возможно выполнение обменов, например, &amp;quot;Чтение PTE&amp;quot;, если пуст &amp;quot;Буфер трансляции&amp;quot;, или &amp;quot;Безадресное чтение команды&amp;quot;. Для обеспечения быстродействия на частоте 10 МГц требования к сигналам *SAS* и *SDS* такие же, как и при адресном чтении.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic16.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма отказа от записи в процедуре &amp;quot;Чтение-модификация-запись PTE&amp;quot; представлена на рис. *17*. Отказ от записи *PTE* происходит, когда страница уже модифицировалась (бит модификации М &amp;lt;26&amp;gt; регистра PTE установлен в &amp;quot;1&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic17.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы процедур чтения и записи внутренних регистров *IPR* , размещенных в процессоре ( *POBR* , *POLR* , *P1BR* , *P1LR* , *SBR*, *SLR*, *MAPEN* , *TBIA* , *TBIS* , *ACCS* ) представлены на рис. *18,19*. Внешние сигналы *SAS* , *SDS* не требуются, вместо них в процессоре вырабатываются внутренние сигналы такого же назначения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic18.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic19.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма чтения внешнего регистра начальных условий представлена на рис. *20* . Для чтения этого регистра предназначен выход *SEL* . Сигнал *SEL* возникает при чтении системной памяти (A31, A30 = &amp;quot;1&amp;quot;) и при A23 = &amp;quot;1&amp;quot;. На временной диаграмме сигнал *SEL* аналогичен сигналу *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic20.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма сигналов сопровождения процедуры захвата магистрали при прямом доступе к памяти представлена на рис. *21*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic21.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сигнал *DMR* магистрали *Q-BUS* преобразуется микросхемой адаптера магистрали КЛ839ВВ1 в сигнал *DMRQ* , поступающий на процессор. При отсутствии обменов процессор принимает сигнал *DMRQ* в низкой фазе *CLC* и через период *CLC* выдает сигнал разрешения прямого доступа к памяти *DMAK* , который микросхема АМ преобразует в сигнал *DMGO* магистрали *Q-BUS*. Окончание сигнала *DMAK* происходит в той же фазе низкого уровня CLC в какой принимается окончание сигнала *DMRQ* . На временной диаграмме также представлен перевод выходов магистрали AD(0-31) в третье состояние и выход из третьего состояния. При наличии обмена сигнал *DMAK* появится только по его окончании.&lt;br /&gt;
&lt;br /&gt;
Временные диаграммы адресного чтения и адресной записи с перехватом сопроцессором обменов с памятью представлены на рис. *22, 23* . Обмен с перехватом происходит при A31 = &amp;quot;0&amp;quot;, A30 = &amp;quot;1&amp;quot;. О том, что микросхема сопроцессора начинает обмен с памятью, свидетельствует сигнал *ACTR* . Приняв асинхронно этот сигнал, процессор переводит выход *MAS* в третье состояние, предоставляя возможность сопроцессору выставить активный низкий уровень *MAS*спрц и далее сопроцессор читает данные из памяти или записывает данные в память также, как выполняет эти процедуры процессор. При записи с перехватом выходы AD(0-31) процессора переводятся в третье состояние по окончании адреса в низкой фазе· *CLC* и выходят из третьего состояния (подброс в &amp;quot;1&amp;quot;) по окончании низкого уровня на шине *MDS* .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic22.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic23.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Чтение-модификация-запись с перехватом&amp;quot; представлена на рис. *24*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic24.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойное адресное чтение&amp;quot; представлено на рис. *25*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic25.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временная диаграмма процедуры &amp;quot;Двойная запись&amp;quot; представлена на рис. *26*.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic26.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Двойное чтение и запись выполняются при обменах с четверными словами.&lt;br /&gt;
&lt;br /&gt;
На рис. *27-30* представлены временные диаграммы различных обменов с внешними и внутренними сигналами процессора.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic27.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic28.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic29.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic30.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
К внутренним сигналам процессора относятся:&lt;br /&gt;
&lt;br /&gt;
* WBMC  - запись в буфер микрокоманд;&lt;br /&gt;
* WMCE  - запись в регистр микрокоманд;&lt;br /&gt;
* NRFW  - сигнал записи поля чтения;&lt;br /&gt;
* SRDI  - сигнал чтения источника;&lt;br /&gt;
* SWT2  - сигнал записи в приемник;&lt;br /&gt;
* WTWA  - запись в регистр виртуального адреса;&lt;br /&gt;
* WTPA  - запись в регистр физического адреса;&lt;br /&gt;
* ADRE  - сигнал разрешения выдачи адреса в системную магистраль AD(0-31);&lt;br /&gt;
* DTIE  - сигнал приема команд и данных на внутреннюю магистраль MD(0-31);&lt;br /&gt;
* WCE   - сигнал записи в буферные регистры команд;&lt;br /&gt;
* WTBDR - сигнал записи в буферные регистры данных;&lt;br /&gt;
* DTOE  - сигнал выдачи данных в системную магистраль AD(0-31) при записи;&lt;br /&gt;
* DATL  - сигнал выдачи данных с выходного буферного регистра данных во внутреннюю магистраль MD(0-31).&lt;br /&gt;
&lt;br /&gt;
1.10.2. Идентификаторы обменов&lt;br /&gt;
&lt;br /&gt;
Старший байт физического адреса содержит идентификаторы обменов. В таблицах, приведенных ниже, даны логические значения кодов и электрические уровни на магистрали AD .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |&lt;br /&gt;
+----+----+----+----+----+----+----+----+&lt;br /&gt;
|         |         |                   |&lt;br /&gt;
| Направ- | Формат  |    Код обмена     |&lt;br /&gt;
| ление   | данных  |                   |&lt;br /&gt;
| обмена  |         |                   |&lt;br /&gt;
+---------+---------+-------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.1. Направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 31 разряд            | 30 разряд            | Направление обмена            |&lt;br /&gt;
+------------+---------+------------+---------+                               |&lt;br /&gt;
| логические | уровень | логические | уровень |                               |&lt;br /&gt;
| значения   |         | значения   |         |                               |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Основная память, регист-      |&lt;br /&gt;
|            |         |            |         | ры внешних устройств          |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Основная память, с            |&lt;br /&gt;
|            |         |            |         | перехватом магистрали         |&lt;br /&gt;
|            |         |            |         | сопроцессором                 |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Внутренние регистры           |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Системная память              |&lt;br /&gt;
+------------+---------+------------+---------+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.2. Формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 29 разряд            | 28 разряд            | Формат данных    |&lt;br /&gt;
+------------+---------+------------+---------+                  |&lt;br /&gt;
| логические | уровень | логические | уровень |                  |&lt;br /&gt;
| значения   |         | значения   |         |                  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 0          | высокий | Двойное слово    |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 0          | высокий | 1          | низкий  | Слово            |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 0          | высокий | Четверное слово  |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
| 1          | низкий  | 1          | низкий  | Байт             |&lt;br /&gt;
+------------+---------+------------+---------+------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.10.2.3. Код обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 27 разряд     | 26 разряд     | 25 разряд     | 24 разряд     | Обмен     |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+           |&lt;br /&gt;
| лог. | уровень| лог. | уровень| лог. | уровень| лог. | уровень|           |&lt;br /&gt;
| знач |        | знач |        | знач |        | знач |        |           |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | данных    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 1    | низкий | X    | X      | 0    | высокий| 1    | низкий | Чтение    |&lt;br /&gt;
|      |        |      |        |      |        |      |        | команд    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 0    | высокий| Запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
| 0    | высокий| X    | X      | 1    | низкий | 1    | низкий | Чтение-   |&lt;br /&gt;
|      |        |      |        |      |        |      |        | модифика- |&lt;br /&gt;
|      |        |      |        |      |        |      |        | ция -     |&lt;br /&gt;
|      |        |      |        |      |        |      |        | запись    |&lt;br /&gt;
+------+--------+------+--------+------+--------+------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где X - безразличное значение, остальные комбинации 24-27 разрядов - резервные.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных (БРД)           | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4236</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4236"/>
		<updated>2026-04-16T14:36:41Z</updated>

		<summary type="html">&lt;p&gt;Panther: 1.9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.8. Основные параметры прерываний и исключительных состояний ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Векторы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Переход на подпрограммы обслуживания особых ситуаций осуществляется с помощью специальных векторов, которые представляют собой длинные слова, интерпретируемые следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) Биты &amp;lt;1:0&amp;gt; содержат интерпретируемый код:&lt;br /&gt;
&lt;br /&gt;
* 0 - обслужить событие через стек ядра. Если работа уже выполняется через стек прерываний, то обслужить событие через стек прерываний.&lt;br /&gt;
* 1 - обслужить событие через стек прерываний. Если это событие является исключительным состоянием, то IPL повышается до 1F;&lt;br /&gt;
* 2 - обслужить событие в перезаписываемой управляющей памяти. Если эта память не используется, то процессор переходит на команду останова HALT;&lt;br /&gt;
* 3 - процессор переходит на HALT.&lt;br /&gt;
&lt;br /&gt;
2) Биты &amp;lt;31:2&amp;gt; содержат виртуальный адрес подпрограммы обслуживания - для кодов 0 и 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Системный управляющий блок (SCB).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все векторы обслуживания прерываний и исключительных состояний находятся в системном управляющем блоке ( SCB - *System Control Block* ), который представляет собой две смежных страницы памяти. Физический адрес первой страницы содержится в привилегированном регистре - базе системного управляющего блока SCBB ( *SCB base* ).&lt;br /&gt;
&lt;br /&gt;
Векторы устройств на *UNIBUS* находятся во второй странице, адрес которой получается добавлением к адресу, содержащемуся в SCBB, константы (200)₁₆. Разрешенными для этих устройств считаются только векторы (200-3FC)₁₆.&lt;br /&gt;
&lt;br /&gt;
Основные параметры прерываний и исключительных состояний приведены в табл.5.&lt;br /&gt;
&lt;br /&gt;
Таблица 5&lt;br /&gt;
&lt;br /&gt;
Таблица основных параметров особых ситуаций&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| Наименование особых  | Тип        | Уровень приори-  | Вектор | Источник  | Код  | Параметры, загру-  |&lt;br /&gt;
| ситуаций             | ситуации   | тета прерывания  | 16     | (а/МП)*   | 16   | жаемые в стек      |&lt;br /&gt;
|                      |            | IPL_16           |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 1. Машинный сбой     | Прекращение| 1F**             | 04     | Контроллер|  6?  | См.Примечание 1    | &amp;lt;Неразборчиво, 4 зачеркнуто, исправлено на 6 или 8&amp;gt;&lt;br /&gt;
|                      | / ловушка  |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 2. Недостоверный стек| Прекращение| 1F**             | 08     | Процессор |  2   | РНК***, PSL        | &amp;lt;D зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| ядра                 |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 3. Недостоверный стек| Прекращение| 1F**             | -      | Процессор |  2   | РНК, PSL и причи-  | &amp;lt;1 зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| прерываний           |            |                  |        | (а)       |      | на останова оста-  |&lt;br /&gt;
|                      |            |                  |        |           |      | ются на регистрах  |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 4. Сбой питания      | Прерывание | 1E               | 0C     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 5. Резервная/привиле-| Нарушение  | -                | 10     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| гированная команда   |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 6. Резервная команда | Нарушение  | -                | 14     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| пользователя         |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 7. Резервный операнд | Нарушение/ | -                | 18     | Процессор | 7    | РНК, PSL           | &amp;lt;E зачеркнуто, исправлено на 7&amp;gt;&lt;br /&gt;
|                      | прекращение|                  |        | (а/МП)    |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 8. Резервный метод   | Нарушение  | -                | 10C    | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| адресации            |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 9. Нарушение управле-| Нарушение  | -                | 20     | Процессор |  4   | См.Примечание 2    | &amp;lt;2 зачеркнуто, исправлено на 4&amp;gt;&lt;br /&gt;
| ния доступом         |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 10. Запрет трансляции| Нарушение  | -                | 24     | Процессор |  5   | См.Примечание 2    | &amp;lt;3 зачеркнуто, исправлено на 5&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 11. Трассировка      | Нарушение  | -                | 28     | Процессор |  E   | РНК, PSL           | &amp;lt;7 зачеркнуто, исправлено на E&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 12. Команда ВРТ      | Нарушение  | -                | 2C     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
|                      |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 13. Арифметические   | Ловушка    | -                | 34     | Процессор |8-A   | См.Примечание 3    | &amp;lt;B зачеркнуто, исправлено на A&amp;gt;&lt;br /&gt;
| ловушки              |            |                  |        | (а/МП)    |нрзб,A|                    | &amp;lt;неразборчиво&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 14. Команды:  СНМК   | Ловушка    | -                | 40     | Процессор.| -    | См.Примечание 4    |&lt;br /&gt;
|               СНМЕ   |            |                  | 44     | (МП)      |      |                    |&lt;br /&gt;
|               СНМS   |            |                  | 48     |           |      |                    |&lt;br /&gt;
|               СНМИ   |            |                  | 4C     |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 15. Зависание по     | Прерывание | 1D               | 60     | Контроллер| C    | PC, PSL            |&lt;br /&gt;
| записи в память      |            |                  |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 16. Исправимые ошибки| Прерывание | 1A               | 54     | Контроллер| C    | PC,PSL             |&lt;br /&gt;
| памяти               |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 17. Таймер           | Прерывание | 18               | C0     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 18. Консольный       | Прерывание | 14               | F8     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (приемник)  |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 19. Консольный       | Прерывание | 14               | FC     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (передатчик)|            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 20. Программные      | Прерывание | 1...F            | 84...BC| Адаптер   | D?   | PC, PSL            |  &amp;lt;&amp;quot;-&amp;quot; исправлено на D?&amp;gt;&lt;br /&gt;
| прерывания           |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 21. Прерывания       | Прерывание | 14-17            |200-3FC | Адаптер   |      | PC, PSL            |  &amp;lt;5-6 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| устройств            |            |                  |        | (а)       | D    |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - аппаратный/микропрограммный характер соответствующего события;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - для этих событий IPL = 1F, если 1:0 разряды вектора равны 1;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;***&#039;&#039;&#039; - РНК - регистр начала команды. Он указывает на код операции команды, при выполнении которой произошло нарушение или прекращение.&lt;br /&gt;
&lt;br /&gt;
П р и м е ч а н и я  к табл.5:&lt;br /&gt;
&lt;br /&gt;
1. При машинном сбое в стеке сохраняются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Параметр длины (равен 28₁₆).&lt;br /&gt;
* (SP)+4   Код ошибки (для ошибок памяти, например, равен 2).&lt;br /&gt;
* (SP)+8   Регистр виртуального адреса (РКВА).&lt;br /&gt;
* (SP)+C   PC во время сбоя.&lt;br /&gt;
* (SP)+10  Регистр данных памяти (MDR).&lt;br /&gt;
* (SP)+14  Сохраненный регистр режима ( SMR).&lt;br /&gt;
* (SP)+18  Регистр зависания по чтению-модификации-записи (RLTO).&lt;br /&gt;
* (SP)+1C  Регистр групповой четности буфера трансляции (TBGPR).&lt;br /&gt;
* (SP)+20  Регистр ошибок КЭШ-памяти (CAER).&lt;br /&gt;
* (SP)+24  Регистр ошибок шины (BER).&lt;br /&gt;
* (SP)+28  Регистр суммарных ошибок при машинном сбое (MCESR).&lt;br /&gt;
* (SP)+2C  PC, указывающий на код операции.&lt;br /&gt;
* (SP)+30  PSL.&lt;br /&gt;
&lt;br /&gt;
2. При исключительных состояниях от диспетчера памяти в стеке сохраняются:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Регистр суммарных ошибок диспетчера памяти.&lt;br /&gt;
* (SP)+4   Виртуальный адрес в странице нарушения (РКВА).&lt;br /&gt;
* (ST)+8   РНК.&lt;br /&gt;
* (SP)+C   PSL.&lt;br /&gt;
&lt;br /&gt;
3. При арифметических ловушках в стеке, кроме PC, также сохраняется код арифметической ловушки, который имеет следующие значения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Код     Тип арифметической ловушки&lt;br /&gt;
&lt;br /&gt;
      1       Целочисленное переполнение&lt;br /&gt;
      2       Целочисленное деление на 0&lt;br /&gt;
      3       Плавающее  переполнение&lt;br /&gt;
      4       Плавающее/десятичное деление на 0&lt;br /&gt;
      5       Плавающее обнуление&lt;br /&gt;
      6       Десятичное переполнение&lt;br /&gt;
      7       Диапазон приписки&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. При выполнении команд смены режима в стек, кроме PC, PSL загружается операнд команды ( *code* ) с расширенным знаком.&lt;br /&gt;
&lt;br /&gt;
Вся аппаратура, связанная с обработкой прерываний и исключительных состояний, располагается в контроллере памяти, адаптере магистрали и в процессоре.&lt;br /&gt;
&lt;br /&gt;
Контроллер фиксирует аппаратные ошибки, связанные с работой памяти и сообщает об этом процессору с помощью сигналов *INRC* (прерывание контроллера) и MCH (машинный сбой). Адаптер фиксирует все остальные прерывания, проводит разбор приоритетов между ними и сообщает процессору о наличии запроса прерывания сигналом *INRA* (прерывание адаптера). Кроме этого в адаптере находится часть внутренних регистров системы, которые связаны с обработкой прерываний.&lt;br /&gt;
&lt;br /&gt;
В процессоре находится, собственно блок прерываний (БПР), который наряду с прерываниями контроллера и адаптера, обрабатывает все аппаратные исключительные состояния, проводит окончательный разбор приоритетов и формирует код особой ситуации, с помощью которого осуществляется формирование начального адреса соответствующей микропрограммы обработки.&lt;br /&gt;
&lt;br /&gt;
== 1.9. Блок прерываний БПР ==&lt;br /&gt;
&lt;br /&gt;
1.9.1. На рис.8 приведена структурная схема БПР процессора. Ниже перечислены основные блоки, входы и выходы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic8.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1) БСБПР - блок синхронизации БПР.&lt;br /&gt;
&lt;br /&gt;
2) БРП   - блок разбора приоритетов.&lt;br /&gt;
&lt;br /&gt;
3) ДШРИП - дешифратор сброса источника прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
4) РИП   - регистр источников прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
5) Входы:&lt;br /&gt;
&lt;br /&gt;
* КК    - признак конца команды;&lt;br /&gt;
* PA    - выход элемента ИЛИ, на входах которого собраны все нарушения и прекращения;&lt;br /&gt;
* 1T    - выход элемента ИЛИ, на входах которого собраны все прерывания и ловушки;&lt;br /&gt;
* 5CN   - запрос недостоверного стека ядра;&lt;br /&gt;
* SINN - запрос недостоверного стека прерываний;&lt;br /&gt;
* НУД   - запрос нарушения управления доступом;&lt;br /&gt;
* ЗТ    - запрос запрета трансляции;&lt;br /&gt;
* MCH   - запрос машинного сбоя;&lt;br /&gt;
* REZ   - запрос резервного операнда;&lt;br /&gt;
* INRA  - запрос адаптера;&lt;br /&gt;
* HALT  - запрос останова;&lt;br /&gt;
* T     - запрос трассировки;&lt;br /&gt;
* FUZ   - запрос ловушки плавающего недополнения;&lt;br /&gt;
* DVV   - запрос ловушки десятичного переполнения;&lt;br /&gt;
* IVV   - запрос ловушки целочисленного переполнения;&lt;br /&gt;
* FVV   - запрос ловушки плавающего переполнения;&lt;br /&gt;
* INRC  - запрос прерывания контроллера;&lt;br /&gt;
* РИП   - сигнал сброса источника прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Выходы:&lt;br /&gt;
&lt;br /&gt;
* RA        - сигнал запроса сбоя;&lt;br /&gt;
* IRQ       - сигнал запроса прерывания;&lt;br /&gt;
* ЗРПП      - сигнал записи регистра признака прерывания и исключительного состояния (РПП);&lt;br /&gt;
* ЗРИП      - сигнал записи РИП;&lt;br /&gt;
* РПП(0-3)  - код прерываний и исключительных состояний;&lt;br /&gt;
* 5РИП      - сигнал сброса конкретного источника (в соответствии с кодом).&lt;br /&gt;
&lt;br /&gt;
1.9.2. Алгоритм работы БПР&lt;br /&gt;
&lt;br /&gt;
При поступлении в БПР сигналов прерываний - ловушек или сигналов нарушений-прекращений запускается БСБПР - по сигналу IT или PA соответственно. PA может возникать в любой момент выполнения команды, IT возникает лишь после окончания команды, перед выполнением следующей команды. БСБПР вырабатывает сигналы RA или IRQ , которые поступают на ПЛМ ДШК, ЗРИП, по которому производится запись в РИП всех имеющихся к этому времени запросов. В БРП, в соответствии с самым высокоприоритетным запросом, формируется код, который поступает на входы РПП (находящегося в блоке управления ПЗУ) и на входы ДШ КИП для последующего сброса источника запроса по сигналу РИП&lt;br /&gt;
&lt;br /&gt;
Запись в РПП производится сигналом ЗРПП, также выработанным БСБПА.&lt;br /&gt;
&lt;br /&gt;
Содержимое РПП затем используется микрокомандой перехода по регистру для выхода на конкретные микропрограммы обработки прерываний и исключительных состояний.&lt;br /&gt;
&lt;br /&gt;
В табл. 5 в графе &amp;quot;Код₁₆&amp;quot; приведены шестнадцатеричные коды аппаратных особых ситуаций.&lt;br /&gt;
&lt;br /&gt;
Приоритетность между прерываниями и ловушками в БПР принята следующая (в порядке убывания приоритетов):&lt;br /&gt;
&lt;br /&gt;
# Арифметические ловушки.&lt;br /&gt;
# Прерывания контроллера.&lt;br /&gt;
# Прерывания адаптера.&lt;br /&gt;
#  Ловушка трассы.&lt;br /&gt;
&lt;br /&gt;
На рис. 9 приведена временная диаграмма работы БПР.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic9.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.9.3. Алгоритм обработки прерываний и исключительных состояний&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки ситуаций сводится, в основном, к двум действиям:&lt;br /&gt;
&lt;br /&gt;
1) сохранению текущего состояния (PC(РНК), *PSL* , параметры (если нужно));&lt;br /&gt;
&lt;br /&gt;
2) формированию нового состояния (загрузка PC начальным адресом программы обработки особой ситуации, формирование нового *PSL* ).&lt;br /&gt;
&lt;br /&gt;
Более подробно эти два действия, и другие описаны в алгоритме обработки прерываний и исключительных состояний на рис.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic10.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных (БРД)           | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4235</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4235"/>
		<updated>2026-04-16T13:56:14Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* 1.7. Различия между прерываниями и исключительными состояниями */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.8. Основные параметры прерываний и исключительных состояний ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Векторы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Переход на подпрограммы обслуживания особых ситуаций осуществляется с помощью специальных векторов, которые представляют собой длинные слова, интерпретируемые следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) Биты &amp;lt;1:0&amp;gt; содержат интерпретируемый код:&lt;br /&gt;
&lt;br /&gt;
* 0 - обслужить событие через стек ядра. Если работа уже выполняется через стек прерываний, то обслужить событие через стек прерываний.&lt;br /&gt;
* 1 - обслужить событие через стек прерываний. Если это событие является исключительным состоянием, то IPL повышается до 1F;&lt;br /&gt;
* 2 - обслужить событие в перезаписываемой управляющей памяти. Если эта память не используется, то процессор переходит на команду останова HALT;&lt;br /&gt;
* 3 - процессор переходит на HALT.&lt;br /&gt;
&lt;br /&gt;
2) Биты &amp;lt;31:2&amp;gt; содержат виртуальный адрес подпрограммы обслуживания - для кодов 0 и 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Системный управляющий блок (SCB).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все векторы обслуживания прерываний и исключительных состояний находятся в системном управляющем блоке ( SCB - *System Control Block* ), который представляет собой две смежных страницы памяти. Физический адрес первой страницы содержится в привилегированном регистре - базе системного управляющего блока SCBB ( *SCB base* ).&lt;br /&gt;
&lt;br /&gt;
Векторы устройств на *UNIBUS* находятся во второй странице, адрес которой получается добавлением к адресу, содержащемуся в SCBB, константы (200)₁₆. Разрешенными для этих устройств считаются только векторы (200-3FC)₁₆.&lt;br /&gt;
&lt;br /&gt;
Основные параметры прерываний и исключительных состояний приведены в табл.5.&lt;br /&gt;
&lt;br /&gt;
Таблица 5&lt;br /&gt;
&lt;br /&gt;
Таблица основных параметров особых ситуаций&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| Наименование особых  | Тип        | Уровень приори-  | Вектор | Источник  | Код  | Параметры, загру-  |&lt;br /&gt;
| ситуаций             | ситуации   | тета прерывания  | 16     | (а/МП)*   | 16   | жаемые в стек      |&lt;br /&gt;
|                      |            | IPL_16           |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 1. Машинный сбой     | Прекращение| 1F**             | 04     | Контроллер|  6?  | См.Примечание 1    | &amp;lt;Неразборчиво, 4 зачеркнуто, исправлено на 6 или 8&amp;gt;&lt;br /&gt;
|                      | / ловушка  |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 2. Недостоверный стек| Прекращение| 1F**             | 08     | Процессор |  2   | РНК***, PSL        | &amp;lt;D зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| ядра                 |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 3. Недостоверный стек| Прекращение| 1F**             | -      | Процессор |  2   | РНК, PSL и причи-  | &amp;lt;1 зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| прерываний           |            |                  |        | (а)       |      | на останова оста-  |&lt;br /&gt;
|                      |            |                  |        |           |      | ются на регистрах  |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 4. Сбой питания      | Прерывание | 1E               | 0C     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 5. Резервная/привиле-| Нарушение  | -                | 10     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| гированная команда   |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 6. Резервная команда | Нарушение  | -                | 14     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| пользователя         |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 7. Резервный операнд | Нарушение/ | -                | 18     | Процессор | 7    | РНК, PSL           | &amp;lt;E зачеркнуто, исправлено на 7&amp;gt;&lt;br /&gt;
|                      | прекращение|                  |        | (а/МП)    |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 8. Резервный метод   | Нарушение  | -                | 10C    | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| адресации            |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 9. Нарушение управле-| Нарушение  | -                | 20     | Процессор |  4   | См.Примечание 2    | &amp;lt;2 зачеркнуто, исправлено на 4&amp;gt;&lt;br /&gt;
| ния доступом         |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 10. Запрет трансляции| Нарушение  | -                | 24     | Процессор |  5   | См.Примечание 2    | &amp;lt;3 зачеркнуто, исправлено на 5&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 11. Трассировка      | Нарушение  | -                | 28     | Процессор |  E   | РНК, PSL           | &amp;lt;7 зачеркнуто, исправлено на E&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 12. Команда ВРТ      | Нарушение  | -                | 2C     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
|                      |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 13. Арифметические   | Ловушка    | -                | 34     | Процессор |8-A   | См.Примечание 3    | &amp;lt;B зачеркнуто, исправлено на A&amp;gt;&lt;br /&gt;
| ловушки              |            |                  |        | (а/МП)    |нрзб,A|                    | &amp;lt;неразборчиво&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 14. Команды:  СНМК   | Ловушка    | -                | 40     | Процессор.| -    | См.Примечание 4    |&lt;br /&gt;
|               СНМЕ   |            |                  | 44     | (МП)      |      |                    |&lt;br /&gt;
|               СНМS   |            |                  | 48     |           |      |                    |&lt;br /&gt;
|               СНМИ   |            |                  | 4C     |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 15. Зависание по     | Прерывание | 1D               | 60     | Контроллер| C    | PC, PSL            |&lt;br /&gt;
| записи в память      |            |                  |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 16. Исправимые ошибки| Прерывание | 1A               | 54     | Контроллер| C    | PC,PSL             |&lt;br /&gt;
| памяти               |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 17. Таймер           | Прерывание | 18               | C0     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 18. Консольный       | Прерывание | 14               | F8     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (приемник)  |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 19. Консольный       | Прерывание | 14               | FC     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (передатчик)|            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 20. Программные      | Прерывание | 1...F            | 84...BC| Адаптер   | D?   | PC, PSL            |  &amp;lt;&amp;quot;-&amp;quot; исправлено на D?&amp;gt;&lt;br /&gt;
| прерывания           |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 21. Прерывания       | Прерывание | 14-17            |200-3FC | Адаптер   |      | PC, PSL            |  &amp;lt;5-6 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| устройств            |            |                  |        | (а)       | D    |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - аппаратный/микропрограммный характер соответствующего события;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - для этих событий IPL = 1F, если 1:0 разряды вектора равны 1;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;***&#039;&#039;&#039; - РНК - регистр начала команды. Он указывает на код операции команды, при выполнении которой произошло нарушение или прекращение.&lt;br /&gt;
&lt;br /&gt;
П р и м е ч а н и я  к табл.5:&lt;br /&gt;
&lt;br /&gt;
1. При машинном сбое в стеке сохраняются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Параметр длины (равен 28₁₆).&lt;br /&gt;
* (SP)+4   Код ошибки (для ошибок памяти, например, равен 2).&lt;br /&gt;
* (SP)+8   Регистр виртуального адреса (РКВА).&lt;br /&gt;
* (SP)+C   PC во время сбоя.&lt;br /&gt;
* (SP)+10  Регистр данных памяти (MDR).&lt;br /&gt;
* (SP)+14  Сохраненный регистр режима ( SMR).&lt;br /&gt;
* (SP)+18  Регистр зависания по чтению-модификации-записи (RLTO).&lt;br /&gt;
* (SP)+1C  Регистр групповой четности буфера трансляции (TBGPR).&lt;br /&gt;
* (SP)+20  Регистр ошибок КЭШ-памяти (CAER).&lt;br /&gt;
* (SP)+24  Регистр ошибок шины (BER).&lt;br /&gt;
* (SP)+28  Регистр суммарных ошибок при машинном сбое (MCESR).&lt;br /&gt;
* (SP)+2C  PC, указывающий на код операции.&lt;br /&gt;
* (SP)+30  PSL.&lt;br /&gt;
&lt;br /&gt;
2. При исключительных состояниях от диспетчера памяти в стеке сохраняются:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Регистр суммарных ошибок диспетчера памяти.&lt;br /&gt;
* (SP)+4   Виртуальный адрес в странице нарушения (РКВА).&lt;br /&gt;
* (ST)+8   РНК.&lt;br /&gt;
* (SP)+C   PSL.&lt;br /&gt;
&lt;br /&gt;
3. При арифметических ловушках в стеке, кроме PC, также сохраняется код арифметической ловушки, который имеет следующие значения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Код     Тип арифметической ловушки&lt;br /&gt;
&lt;br /&gt;
      1       Целочисленное переполнение&lt;br /&gt;
      2       Целочисленное деление на 0&lt;br /&gt;
      3       Плавающее  переполнение&lt;br /&gt;
      4       Плавающее/десятичное деление на 0&lt;br /&gt;
      5       Плавающее обнуление&lt;br /&gt;
      6       Десятичное переполнение&lt;br /&gt;
      7       Диапазон приписки&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. При выполнении команд смены режима в стек, кроме PC, PSL загружается операнд команды ( *code* ) с расширенным знаком.&lt;br /&gt;
&lt;br /&gt;
Вся аппаратура, связанная с обработкой прерываний и исключительных состояний, располагается в контроллере памяти, адаптере магистрали и в процессоре.&lt;br /&gt;
&lt;br /&gt;
Контроллер фиксирует аппаратные ошибки, связанные с работой памяти и сообщает об этом процессору с помощью сигналов *INRC* (прерывание контроллера) и MCH (машинный сбой). Адаптер фиксирует все остальные прерывания, проводит разбор приоритетов между ними и сообщает процессору о наличии запроса прерывания сигналом *INRA* (прерывание адаптера). Кроме этого в адаптере находится часть внутренних регистров системы, которые связаны с обработкой прерываний.&lt;br /&gt;
&lt;br /&gt;
В процессоре находится, собственно блок прерываний (БПР), который наряду с прерываниями контроллера и адаптера, обрабатывает все аппаратные исключительные состояния, проводит окончательный разбор приоритетов и формирует код особой ситуации, с помощью которого осуществляется формирование начального адреса соответствующей микропрограммы обработки.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных (БРД)           | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4234</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4234"/>
		<updated>2026-04-16T13:55:58Z</updated>

		<summary type="html">&lt;p&gt;Panther: 1.8&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.8. Основные параметры прерываний и исключительных состояний ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Векторы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Переход на подпрограммы обслуживания особых ситуаций осуществляется с помощью специальных векторов, которые представляют собой длинные слова, интерпретируемые следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) Биты &amp;lt;1:0&amp;gt; содержат интерпретируемый код:&lt;br /&gt;
&lt;br /&gt;
* 0 - обслужить событие через стек ядра. Если работа уже выполняется через стек прерываний, то обслужить событие через стек прерываний.&lt;br /&gt;
* 1 - обслужить событие через стек прерываний. Если это событие является исключительным состоянием, то IPL повышается до 1F;&lt;br /&gt;
* 2 - обслужить событие в перезаписываемой управляющей памяти. Если эта память не используется, то процессор переходит на команду останова HALT;&lt;br /&gt;
* 3 - процессор переходит на HALT.&lt;br /&gt;
&lt;br /&gt;
2) Биты &amp;lt;31:2&amp;gt; содержат виртуальный адрес подпрограммы обслуживания - для кодов 0 и 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Системный управляющий блок (SCB).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Все векторы обслуживания прерываний и исключительных состояний находятся в системном управляющем блоке ( SCB - *System Control Block* ), который представляет собой две смежных страницы памяти. Физический адрес первой страницы содержится в привилегированном регистре - базе системного управляющего блока SCBB ( *SCB base* ).&lt;br /&gt;
&lt;br /&gt;
Векторы устройств на *UNIBUS* находятся во второй странице, адрес которой получается добавлением к адресу, содержащемуся в SCBB, константы (200)₁₆. Разрешенными для этих устройств считаются только векторы (200-3FC)₁₆.&lt;br /&gt;
&lt;br /&gt;
Основные параметры прерываний и исключительных состояний приведены в табл.5.&lt;br /&gt;
&lt;br /&gt;
Таблица 5&lt;br /&gt;
&lt;br /&gt;
Таблица основных параметров особых ситуаций&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| Наименование особых  | Тип        | Уровень приори-  | Вектор | Источник  | Код  | Параметры, загру-  |&lt;br /&gt;
| ситуаций             | ситуации   | тета прерывания  | 16     | (а/МП)*   | 16   | жаемые в стек      |&lt;br /&gt;
|                      |            | IPL_16           |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 1. Машинный сбой     | Прекращение| 1F**             | 04     | Контроллер|  6?  | См.Примечание 1    | &amp;lt;Неразборчиво, 4 зачеркнуто, исправлено на 6 или 8&amp;gt;&lt;br /&gt;
|                      | / ловушка  |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 2. Недостоверный стек| Прекращение| 1F**             | 08     | Процессор |  2   | РНК***, PSL        | &amp;lt;D зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| ядра                 |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 3. Недостоверный стек| Прекращение| 1F**             | -      | Процессор |  2   | РНК, PSL и причи-  | &amp;lt;1 зачеркнуто, исправлено на 2&amp;gt;&lt;br /&gt;
| прерываний           |            |                  |        | (а)       |      | на останова оста-  |&lt;br /&gt;
|                      |            |                  |        |           |      | ются на регистрах  |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 4. Сбой питания      | Прерывание | 1E               | 0C     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 5. Резервная/привиле-| Нарушение  | -                | 10     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| гированная команда   |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 6. Резервная команда | Нарушение  | -                | 14     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| пользователя         |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 7. Резервный операнд | Нарушение/ | -                | 18     | Процессор | 7    | РНК, PSL           | &amp;lt;E зачеркнуто, исправлено на 7&amp;gt;&lt;br /&gt;
|                      | прекращение|                  |        | (а/МП)    |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 8. Резервный метод   | Нарушение  | -                | 10C    | Процессор | -    | РНК, PSL           |&lt;br /&gt;
| адресации            |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 9. Нарушение управле-| Нарушение  | -                | 20     | Процессор |  4   | См.Примечание 2    | &amp;lt;2 зачеркнуто, исправлено на 4&amp;gt;&lt;br /&gt;
| ния доступом         |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 10. Запрет трансляции| Нарушение  | -                | 24     | Процессор |  5   | См.Примечание 2    | &amp;lt;3 зачеркнуто, исправлено на 5&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 11. Трассировка      | Нарушение  | -                | 28     | Процессор |  E   | РНК, PSL           | &amp;lt;7 зачеркнуто, исправлено на E&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 12. Команда ВРТ      | Нарушение  | -                | 2C     | Процессор | -    | РНК, PSL           |&lt;br /&gt;
|                      |            |                  |        | (МП)      |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 13. Арифметические   | Ловушка    | -                | 34     | Процессор |8-A   | См.Примечание 3    | &amp;lt;B зачеркнуто, исправлено на A&amp;gt;&lt;br /&gt;
| ловушки              |            |                  |        | (а/МП)    |нрзб,A|                    | &amp;lt;неразборчиво&amp;gt;&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 14. Команды:  СНМК   | Ловушка    | -                | 40     | Процессор.| -    | См.Примечание 4    |&lt;br /&gt;
|               СНМЕ   |            |                  | 44     | (МП)      |      |                    |&lt;br /&gt;
|               СНМS   |            |                  | 48     |           |      |                    |&lt;br /&gt;
|               СНМИ   |            |                  | 4C     |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 15. Зависание по     | Прерывание | 1D               | 60     | Контроллер| C    | PC, PSL            |&lt;br /&gt;
| записи в память      |            |                  |        |           |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 16. Исправимые ошибки| Прерывание | 1A               | 54     | Контроллер| C    | PC,PSL             |&lt;br /&gt;
| памяти               |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 17. Таймер           | Прерывание | 18               | C0     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
|                      |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 18. Консольный       | Прерывание | 14               | F8     | Адаптер   |  D   | PC,PSL             | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (приемник)  |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 19. Консольный       | Прерывание | 14               | FC     | Адаптер   |  D   | PC, PSL            | &amp;lt;5 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| терминал (передатчик)|            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 20. Программные      | Прерывание | 1...F            | 84...BC| Адаптер   | D?   | PC, PSL            |  &amp;lt;&amp;quot;-&amp;quot; исправлено на D?&amp;gt;&lt;br /&gt;
| прерывания           |            |                  |        | (а)       |      |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
| 21. Прерывания       | Прерывание | 14-17            |200-3FC | Адаптер   |      | PC, PSL            |  &amp;lt;5-6 зачеркнуто, исправлено на D&amp;gt;&lt;br /&gt;
| устройств            |            |                  |        | (а)       | D    |                    |&lt;br /&gt;
+----------------------+------------+------------------+--------+-----------+------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - аппаратный/микропрограммный характер соответствующего события;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - для этих событий IPL = 1F, если 1:0 разряды вектора равны 1;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;***&#039;&#039;&#039; - РНК - регистр начала команды. Он указывает на код операции команды, при выполнении которой произошло нарушение или прекращение.&lt;br /&gt;
&lt;br /&gt;
П р и м е ч а н и я  к табл.5:&lt;br /&gt;
&lt;br /&gt;
1. При машинном сбое в стеке сохраняются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Параметр длины (равен 28₁₆).&lt;br /&gt;
* (SP)+4   Код ошибки (для ошибок памяти, например, равен 2).&lt;br /&gt;
* (SP)+8   Регистр виртуального адреса (РКВА).&lt;br /&gt;
* (SP)+C   PC во время сбоя.&lt;br /&gt;
* (SP)+10  Регистр данных памяти (MDR).&lt;br /&gt;
* (SP)+14  Сохраненный регистр режима ( SMR).&lt;br /&gt;
* (SP)+18  Регистр зависания по чтению-модификации-записи (RLTO).&lt;br /&gt;
* (SP)+1C  Регистр групповой четности буфера трансляции (TBGPR).&lt;br /&gt;
* (SP)+20  Регистр ошибок КЭШ-памяти (CAER).&lt;br /&gt;
* (SP)+24  Регистр ошибок шины (BER).&lt;br /&gt;
* (SP)+28  Регистр суммарных ошибок при машинном сбое (MCESR).&lt;br /&gt;
* (SP)+2C  PC, указывающий на код операции.&lt;br /&gt;
* (SP)+30  PSL.&lt;br /&gt;
&lt;br /&gt;
2. При исключительных состояниях от диспетчера памяти в стеке сохраняются:&lt;br /&gt;
&lt;br /&gt;
* (SP)     Регистр суммарных ошибок диспетчера памяти.&lt;br /&gt;
* (SP)+4   Виртуальный адрес в странице нарушения (РКВА).&lt;br /&gt;
* (ST)+8   РНК.&lt;br /&gt;
* (SP)+C   PSL.&lt;br /&gt;
&lt;br /&gt;
3. При арифметических ловушках в стеке, кроме PC, также сохраняется код арифметической ловушки, который имеет следующие значения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Код     Тип арифметической ловушки&lt;br /&gt;
&lt;br /&gt;
      1       Целочисленное переполнение&lt;br /&gt;
      2       Целочисленное деление на 0&lt;br /&gt;
      3       Плавающее  переполнение&lt;br /&gt;
      4       Плавающее/десятичное деление на 0&lt;br /&gt;
      5       Плавающее обнуление&lt;br /&gt;
      6       Десятичное переполнение&lt;br /&gt;
      7       Диапазон приписки&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. При выполнении команд смены режима в стек, кроме PC, PSL загружается операнд команды ( *code* ) с расширенным знаком.&lt;br /&gt;
&lt;br /&gt;
Вся аппаратура, связанная с обработкой прерываний и исключительных состояний, располагается в контроллере памяти, адаптере магистрали и в процессоре.&lt;br /&gt;
&lt;br /&gt;
Контроллер фиксирует аппаратные ошибки, связанные с работой памяти и сообщает об этом процессору с помощью сигналов *INRC* (прерывание контроллера) и MCH (машинный сбой). Адаптер фиксирует все остальные прерывания, проводит разбор приоритетов между ними и сообщает процессору о наличии запроса прерывания сигналом *INRA* (прерывание адаптера). Кроме этого в адаптере находится часть внутренних регистров системы, которые связаны с обработкой прерываний.&lt;br /&gt;
&lt;br /&gt;
В процессоре находится, собственно блок прерываний (БПР), который наряду с прерываниями контроллера и адаптера, обрабатывает все аппаратные исключительные состояния, проводит окончательный разбор приоритетов и формирует код особой ситуации, с помощью которого осуществляется формирование начального адреса соответствующей микропрограммы обработки.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных (БРД)           | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4233</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4233"/>
		<updated>2026-04-16T08:37:28Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* Регистры процессора */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных (БРД)           | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4232</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4232"/>
		<updated>2026-04-16T08:30:15Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* ФМК */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  1   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных                 | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4231</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4231"/>
		<updated>2026-04-16T08:28:38Z</updated>

		<summary type="html">&lt;p&gt;Panther: 1.7&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ==&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.7. Различия между прерываниями и исключительными состояниями ==&lt;br /&gt;
&lt;br /&gt;
В целом, по-своему влиянию на работу всей системы, прерывания и исключительные состояния очень похожи. Но существует ряд отличий между ними, которые можно свести к следующим:&lt;br /&gt;
&lt;br /&gt;
1) Исключительное состояние (синхронное событие) возникает при выполнении текущей команды, в то время как прерывание (асинхронное событие) возникает из-за чьей-либо активности в вычислительной системе и это действие может быть независимо от текущей команды.&lt;br /&gt;
&lt;br /&gt;
2) Исключительное состояние, как правило, обрабатывается в контексте процесса, в котором она возникла, в то время как прерывание обслуживается независимо от текущего выполняющегося процесса.&lt;br /&gt;
&lt;br /&gt;
3) IPL процессора обычно не изменяется, когда возникает исключительное состояние. При прерывании IPL всегда повышается.&lt;br /&gt;
&lt;br /&gt;
4) Подпрограммы, обслуживающие исключительные состояния, обычно работают со стеком процесса (стеком режима ядра - KSP), а подпрограммы, обслуживающие прерывания, со стеком процессора (стеком прерываний - ISP ).&lt;br /&gt;
&lt;br /&gt;
5) Разрешенные исключительные состояния всегда инициируются немедленно, независимо от IPL процессора, а прерывания откладываются до тех пор, пока IPL процессора не станет ниже IPL запрашивающего прерывания.&lt;br /&gt;
&lt;br /&gt;
6) Большинство исключительных состояний не может быть запрещено. Однако, если причина этого состояния возникает, когда эта ситуация запрещена, то инициация данного исключительного состояния не происходит даже после того, когда запрет отменяется. Если же возникает условие прерывания в тот момент, когда оно запрещено или IPL запроса меньше или равно IPL процессора, то данное прерывание в конечном итоге будет удовлетворено, как только возникнет подходящая ситуация, если условие прерывания еще существует.&lt;br /&gt;
&lt;br /&gt;
7) При прерывании поле PRM в PSL всегда устанавливается в режим ядра, а при исключительном состоянии в него переписывается поле CRM .&lt;br /&gt;
&lt;br /&gt;
8) Вследствие асинхронного характера условие прерывания всегда фиксируется аппаратно и переход на соответствующую микропрограмму обработки осуществляется с помощью аппаратных средств. Для исключительного состояния, наряду с таким способом перехода на микропрограмму обработки, возможен и чисто микропрограммный переход. Это связано с синхронностью исключительных состояний - можно заранее определить точки в микропрограммах, из которых возможен переход на микропрограмму обработки соответствующего исключительного состояния.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  I   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных                 | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4230</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4230"/>
		<updated>2026-04-16T08:26:19Z</updated>

		<summary type="html">&lt;p&gt;Panther: 1.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.6. Состояние процессора ===&lt;br /&gt;
&lt;br /&gt;
При обслуживании особых ситуаций состояние процессора должно быть сохранено для того, чтобы прерванный процесс мог нормально продолжиться. В основном это делается путем сохранения в стеке PC (который указывает либо на команду, которая выполнялась, либо на следующую) и *PSL* . PC и *PSL* в дальнейшем восстанавливаются по команде возврата из прерывания или исключительной ситуации ( *REI* ).&lt;br /&gt;
&lt;br /&gt;
Одной из главных характеристик текущего процесса или текущего состояния процессора является длинное слово состояния процессора. Это слово состоит из *processor status word* (PSW) - слова состояния процессора (разряды &amp;lt;0-15&amp;gt; PSL ), которое доступно пользователю и слово привилегированного состояния (разряды &amp;lt;16-31&amp;gt; PSL ), которое доступно привилегированному программному обеспечению. PSL приводится на рис. 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic7.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей PSL следующие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Разряды        Поле         Значение&lt;br /&gt;
&lt;br /&gt;
&amp;lt;3-0&amp;gt;          N,Z,V,C      Коды условий&lt;br /&gt;
&amp;lt;4&amp;gt;            T            Бит разрешения трассы&lt;br /&gt;
&amp;lt;5&amp;gt;            IV           Бит разрешения ловушки целочисленного переполнения&lt;br /&gt;
&amp;lt;6&amp;gt;            FU           Бит разрешения ловушки плавающего недополнения&lt;br /&gt;
&amp;lt;7&amp;gt;            DV           Бит разрешения ловушки десятичного переполнения&lt;br /&gt;
&amp;lt;15-8&amp;gt;         0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;20-16&amp;gt;        IPL          Уровень приоритета прерывания&lt;br /&gt;
&amp;lt;21&amp;gt;           0            Резерв, должен быть нуль&lt;br /&gt;
&amp;lt;23-22&amp;gt;        PRM          Режим предыдущего доступа (Previous access mode )&lt;br /&gt;
&amp;lt;25-24&amp;gt;        CRM          Режим текущего доступа (Current access mode )&lt;br /&gt;
&amp;lt;26&amp;gt;           IS           Бит использования стека прерываний (Interrupt stack )&lt;br /&gt;
&amp;lt;27&amp;gt;           FPD          Первая часть выполнена (First part done )&lt;br /&gt;
&amp;lt;29-28&amp;gt;        0            Резерв, должны быть нулями&lt;br /&gt;
&amp;lt;30&amp;gt;           TP           Запрос трассы&lt;br /&gt;
&amp;lt;31&amp;gt;           CM           Признак режима совместимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микропрограммная процедура обработки прерываний и исключительных состояний использует в основном поля *IS* , CRM и IPL, поэтому рассмотрим их подробнее:&lt;br /&gt;
&lt;br /&gt;
1) IS . Если IS = 1, то процессор работает со стеком прерываний. При этом необходимо, чтобы CRM = 0 и IPL &amp;gt; 0. Если IS = 0, то процессор работает со стеком, который определен полем CRM в PSL .&lt;br /&gt;
&lt;br /&gt;
2) CRM. Возможны следующие режимы доступа из текущего выполняемого процесса:&lt;br /&gt;
&lt;br /&gt;
* 0 - ядро ( *kernel* )&lt;br /&gt;
* 1 - исполнитель ( *executive* )&lt;br /&gt;
* 2 - супервизор ( *supervisor* )&lt;br /&gt;
* 3 - пользователь ( *user* )&lt;br /&gt;
&lt;br /&gt;
3) PRM. Это поле загружается из поля текущего режима при исключительных состояниях и командами СНМХ, сбрасывается прерываниями и восстанавливается командой REI.&lt;br /&gt;
&lt;br /&gt;
4) IPL . Текущий приоритет процессора меняется в пределах от 0 до 1F. Процессор будет разрешать прерывания только на уровнях больших, чем текущий уровень процессора.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  I   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных                 | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4229</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4229"/>
		<updated>2026-04-16T08:20:10Z</updated>

		<summary type="html">&lt;p&gt;Panther: /* 1.5. Прерывания и исключительные состояния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 4.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета прерываний&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|           П р е р ы в а н и я         | Уровень приоритета |&lt;br /&gt;
|                                       | прерывания IPL_16  |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Контроль аппаратных средств           |                    |&lt;br /&gt;
| Недействительность стека ядра         |        1F          |&lt;br /&gt;
| Недействительность стека прерываний   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Сбой питания                          |        1E          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        1D          |&lt;br /&gt;
| Ошибки процессора, памяти             |        1C          |&lt;br /&gt;
| или шины                          }   |        1B          |&lt;br /&gt;
|                                       |        1A          |&lt;br /&gt;
|                                       |        19          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер                                |        18          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        17          |&lt;br /&gt;
|                                       |        16          |&lt;br /&gt;
|                                       |        15          |&lt;br /&gt;
| Прерывания устройств              }   |        14          |&lt;br /&gt;
|                                       |        13          |&lt;br /&gt;
|                                       |        12          |&lt;br /&gt;
|                                       |        11          |&lt;br /&gt;
|                                       |        10          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| События математического обеспечения   |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0F          |&lt;br /&gt;
|                                       |        0E          |&lt;br /&gt;
| Р е з е р в                           |        0D          |&lt;br /&gt;
|                                       |        0C          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
|                                       |        0B          |&lt;br /&gt;
|                                   }   |        0A          |&lt;br /&gt;
| Драйверы устройств                    |        09          |&lt;br /&gt;
|                                       |        08          |&lt;br /&gt;
|                                       |                    |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Таймер процесса                       |        07          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Очередь AST                           |        06          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        05          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Почта ввода/вывода                    |        04          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Планировщик процесса                  |        03          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Передача AST                          |        02          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Резерв                                |        01          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
| Уровень пользовательского процесса    |        00          |&lt;br /&gt;
+---------------------------------------+--------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  I   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных                 | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4228</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4228"/>
		<updated>2026-04-16T08:17:05Z</updated>

		<summary type="html">&lt;p&gt;Panther: 1.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.5. Прерывания и исключительные состояния ==&lt;br /&gt;
&lt;br /&gt;
1.5.1. При работе системы в ней могут возникать особые ситуации, которые приводят к изменениям в текущем выполняемом процессе. При этом процессор выполняет два основных действия:&lt;br /&gt;
&lt;br /&gt;
# сохраняет информацию о текущем процессе (в основном, это делается путем занесения в стек счетчика команд ( *program counter* - PC) и длинного слова состояния процессора (*processor status longword* - PSL ) с целью последующего возобновления данного процесса);&lt;br /&gt;
# передает управление от потока команд текущего процесса к определенным участкам программного обеспечения для обслуживания возникших событий.&lt;br /&gt;
&lt;br /&gt;
Эти действия выполняются микропрограммно. Существует два основных типа подобных событий: прерывания ( *interrupt* ) и исключительные состояния ( *exceptions* ).&lt;br /&gt;
&lt;br /&gt;
Прерывания - это асинхронные события, которые являются главными по отношению к другим (не текущим процессам) или даже по отношению к целой системе и они, соответственно, обслуживаются в контексте всей системы.&lt;br /&gt;
&lt;br /&gt;
Исключительные состояния - это синхронные события, которые являются главными по отношению к текущему процессу и обычно обслуживаются в контексте текущего процесса.&lt;br /&gt;
&lt;br /&gt;
Прерывания являются асинхронными событиями, поэтому для возможности обработки одновременно возникших запросов прерываний, в процессоре существует логика приоритетов. Приоритет, связанный с прерыванием, называется &amp;quot;уровнем приоритета прерывания&amp;quot; (IPL - *interrupt priority level* ). В любой момент времени будет обслуживаться прерывание с наивысшим приоритетом. IPL изменяется от 0 до 1F, то есть существует 32 уровня приоритета прерывания.&lt;br /&gt;
&lt;br /&gt;
1.5.2. Для исключительных состояний (кроме особых фатальных ситуаций, влияющих на работу всей системы - им сопоставляется наивысший IPL , равный 1F) логика приоритетов не нужна, так как эти события синхронны по своей природе, и поэтому, возникают только в определенных, обусловленных набором выполняющихся команд, точках.&lt;br /&gt;
&lt;br /&gt;
Существует три типа исключительных состояний:&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;ловушка&amp;quot; ( *trap* ) - это исключительное состояние, которое возникает в конце команды, которая ее вызвала. Поэтому PC, сохраняемый в стеке, указывает на следующую команду, которая должна была бы нормально выполняться. Любая программа может разрешить или запретить некоторые из ловушек для какой-то конкретной команды;&lt;br /&gt;
# &amp;quot;нарушение&amp;quot; ( *fault* ) - это исключительное состояние, которое возникает во время выполнения команды и оставляет регистры и память в таком состоянии, что при устранении условий для возникновения этой ситуации и рестарте, эта команда будет давать правильные результаты;&lt;br /&gt;
# &amp;quot;прекращение&amp;quot; ( *abort* ) - это исключительное состояние, также возникающее во время выполнения команды, но, в отличие от нарушений, оставляющее регистры и память в неопределенном состоянии. Поэтому команда не может быть правильно завершена (даже при условии ее рестарта).&lt;br /&gt;
&lt;br /&gt;
В табл. 4 приведены возможные уровни приоритета прерываний процессора и соответствующие им аппаратные события.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  I   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных                 | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4227</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4227"/>
		<updated>2026-04-16T08:12:35Z</updated>

		<summary type="html">&lt;p&gt;Panther: 1.4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1.4. Операционный блок ==&lt;br /&gt;
&lt;br /&gt;
Операционный блок (ОБ) предназначен для формирования адресов команд и операндов, для выполнения арифметических и логических операций над операндами, а также для хранения адресов, операндов и результатов выполнения операций на регистрах. Операционный блок состоит из операционной части, регистровой части и схем управления.&lt;br /&gt;
&lt;br /&gt;
=== Операционная часть операционного блока ===&lt;br /&gt;
&lt;br /&gt;
Операционная часть операционного блока выполняет арифметические и логические операции над операндами, осуществляет временное хранение результатов операций, формирует состояния N , Z , V , С по результатам операций. Операционная часть ОБ состоит:&lt;br /&gt;
&lt;br /&gt;
# Буферные регистры;&lt;br /&gt;
# Арифметико-логическое устройство (АЛУ);&lt;br /&gt;
# Регистр результата операции (РРОП);&lt;br /&gt;
# Схема формирования состояний (СФС);&lt;br /&gt;
# Дешифраторы.&lt;br /&gt;
&lt;br /&gt;
Работой ОБ управляет блок синхронизации ОБ (БСОБ). Временная диаграмма работы операционной части ОБ представлена на рис. 5.&lt;br /&gt;
&lt;br /&gt;
Структурная схема операционной части ОБ представлена на рис. 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic5.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic6.png|700px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По сигналу *SRD1&amp;amp;φ* (чтение 1) на шину X и Y̅ в соответствии с адресами, указанными в поле чтения ( *RFX0* - *RFX4* , *RFY0* - *RFY4* ) тела микрокоманды, читаются регистры (в одноадресной микрокоманде на шину Y̅ читается ячейка блока констант). Информация на шинах X и Y̅ защелкивается квазистатическими триггерами, стоящими на входе буферных регистров, после чего чтение регистров (блока констант) прекращается. Подброс шин X и Y̅, а следовательно и сброс защелки осуществляется сигналом *SETXY* . Одновременно с сигналами чтения регистров вырабатываются сигналы записи, по которым операнды с шин X и Y̅ записываются в буферные регистры. В соответствии с кодом операции (OCIR-OC3R) в буферные регистры записываются прямые или инверсные значения операндов. По сигналу *SALU&amp;amp;φ̅* (разрешение запуска АЛУ) запускается арифметико-логическое устройство, которое в зависимости от кода операции ( *RFY4* , *OC1R* - *OC3R* , *AROPWC* ) и формата микрокоманды ( *MFCOR,MFC1R* ) выполняет над операндами ту или иную операцию. Результат выполнения операции сигналом *SWTOPR&amp;amp;φ* записывается в регистр результата операции. РРОП кроме функции временного хранения результата выполняет функцию сдвигателя в микрокомандах сдвига. На основе полученного результата СФС формирует признаки N̄*, Z̄*, V̄*, C̄* , которые подаются на регистр состояний (РСП) и на схему образования условий ветвления.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения операции с РРОП через усилители подается на парафазную шину X* , Y̅* , откуда по сигналу *SWT2&amp;amp;φ̅* (запись 2) , в соответствии с адресом, указанным в поле записи ( *WF0* - *WF4* ) тела микрокоманды, записывается в регистр.&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  I   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных                 | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4226</id>
		<title>Микросхемы интегральные Л1839ВМ1. Техническое описание</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%9B1839%D0%92%D0%9C1._%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=4226"/>
		<updated>2026-04-16T08:06:02Z</updated>

		<summary type="html">&lt;p&gt;Panther: 1.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ДИ}}&lt;br /&gt;
== 1.1. Общие характеристики ==&lt;br /&gt;
&lt;br /&gt;
1.1.1. ЦПР предназначен для выполнения в составе ЭВМ операций по чтению и обработке команд, вычислению и преобразованию адреса операндов, чтению из памяти, временному хранению на внутренних регистрах и записи операндов, а также для выполнения ариôметических и логических операций над этими операндами.&lt;br /&gt;
&lt;br /&gt;
ЦПР изготавливается по КМОП технологии с двойной металлизацией. Размер кристалла – 9,5x9,95 мм. Напряжение питания микросхем +5В. Частота тактового сигнала синхронизации до 10 МГц.&lt;br /&gt;
&lt;br /&gt;
В качестве накопителя микрокоманд используется внешнее ПЗУ. Для обеспечения максимального быстродействия это ПЗУ должно иметь время чтения не более 60 нс при цикле обращения 200 нс.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     Основные характеристики ЦПР следующие:&lt;br /&gt;
&lt;br /&gt;
Разрядность операнда, бит                         – 8,16,32,64;&lt;br /&gt;
Разрядность виртуального адреса, бит              – 32;&lt;br /&gt;
Разрядность физического адреса, бит               – 24;&lt;br /&gt;
Разрядность адреса микрокоманды, бит              – 14;&lt;br /&gt;
Разрядность слова микрокоманды, бит               – 32;&lt;br /&gt;
Объем накопителя микрокоманд, К двойных слов      – 16;&lt;br /&gt;
Количество регистров общего назначения            – 16;&lt;br /&gt;
Время цикла выполнения микрокоманды&lt;br /&gt;
(микроцикла), нс                                  – 200;&lt;br /&gt;
Минимальное количество микроциклов, необходимое&lt;br /&gt;
для выполнения команды                            – 1;&lt;br /&gt;
Быстродействие (операции типа &amp;quot;сложение&amp;quot; в&lt;br /&gt;
формате &amp;quot;регистр-регистр&amp;quot;), млн. оп/с             – до 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условное графическое обозначение ЦПР представлено на рис.1. Назначение выводов представлено в табл.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic1.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| Номер         | Обозна-   | Тип вывода | Наименование                                                |&lt;br /&gt;
| вывода        | чение     |            |                                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| H3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| J2            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| M7            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| G12           | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| B8            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| H2            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G13           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C8            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| C7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| G3            | U         |            | Вывод питания от исто иника напряжения                      |&lt;br /&gt;
| P7            | MC0       | Вход       | Нулевой разряд микрокоманды                                 |&lt;br /&gt;
| N7            | MC1       | Вход       | Первый разряд микрокоманды                                  |&lt;br /&gt;
| P8            | MC2       | Вход       | Второй разряд микрокоманды                                  |&lt;br /&gt;
| N8            | MC3       | Вход       | Третий разряд микрокоманды                                  |&lt;br /&gt;
| P9            | MC4       | Вход       | Четвертый разряд микрокоманды                               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| N9            | MC5       | Вход       | Пятый разряд микрокоманды                                   |&lt;br /&gt;
| P10           | MC6       | Вход       | Шестой разряд микрокоманды                                  |&lt;br /&gt;
| M9            | MC7       | Вход       | Седьмой разряд микрокоманды                                 |&lt;br /&gt;
| P11           | MC8       | Вход       | Восьмой разряд микрокоманды                                 |&lt;br /&gt;
| P12           | MC9       | Вход       | Девятый разряд микрокоманды                                 |&lt;br /&gt;
| P13           | MC10      | Вход       | Десятый разряд микрокоманды                                 |&lt;br /&gt;
| N10           | MC11      | Вход       | Одиннадцатый разряд микрокоманды                            |&lt;br /&gt;
| M11           | MC12      | Вход       | Двенадцатый разряд микрокоманды                             |&lt;br /&gt;
| M10           | MC13      | Вход       | Тринадцатый разряд микрокоманды                             |&lt;br /&gt;
| P14           | MC14      | Вход       | Четырнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N11           | MC15      | Вход       | Пятнадцатый разряд микрокоманды                             |&lt;br /&gt;
| M12           | MC16      | Вход       | Шестнадцатый разряд микрокоманды                            |&lt;br /&gt;
| N12           | MC17      | Вход       | Семнадцатый разряд микрокоманды                             |&lt;br /&gt;
| N13           | MC18      | Вход       | Вос мнадцатый разряд микрокоманды                           |&lt;br /&gt;
| N14           | MC19      | Вход       | Девятнадцатый разряд микрокоманды                           |&lt;br /&gt;
| L12           | MC20      | Вход       | Двадцатый разряд микрокоманды                               |&lt;br /&gt;
| L14           | MC21      | Вход       | Двадцать первый разряд микрокоманды                         |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M13           | MC22      | Вход       | Двадцать второй разряд микрокоманды                         |&lt;br /&gt;
| K14           | MC23      | Вход       | Двадцать третий разряд микрокоманды                         |&lt;br /&gt;
| L13           | MC24      | Вход       | Двадцать четвертый разряд м крокоманды                      |&lt;br /&gt;
| J12           | MC25      | Вход       | Двадцать пятый разряд микрокоманды                          |&lt;br /&gt;
| K13           | MC26      | Вход       | Двадцать шестой разряд микрокоманды                         |&lt;br /&gt;
| J14           | MC27      | Вход       | Двадцать седьмой разряд микрокоманды                        |&lt;br /&gt;
| J13           | MC28      | Вход       | Двадцать восьмой разряд микрокоманды                        |&lt;br /&gt;
| H14           | MC29      | Вход       | Двадцать девятый разряд микрокоманды                        |&lt;br /&gt;
| H13           | MC30      | Вход       | Тридцатый разряд микрокоманды                               |&lt;br /&gt;
| G14           | MC31      | Вход       | Тридцать первый разряд микрокоманды                         |&lt;br /&gt;
| A10           | SAS       | Вход       | Сигнал подтверждения приема адреса подчиненным устройством  |&lt;br /&gt;
| B12           | SDS       | Вход       | Сигнал обработки данных подчиненным устройством             |&lt;br /&gt;
| C11           | DMRQ      | Вход       | Сигнал запроса на прямой доступ к памяти                    |&lt;br /&gt;
| B{0|9}        | ACTR      | Вход       | Сигнал захвата магистрали акселератором                     |&lt;br /&gt;
| P3            | INRA      | Вход       | Сигнал &amp;quot;Прерывание от адаптера магистрали&amp;quot;                  |&lt;br /&gt;
| P5            | INRC      | Вход       | Сигнал &amp;quot;Прерывание от контроллера памяти&amp;quot;                   |&lt;br /&gt;
| M6            | MCH       | Вход       | Сигнал &amp;quot;Машинный сбой&amp;quot;                                      |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P6            | HALT      | Вход       | Сигнал &amp;quot;Переход в пультовый режим&amp;quot;                          |&lt;br /&gt;
| M5            | MSDS      | Вход       | Сигнал сопровождения микрокоманды                           |&lt;br /&gt;
| P4            | ACRA      | Вход       | Сигнал готовности акселератора                              |&lt;br /&gt;
| F13           | ACN       | Вход       | Признак &amp;quot;Результат отрицателен&amp;quot; от акселератора             |&lt;br /&gt;
| E14           | ACZ       | Вход       | Признак &amp;quot;Результат равен нулю&amp;quot; от акселератора              |&lt;br /&gt;
| E13           | ACV       | Вход       | Признак &amp;quot;Переполнение&amp;quot; от акселератора                      |&lt;br /&gt;
| F12           | ACC       | Вход-выход | Признак &amp;quot;Расширение&amp;quot; от акселератора                        |&lt;br /&gt;
| C12           | TEST      | Вход       | Признак тестирования                                        |&lt;br /&gt;
| H1            | SR        | Вход       | Сигнал установки в исходное состояние                       |&lt;br /&gt;
| N6            | CLC1      | Вход       | Сигнал тактовой частоты                                     |&lt;br /&gt;
| G2            | AD0       | Вход-выход | Нулевой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| G1            | AD1       | Вход-выход | Первый разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F2            | AD2       | Вход-выход | Второй разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| F1            | AD3       | Вход-выход | Третий разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
| E2            | AD4       | Вход-выход | Четвертый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| F3            | AD5       | Вход-выход | Пятый разряд адреса-данных 32-разрядной шины                |&lt;br /&gt;
| D2            | AD6       | Вход-выход | Шестой разряд адреса-данных 32-разрядной шины               |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| E1            | AD7       | Вход-выход | Седьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| C2            | AD8       | Вход-выход | Восьмой разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| D3            | AD9       | Вход-выход | Девятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| A1            | AD10      | Вход-выход | Десятый разряд адреса-данных 32-разрядной шины              |&lt;br /&gt;
| B2            | AD11      | Вход-выход | Одиннадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| B3            | AD12      | Вход-выход | Двенадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B4            | AD13      | Вход-выход | Тринадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| C5            | AD14      | Вход-выход | Четырнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C4            | AD15      | Вход-выход | Пятнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| B5            | AD16      | Вход-выход | Шестнадцатый разряд адреса-данных 32-разрядной шины         |&lt;br /&gt;
| A2            | AD17      | Вход-выход | Семнадцатый разряд адреса-данных 32-разрядной шины          |&lt;br /&gt;
| A3            | AD18      | Вход-выход | Восемнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| C6            | AD19      | Вход-выход | Девятнадцатый разряд адреса-данных 32-разрядной шины        |&lt;br /&gt;
| A5            | AD20      | Вход-выход | Двадцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B6            | AD21      | Вход-выход | Двадцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| A6            | AD22      | Вход-выход | Двадцать второй разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| B7            | AD23      | Вход-выход | Двадцать третий разряд адреса-данных 32-разрядной шин[обрыв]|&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| B13           | AD24      | Вход-выход | Двадцать четвертый разряд адреса-данных 32-разрядной шины   |&lt;br /&gt;
| D12           | AD25      | Вход-выход | Двадцать пятый разряд адреса-данных 32-разрядной шины       |&lt;br /&gt;
| D13           | AD26      | Вход-выход | Двадцать шестой разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| C13           | AD27      | Вход-выход | Двадцать седьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| C14           | AD28      | Вход-выход | Двадцать восьмой разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| E12           | AD29      | Вход-выход | Двадцать девятый разряд адреса-данных 32-разрядной шины     |&lt;br /&gt;
| D14           | AD30      | Вход-в ход | Тридцатый разряд адреса-данных 32-разрядной шины            |&lt;br /&gt;
| B14           | AD31      | Вход-выход | Тридцать первый разряд адреса-данных 32-разрядной шины      |&lt;br /&gt;
| J1            | AM0       | Выход      | Нулевой разряд адреса микрокоманды                          |&lt;br /&gt;
| K2            | AM1       | Выход      | Первый разряд адреса микрокоманды                           |&lt;br /&gt;
| J3            | AM2       | Выход      | Второй разряд адреса микрокоманды                           |&lt;br /&gt;
| L2            | AM3       | Выход      | Третий разряд адреса микрокоманды                           |&lt;br /&gt;
| K1            | AM4       | Выход      | Четвертый разряд адреса микрокоманды                        |&lt;br /&gt;
| M2            | AM5       | Выход      | Пятый разряд адреса микрокоманды                            |&lt;br /&gt;
| M1            | AM6       | Выход      | Шестой разряд адреса микрокоманды                           |&lt;br /&gt;
| L3            | AM7       | Выход      | Седьмой разряд адреса микрокоманды                          |&lt;br /&gt;
| K3            | AM8       | Выход      | Восьмой разряд адреса микрокоманды                          |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| P1            | AM9       | Выход      | Девятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N2            | AM10      | Выход      | Десятый разряд адреса микрокоманды                          |&lt;br /&gt;
| N3            | AM11      | Выход      | Одиннадцатый разряд адреса микрокоманды                     |&lt;br /&gt;
| M3            | AM12      | Выход      | Двенадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| N4            | AM13      | Выход      | Тринадцатый разряд адреса микрокоманды                      |&lt;br /&gt;
| A8            | MAS       | Выход      | Сигнал сопровождения адреса от главного устройства          |&lt;br /&gt;
| A9            | MDS       | Выход      | Сигнал сопровождения данных от главного устройства          |&lt;br /&gt;
| B10           | PCRQ      | Выход      | Сигнал запроса команды по счетчику команд                   |&lt;br /&gt;
| C9            | PGB       | Выход      | Сигнал &amp;quot;Граница страницы памяти&amp;quot;                            |&lt;br /&gt;
| A11           | DMAK      | Выход      | Сигнал предоставления прямого доступа к памяти              |&lt;br /&gt;
| A13           | SEL       | Выход      | Сигнал чтения регистра внешних условий                      |&lt;br /&gt;
| P2            | MMAS      | Выход      | Сигнал сопровождения адреса для накопителя микрокоманд      |&lt;br /&gt;
| M4            | ACR       | Выход      | Сигнал сброса акселератора                                  |&lt;br /&gt;
| B11           | SP        | Выход      | Резервный                                                   |&lt;br /&gt;
| L1            | -         |            | Не используется                                             |&lt;br /&gt;
| N5            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| N1            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
| M8            | -         |            | Не используется                                             |&lt;br /&gt;
| M14           | -         |            | Не используется                                             |&lt;br /&gt;
| K12           | -         |            | Не используется                                             |&lt;br /&gt;
| F14           | -         |            | Не используется                                             |&lt;br /&gt;
| A14           | -         |            | Не используется                                             |&lt;br /&gt;
| A12           | -         |            | Не используется                                             |&lt;br /&gt;
| C10           | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| A4            | -         |            | Не используется                                             |&lt;br /&gt;
| A7            | U         |            | Вывод питания от источника напряжения                       |&lt;br /&gt;
| B1            | -         |            | Не используется                                             |&lt;br /&gt;
| C3            | OV        |            | Общий вывод                                                 |&lt;br /&gt;
| C1            | -         |            | Не используется                                             |&lt;br /&gt;
| E3            | -         |            | Не используется                                             |&lt;br /&gt;
| D1            | -         |            | Не используется                                             |&lt;br /&gt;
+---------------+-----------+------------+-------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Наименование параметра,       | Буквенное |   Норма         | Темпера-  |&lt;br /&gt;
| единица измерения,            | обозначе- +--------+--------+ тура,     |&lt;br /&gt;
| режим измерения               | ние       | не     | не     | °C        |&lt;br /&gt;
|                               |           | менее  | более  |           |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение низкого   |           |        | 0,45   | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OL      | -      +--------+-----------+&lt;br /&gt;
| при I_OL = 2,5 мА             |           |        | 0,5    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходное напряжение высокого  |           | 4,05   |        | 25+10     |&lt;br /&gt;
| уровня, В                     | U_OH      +--------+ -      +-----------+&lt;br /&gt;
| при IоН = - 0,2 мА            |           | 4,0    |        | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления, мА           |           |        | 8,0    | 25+10     |&lt;br /&gt;
|                               | I_CC      | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток потребления динамический, |           |        | 170    | 25+10     |&lt;br /&gt;
| мА                            | I_CCO     | -      +--------+-----------+&lt;br /&gt;
|                               |           |        | 200    | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на входе, мкА      |           |        | 3,0    | 25+10     |&lt;br /&gt;
|                               | I_LI      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Ток утечки на выходе, мкА     |           |        | 10,0   | 25+10     |&lt;br /&gt;
|                               | I_LO      |        +--------+-----------+&lt;br /&gt;
|                               |           |        | 50,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Частота следования импульсов  |           |        |        | 25+10     |&lt;br /&gt;
| тактовых сигналов, МГц        | f_C       |        | 10,0   | -60       |&lt;br /&gt;
|                               |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Входная емкость, пФ           | C_I       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Выходная емкость, пФ          | C_O       | -      | 12,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Емкость входа/выхода, пФ      | C_I/O     | -      | 14,0   | 25+10     |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
| Время выполнения операции     |           |        |        | 25+10     |&lt;br /&gt;
| &amp;quot;сложение&amp;quot; при регистровом    | t_ADD     | -      | 200    | -60       |&lt;br /&gt;
| методе адресации, нс          |           |        |        | 85        |&lt;br /&gt;
+-------------------------------+-----------+--------+--------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Наименование параметра,       | Буквенное   |           Норма            |&lt;br /&gt;
| единица измерения             | обозначение +-------------+--------------+&lt;br /&gt;
|                               |             | не менее    | не более     |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение питания, В         | U_CC        | 4,5         | 5,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение высокого   |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IH        | (0,85·U_CC)*| U_CC**       |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Входное напряжение низкого    |             |             |              |&lt;br /&gt;
| уровня, В                     | U_IL        | 0           | 0,8*         |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Напряжение на любом входе , В | U_I         | 0           | Ucc**        |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток низкого уровня,  |             |             |              |&lt;br /&gt;
| мА                            | I_OL        | -           | 2,5          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Выходной ток высокого уровня, |             |             |              |&lt;br /&gt;
| мА                            | I_OH        | -           | 0,2          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Емкость нагрузки, пФ          | C_L         | -           | 100          |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
| Время фронта нарастания и     |             |             |              |&lt;br /&gt;
| спада входных сигналов, нс    | t_LH, t_HL  | -           | 0,1·T_CLCI   |&lt;br /&gt;
+-------------------------------+-------------+-------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; - с учетом всех видов помех&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; - но не более конкретного значения напряжения питания, приложенного к микросхеме&lt;br /&gt;
&lt;br /&gt;
1.1.2. Электрические параметры, условия эксплуатации&lt;br /&gt;
&lt;br /&gt;
1.1.2.1. Напряжение питания микросхем Л1839ВМ1  +5В±10%.&lt;br /&gt;
&lt;br /&gt;
1.1.2.2. Электрические параметры приведены в табл.2.&lt;br /&gt;
&lt;br /&gt;
1.1.2.3. Предельно допустимые режимы эксплуатации приведены в табл.3.&lt;br /&gt;
&lt;br /&gt;
1.1.2.4. Внешние воздействующие факторы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Синусоидальная вибрация:&lt;br /&gt;
     диапазон частот, Гц ......................... от 1 до 5000&lt;br /&gt;
     амплитуда ускорения, м.с⁻² ( g ) ........... 400(40)&lt;br /&gt;
Механический удар:&lt;br /&gt;
     одиночного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 15000(1500)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 0,1 до 2,0&lt;br /&gt;
     многократного действия:&lt;br /&gt;
          пиковое ударное ускорение, м.с⁻² ( g ) .... 1500(150)&lt;br /&gt;
          длительность действия ударного ускорения,мс от 1 до 5&lt;br /&gt;
Линейное ускорение, м.с⁻² ( g ) .................. 5000(500)&lt;br /&gt;
Акустический шум:&lt;br /&gt;
     диапазон частот, Гц ......................... 50-10000&lt;br /&gt;
     уровень звукового давления (относительно&lt;br /&gt;
2·10⁻⁵ Па), дБ ................................... 170&lt;br /&gt;
Атмосферное пониженное давление:&lt;br /&gt;
     рабочее, Па (мм рт.ст.) ..................... 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
     предельное, Па (мм рт.ст.) .................. 1,3·10⁻⁴(10⁻⁶)&lt;br /&gt;
Атмосферное повышенное рабочее давление, ата ...... 3&lt;br /&gt;
Повышенная температура среды:&lt;br /&gt;
     рабочая, °С .................................. 85&lt;br /&gt;
     предельная, °С ............................... 125&lt;br /&gt;
Пониженная температура среды:&lt;br /&gt;
     рабочая, °С .................................. минус 60&lt;br /&gt;
     предельная, °С ............................... минус 60&lt;br /&gt;
Смена температур:&lt;br /&gt;
     от пониженной предельной температуры среды, °С   минус 60&lt;br /&gt;
     до повышенной предельной температуры среды, °С   125&lt;br /&gt;
Повышенная относительная влажность при 35°С, % ..... 98&lt;br /&gt;
Атмосферные конденсированные осадки (роса, иней)&lt;br /&gt;
Соляной (м{о|о}рской) туман&lt;br /&gt;
Плесневые грибы&lt;br /&gt;
Контрольные среды (среды заполнения):&lt;br /&gt;
     объемная доля компонентов контрольной среды, %:&lt;br /&gt;
          гелиево-воздушная ........................ 90&lt;br /&gt;
          аргоно-воздушная ......................... 90&lt;br /&gt;
          аргоно-азотная ........................... 90&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.1.2.5. Минимальная наработка микросхем 100000 часов, а в облегченном режиме при  Ucc = 5В ± 3% – 120000 часов.&lt;br /&gt;
&lt;br /&gt;
1.1.2.6. Интенсивность отказов в течение наработки не более 1.10⁻⁶ 1/ч.&lt;br /&gt;
&lt;br /&gt;
1.1.2.7. Гамма-процентный срок сохраняемости – 25 лет.&lt;br /&gt;
&lt;br /&gt;
1.1.3. Архитектура ЦПР позволяет работать с широким диапазоном типов данных, с эффективным набором способов адресации и с большим пространством виртуальных адресов (4 Гбайт).&lt;br /&gt;
&lt;br /&gt;
Система команд микропроцессора совместима с системой команд ЭВМ семейства  VAX-11.&lt;br /&gt;
&lt;br /&gt;
Инструкции, обрабатываемые ЦПР, могут быть сгруппированы на основании их функций по следующим классам:&lt;br /&gt;
&lt;br /&gt;
1) арифметические и логические, для обработки целых чисел, чисел с плавающей запятой, упакованных десятичных строк символов и инструкций для работы с переменными битовыми полями;&lt;br /&gt;
&lt;br /&gt;
2) управление путями выполнения программы;&lt;br /&gt;
&lt;br /&gt;
3) обработка данных специального вида:&lt;br /&gt;
* инструкции манипуляции очередью;&lt;br /&gt;
* инструкции обработки адресов;&lt;br /&gt;
* программируемые пользователем инструкции загрузки и сохранения универсальных регистров;&lt;br /&gt;
&lt;br /&gt;
4) для быстрого выполнения особых функций операционной системы, позволяющие: загружать и сохранять переменные контексты, найти операционной системе выполняемый процесс с наивысшим приоритетом;&lt;br /&gt;
&lt;br /&gt;
5) предназначенные специально для языка высокого уровня.&lt;br /&gt;
&lt;br /&gt;
ЦПР оперирует со следующими типами данных:&lt;br /&gt;
* Целое: байт (8 бит), слово (16 бит), длинное слово (32 бита), четверное слово (64 бита).&lt;br /&gt;
* Плавающая запятая: 4 байта (F-формат), 8 байтов (D-формат), 8 байтов (G-формат).&lt;br /&gt;
* Упакованное десятичное: строка байтов (до 31 десятичной цифры, по две цифры в байте).&lt;br /&gt;
* Строка символов: строка байтов, интерпретируемая как коды символов (до 64 Кбайт). Числовая строка является строкой символьных кодов для десятичных чисел (до 31 цифры).&lt;br /&gt;
* Биты и поля битов: длина поля переменна от 0 до 32 бит (определяется пользователем).&lt;br /&gt;
&lt;br /&gt;
Так как ЦПР полностью реализует архитектуру центральной части ЭВМ VAX-II/750, включая эмуляцию системы команд, то на его основе могут создаваться вычислительные средства, совместимые по математическому обеспечению на уровне операционных систем с ЭВМ ряда  VAX.&lt;br /&gt;
&lt;br /&gt;
1.1.4. Микросхемы ЦПР ЛП839ВМ1 соответствуют техническим условиям АЕЯР.431200.005-01 ТУ.&lt;br /&gt;
&lt;br /&gt;
1.1.5. В микропроцессоре реализован конвейерный метод обработки команд на макро- и микро-программном уровнях. Осуществляется опережающий прием команд в количестве трех 32-разрядных слов команды. В пределах страницы (512 байт) прием команд безадресной с циклом 200 нс. Совмещение операций при выполнении команд регистр-регистр показано на рис.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь цифрами (1-4) обозначены номера последовательно выполняемых команд, а буквами - операции:&lt;br /&gt;
&lt;br /&gt;
* А - прием команды;&lt;br /&gt;
* Б - дешифрация команды;&lt;br /&gt;
* В - выборка микрокоманды;&lt;br /&gt;
* Г - исполнение операции.&lt;br /&gt;
&lt;br /&gt;
Данные принимаются в процессор на буфер, который организован в виде стека &amp;quot;первый вошел - первый вышел&amp;quot;. Этот стек состоит из четырех 32-разрядных ячеек и его применение позволяет производить накопление данных при выполнении операции с памятью. Если в команде много операндов, это позволяет сократить время выполнения команды.&lt;br /&gt;
&lt;br /&gt;
Преобразование виртуального адреса в физический в блоке диспетчера памяти выполняется полностью аппаратно, параллельно с другими операциями процессора. Прием и модификация описателей страниц (PTE) автоматически вставляется в общий поток обменов по внешней магистрали. В ДП имеется ассоциативный буфер PTE на 16 ячеек. Как показали исследования фирмы  DEC, такого объема буфера достаточно для эффективного выполнения типовых программ.&lt;br /&gt;
&lt;br /&gt;
В микропроцессоре имеются аппаратные и микропрограммные средства для организации эффективной связи с дополнительной микросхемой, на которой аппаратно выполняются операции умножения и деления целых чисел и операции над числами в формате с плавающей запятой.&lt;br /&gt;
&lt;br /&gt;
== 1.2. Структурная схема и общие принципы функционирования ==&lt;br /&gt;
&lt;br /&gt;
ЦПР состоит из следующих функциональных блоков (рис.3):&lt;br /&gt;
* дешифратор команд (ДШК);&lt;br /&gt;
* блок приема и формирования микрокоманд (БПМК);&lt;br /&gt;
* операционный блок (ОБ);&lt;br /&gt;
* интерфейсный блок (ИБ);&lt;br /&gt;
* диспетчер памяти (ДП);&lt;br /&gt;
* блок анализа приоритетов прерываний (БПР).&lt;br /&gt;
&lt;br /&gt;
Блоки ДШК, ОБ и ДП связаны с внутренней 32-разрядной магистралью процессора, по которой они могут обмениваться ин - формацией как между собой, так и с внешней магистралью. Внутренняя магистраль связана с внешней элементами входа-выхода, которые управляются интерфейсным блоком (ИБ). По этой магистрали передаются адреса, данные и команды.&lt;br /&gt;
&lt;br /&gt;
Передача различного типа информации мультиплексирована по времени. Для приема микрокоманд в микропроцессоре имеются раздельные каналы выдачи адреса микрокоманды (14 разрядов) и приема микрокоманды (32 разряда). Этими каналами управляет БПМК.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic3.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальный пуск микропроцессора выполняется микропрограммно. По переходу сигнала на выводе SR из низкого в высокий уровень в ДШК вырабатывается первый адрес микропрограммы начального пуска и процессор переходит к выполнению этой микропрограммы.&lt;br /&gt;
&lt;br /&gt;
Прием первой команды выполняется всегда в процедуре &amp;quot;адресное чтение&amp;quot;. Физический адрес этой команды запоминается контроллером памяти в счетчике физического адреса команды. Дальнейший прием команд идет по этому счетчику, который автоматически инкрементируется на четыре после чтения каждой команды. Переход адреса команды на новую страницу отслеживается в процессоре и при каждом таком переходе прием команды выполняется в процедуре адресного чтения с проверкой доступности страницы в диспетчере памяти.&lt;br /&gt;
&lt;br /&gt;
При выполнении команд, если количество операндов не больше четырех, сначала выполняется адресация всех операндов и прием их на буфер данных. Операнды могут находиться в памяти по адресам данных, в регистрах общего назначения (РОН) процессора или в теле команды. Данные из памяти всегда принимаются в буферный регистр данных (БРД). В формате &amp;quot;регистр-регистр&amp;quot; и &amp;quot;регистр-память&amp;quot; данные из РОН  не пересылаются в БРД, действия над ними выполняются непосредственно в РОН. Во всех остальных случаях данные пересылаются в БРД. Если операнд находится в теле команды, то при дешифрации он выделяется из команды на специальный регистр и затем пересылается в БРД. Если количество операндов больше четырех, то выполняется прием четырех операндов, затем процесс адресации прерывается для освобождения БРД, после чего прием продолжается. Максимальное количество операндов - 6.&lt;br /&gt;
&lt;br /&gt;
При выполнении косвенной адресации адрес из памяти принимается не в БРД, а в специальный регистр косвенной адресации (РКА), из которого он затем пересылается в регистр виртуального адреса (РВА). Это сделано потому, что принятый адрес нужно сразу же после приема использовать для продолжения адресации, а из БРД данные доступны по чтению только последовательно в порядке их приема, поскольку БРД организован по принципу стека.&lt;br /&gt;
&lt;br /&gt;
Команды принимаются на буфер команд, который также организован как стек из трех 32-разрядных ячеек. Команды принимаются в буфер без выравнивания по началу слова, т.е. команда может начинаться с любого из четырех байт принимаемого 32-разрядного слова. За один цикл ДШК анализирует от 1 до 4 байт слова команды. Для начала обработки команды в буфере должны быть загружены две ячейки, поскольку анализируемые байты могут находиться в первой и второй ячейках, третья нужна для опережающего приема команды.&lt;br /&gt;
&lt;br /&gt;
Счетчик команд (СК) в процессоре состоит из трех регистров. В первом регистре хранится виртуальный адрес начала команды, во втором - адрес анализируемого кода операции или моды адресации, и в третьем - адрес анализируемой в текущем цикле ДШК группы байтов команды. При завершении обработки кода операции или моды адресации содержимое третьего регистра переписывается во второй, а при завершении обработки всей команды содержимое второго регистра переписывается в первый. При начальном приеме команды все три регистра загружаются одним и тем же значением адреса команды. Для адресации команд СК используется только в командах ветвления. Для адресации переходов в командах ветвления и для адресации операндов в соответствующих модах адресации используется второй регистр СК. Для отслеживания границы страницы и адресации команды на этой границе используется специальный регистр-счетчик виртуального адреса команды (РВАК). Этот регистр загружается одновременно с загрузкой СК и инкрементируется на четыре после каждого цикла приема команды. Если адрес команды находится внутри страницы, прием команд выполняется в безадресном цикле обмена. Когда адрес команды совпадает с адресом последнего слова в странице, в РВАК вырабатывается специальный сигнал, по которому адрес, соответствующий адресу первого слова в следующей странице, переписывается из РВАК в РВА и инициируется адресный обмен с преобразованием адреса в ДП.&lt;br /&gt;
&lt;br /&gt;
Все блоки процессора синхронизируются единым сигналом тактовой частоты и связаны между собой сигналами управления, обеспечивающими конвейерную микропрограммно-аппаратную обработку команд.&lt;br /&gt;
&lt;br /&gt;
== 1.3. Дешифрация команд ==&lt;br /&gt;
&lt;br /&gt;
1.3.1. Функции дешифратора команд&lt;br /&gt;
&lt;br /&gt;
1) формирование начального адреса микропрограммы содержательной обработки команды;&lt;br /&gt;
&lt;br /&gt;
2) формирование начального адреса микропрограммы адресации очередного операнда команды;&lt;br /&gt;
&lt;br /&gt;
3) управление по выделению из области программы смещений адресации и констант;&lt;br /&gt;
&lt;br /&gt;
4) управление мультиплексором буфера команд для загрузки полей кода операции и кода моды адресации очередного операнда.&lt;br /&gt;
&lt;br /&gt;
1.3.2. Типы команд по дешифрации&lt;br /&gt;
&lt;br /&gt;
1) команды &amp;quot;без операндов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*(HALT;NOP;REI;BPT;RET;LDPCTX;SVPCTX;XFC;RSB);&lt;br /&gt;
&lt;br /&gt;
2) простые команды - команды с количеством операндов от 1 до 3;&lt;br /&gt;
&lt;br /&gt;
3) длинные команды - команды с количеством операндов больше трех;&lt;br /&gt;
&lt;br /&gt;
4) команды перехода по смещению и без операндов&lt;br /&gt;
&lt;br /&gt;
* (BRB;BRW;BEQL...);&lt;br /&gt;
&lt;br /&gt;
5) команды перехода по смещению и с операндами&lt;br /&gt;
&lt;br /&gt;
* (ACBB,SOBGEQ...).&lt;br /&gt;
&lt;br /&gt;
На рис. 4  показан общий алгоритм дешифрации команд.&lt;br /&gt;
&lt;br /&gt;
На рис. 4  приняты следующие обозначения:&lt;br /&gt;
&lt;br /&gt;
* ПУ    - передача управления;&lt;br /&gt;
* ЗпКОП - загрузить регистр - &amp;quot;поле КОП&amp;quot; на входе ПЛМ-ДШК;&lt;br /&gt;
* RUN   - поле кода режима на входе ПЛМ;&lt;br /&gt;
* ПР    - прерывание;&lt;br /&gt;
* НПР   - нет прерываний;&lt;br /&gt;
* F2    - признак кода команды из пространства расширения;&lt;br /&gt;
* БО    - команды без операндов;&lt;br /&gt;
* ПК    - простые команды;&lt;br /&gt;
* ДК    - длинные команды;&lt;br /&gt;
* КПО   - команды перехода с операндами;&lt;br /&gt;
* КПС   - команды перехода по смещению (байт или слово);&lt;br /&gt;
* РР    - расположение операндов - все на регистрах;&lt;br /&gt;
* П     - расположение операндов - хотя бы один в памяти;&lt;br /&gt;
* СО    - счетчик операндов;&lt;br /&gt;
* КО    - количество операндов;&lt;br /&gt;
* STA   - старт адресации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic4.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.12. Система микрокоманд ==&lt;br /&gt;
&lt;br /&gt;
В микропроцессорной системе &amp;quot;Электроника 32&amp;quot; имеется несколько форматов микрокоманд.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды МА, МВ, МС ===&lt;br /&gt;
&lt;br /&gt;
Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).&lt;br /&gt;
&lt;br /&gt;
Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic42.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей содержательных микрокоманд.&lt;br /&gt;
&lt;br /&gt;
==== ФМК ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+----------------------------------------------+-------------+&lt;br /&gt;
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |&lt;br /&gt;
+-----+------+                                              | обозначение |&lt;br /&gt;
| 31  |  30  |                                              |             |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  0   | Одноадресная  ОБ                             |     MA      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  0  |  I   | Двухадресная  ОБ                             |     MB      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
|  I  |  0   | Трехадресная  ОБ                             |     MC      |&lt;br /&gt;
+-----+------+----------------------------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФД ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФД&amp;quot; - формат данных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+-------------------------------------------------------+&lt;br /&gt;
| Разряды МК | Формат данных в ОБ                                    |&lt;br /&gt;
+-----+------+                                                       |&lt;br /&gt;
| 29  |  28  |                                                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  0  |  1   | Слово (СЛ) - 16 разрядов (возможно изменение          |&lt;br /&gt;
|     |      | только мл.части РСП)                                  |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
|  1  |  0   | Резервный код &amp;quot;ФД&amp;quot; , признак подсветки приема         |&lt;br /&gt;
|     |      | в регистр косвенной адресации (РКА)                   |&lt;br /&gt;
+-----+------+-------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== КОП2 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП2&amp;quot; - коды операций двухадресных и трехадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|   КОП2       |                  |                  |                      |&lt;br /&gt;
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |&lt;br /&gt;
| 27 | 26 | 25 |                  |                  |                      |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  0 |   X &amp;amp; Ȳ → X      |   X &amp;amp; Ȳ → Z      | Конъюнкция с         |&lt;br /&gt;
|    |    |    |                  |                  | отрицанием           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
|  1 |  1 |  1 |   X &amp;amp; Y → X      |   X &amp;amp; Y → Z      | Конъюнкция           |&lt;br /&gt;
+----+----+----+------------------+------------------+----------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь: Для двухадресных микрокоманд:&lt;br /&gt;
       Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
       Y - операнд в поле У (МК 24-20),&lt;br /&gt;
&lt;br /&gt;
Для трехадресных микрокоманд:&lt;br /&gt;
   Х - операнд в поле Х (МК 19-15),&lt;br /&gt;
   Y - операнд в поле У (МК 24-20),&lt;br /&gt;
   Z - операнд в поле Z (МК 11-7 ).&lt;br /&gt;
&lt;br /&gt;
==== КОП1 ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОП1&amp;quot; - коды операций одноадресных микрокоманд&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|      КОП1         |                  |                                    |&lt;br /&gt;
+    Разряды МК     +   Обозначение    |         О п е р а ц и я            |&lt;br /&gt;
| 27 | 26 | 25 | 24 |                  |                                    |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  O |   M → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  O |  1 |                  | Резерв                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | влево                              |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  O |   X &amp;amp; M̄ → X      | Конъюнкция с отрицанием            |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |&lt;br /&gt;
|    |    |    |    |                  | вправо                             |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  O |   X &amp;amp; M → X      | Конъюнкция                         |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |&lt;br /&gt;
+----+----+----+----+------------------+------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь  Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю &amp;quot;Y&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== ПС ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ПС&amp;quot; - прием состояния&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ПС    |                                          |&lt;br /&gt;
+------------+          Прием  состояния                |&lt;br /&gt;
| разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 14 |  13   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Нет записи состояния                (НЗС)|&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ВА ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ВА&amp;quot; - запись в регистр виртуального адреса (РВА)&lt;br /&gt;
* ВА (МК 12) = 0  -  адрес в фазе чтения&lt;br /&gt;
* ВА (МК 12) = I  -  адрес в фазе записи.&lt;br /&gt;
&lt;br /&gt;
Если поле ВА (МК 12):=0   в одноадресных  микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд &amp;quot;С&amp;quot; в регистре состояния процессора (РСП) (см. рис. 43).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic43.png|400px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в &amp;quot;С&amp;quot; РСП.  Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.&lt;br /&gt;
&lt;br /&gt;
==== НО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;НО&amp;quot; - направление обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|     НО     |                                          |&lt;br /&gt;
+------------+            Тип  обмена                   |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
| 11 |  10   |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Обмен с основной памятью (ПМ)            |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Обмен с памятью с перехватом в БРА (ПП)  |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Обмен с системными регистрами (СР)       |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Обмен с системной памятью (СП)           |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ФО ====&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФО&amp;quot; - формата обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|      ФО    |                                          |&lt;br /&gt;
+------------+         Тип формата  обмена              |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+-------+                                          |&lt;br /&gt;
|  9 |  8    |                                          |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  0    | Длинное слово обмена        (ДСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  0 |  1    | Слово обмена                (СЛО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  1    | Байт обмена                 (БО)         |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
|  1 |  0    | Четверное слово обмена      (ЧСО)        |&lt;br /&gt;
+----+-------+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I) Если  в  микрокоманде  поле  &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩) : = ⟨1,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ &amp;quot;С&amp;quot; РСП), используя выходной признак  CARRY⟨===⟩  МК⟨9,8⟩:=⟨1,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.&lt;br /&gt;
&lt;br /&gt;
2) Если в микрокоманде поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ):= ⟨1,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак &amp;quot;V&amp;quot; - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=1, иначе V:=0.&lt;br /&gt;
&lt;br /&gt;
По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит &amp;quot;V&amp;quot; в РСП.&lt;br /&gt;
&lt;br /&gt;
Накопленный признак &amp;quot;V&amp;quot; (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле &amp;quot;ФО&amp;quot; (МК ⟨9,8⟩ ) :≠ ⟨1,0⟩ ) блокируется установка &amp;quot;V&amp;quot; при сдвигах.&lt;br /&gt;
&lt;br /&gt;
==== КОБ ====&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь поле кода обмена (&amp;quot;КОБ&amp;quot;) в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена (&amp;quot;ФО&amp;quot;) ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;КОБ&amp;quot; - кода обмена&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------+----+------------------------------------------+&lt;br /&gt;
|    КОБ     |                                          |&lt;br /&gt;
+------------+           Тип  обмена                    |&lt;br /&gt;
| Разряды МК |                                          |&lt;br /&gt;
+----+--+----+                                          |&lt;br /&gt;
|  7 | 6 | 5 |                                          |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 0 | Нет обмена (НОБ)                         |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 0 | 1 | Чтение данных (ЧД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 0 | Запись данных (ЗД)                       |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(17) (WDAK)|&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 0 | 1 | Чтение команды (ЧК)                      |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 0 | Резерв                                   |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |&lt;br /&gt;
+----+---+---+------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:&lt;br /&gt;
&lt;br /&gt;
ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(17) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(17), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.&lt;br /&gt;
&lt;br /&gt;
==== Прочие поля ====&lt;br /&gt;
&lt;br /&gt;
Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.&lt;br /&gt;
&lt;br /&gt;
Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).&lt;br /&gt;
&lt;br /&gt;
Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.&lt;br /&gt;
&lt;br /&gt;
Признаки: &lt;br /&gt;
* ПХ:=1 — заменить переменное поле Х;&lt;br /&gt;
* ПУ:=1 —             то же —            У;&lt;br /&gt;
* ПZ:=1 —             то же —             Z;&lt;br /&gt;
* ПО:=1 —             то же —        обмена от ПЛМ.&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды безусловного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды безусловного ветвления и ветвления по коду прерывания (см. рис. 44 )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic44.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расшифруем значение полей данного формата.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;quot;ФМК&amp;quot; - формат микрокоманды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------+-----------------------------+-------------+&lt;br /&gt;
|     Разряды МК                    | Наименование формата        | Обобщенное  |&lt;br /&gt;
+--------+----------+---------+-----+ микрокоманды                | обозначение |&lt;br /&gt;
| Поле &amp;quot;ФМК&amp;quot;   |     Нули     | &amp;quot;Пр&amp;quot;|                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+                             |             |&lt;br /&gt;
| 31 | 30 | 29 | 28 | 27 | 26 | 25  |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  0  | Безусловное ветвление       |     БП      |&lt;br /&gt;
|    |    |    |    |    |    |     |                             |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
|  1 |  1 |  1 |  0 |  0 |  0 |  1  | Ветвление по коду           |   УПР_КП    |&lt;br /&gt;
|    |    |    |    |    |    |     | прерывания                  |             |&lt;br /&gt;
+----+----+----+----+----+----+-----+-----------------------------+-------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Микрокоманды данного формата в ДБ не передаются (Сигнал ЗпМК - не вырабатывается). Назначение этих микрокоманд - безусловный переход по микроадресу, указанному в разрядах 15-2 микрокоманды. Если разряд модификации микроадреса MADR - установлен (МК 16:=1), то адрес микроперехода формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
разряды 5-0 адреса заменяются разрядами 5-0 из регистра ОБ с адресом 18, а разряды 13-6 - непосредственно из тела микрокоманды. Далее регистр адреса ПЗУ микрокода (РА) загружается адресом перехода.&lt;br /&gt;
&lt;br /&gt;
Далее, если разряд RETURN установлен (МК 17:=0) , то одновременно с загрузкой регистра адреса ПЗУ микрокода в регистре возврата запоминается адрес микрокоманды, следующей за микрокомандой безусловного перехода. Это предусматривает использование механизма микроподпрограмм с единичным уровнем вложенности. Возврат из микропрограммы осуществляется микроинструкцией типа RTS , которая будет описана ниже. Если же МК 17:=1, то в регистр возврата записи не происходит.&lt;br /&gt;
&lt;br /&gt;
Тот факт, что разряд МК 25:=1 указывает на то, что в качестве индикатора младшей части микроадреса используется четырохразрядный код из регистра - кода прерываний (РКП). Четвертый и пятый разряды адреса микрокоманды - нули. Разряды 13-6 - из тела микрокоманды, т.е. в этом случае осуществляется переход по регистру кода прерываний (УПР_КП).&lt;br /&gt;
&lt;br /&gt;
=== Микрокоманды условного ветвления ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим формат микрокоманды перехода по условиям (см. рис. 45). Поле &amp;quot;ФМК&amp;quot;: МК ⟨31, 30, 29⟩ : = ⟨1, 1, 0⟩&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic45.png|600px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды перехода по условию в ОБ не выполняются никаких содержательных операций. Происходит только анализ признаков N, Z, V, C, вырабатываемых в ОБ, и анализ некоторых флагов состояния и выработка сигнала ветвления (&amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt;). Сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; вырабатывается схемой образования условия ветвления и затем поступает на блок управления приемом и обработкой микрокоманд (БПМК), где и формируется сигнал СВМС, который настраивает мультиплексор регистра адреса пуска ПЗУ - микрокода на определенное направление. После выдачи микрокоманды условного перехода она тормозится до появления сигнала готовности ОБ. Если при появлении сигнала готовности ОБ сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; переходит в низкий уровень, то следующая микрокоманда выбирается по адресу, указанному в поле микрокоманды (МК 15-2) и далее из адресов, следующих за этим адресом по порядку. Если сигнал &amp;lt;span style=&amp;quot;text-decoration: overline;&amp;quot;&amp;gt;BR&amp;lt;/span&amp;gt; при появлении сигнала готовности ОБ остается на высоком уровне, то следующая микрокоманда выбирается по адресу, следующему за микрокомандой ветвления.&lt;br /&gt;
&lt;br /&gt;
Приведем расшифровку разрядов в данном формате микрокоманды:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;УВ&amp;quot; (МК 28):=1/0 - условие ветвления по признакам и флагам;&lt;br /&gt;
* &amp;quot;N&amp;quot; (МК 27):=1   - ветвление по признаку отрицательного результата;&lt;br /&gt;
* &amp;quot;Z&amp;quot; (МК 26):=1   - ветвление по признаку нулевого результата;&lt;br /&gt;
* &amp;quot;V&amp;quot; (МК 25):=1  - ветвление по признаку переполнения;&lt;br /&gt;
* &amp;quot;C&amp;quot; (МК 24):=1   - ветвление по признаку переноса.&lt;br /&gt;
&lt;br /&gt;
Т.е. коды условий (N,Z,V,C) задаются в поле признаков (МК 27-24) установкой в 1 соответствующего разряда. Если единицами заданы сразу несколько признаков, то они объединяются по схеме &amp;quot;ИЛИ&amp;quot; при анализе, если разряд УВ:=1 (если разряд УВ:=0, то результирующее условие ветвления формируется по конъюнкции).&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FP&amp;quot; (МК 23):=1  - ветвление по универсальному флагу перехода в микропрограмме (Установка/сбhос флага перехода реализуется микропрограммно при помощи микрокоманды &amp;quot;SRF&amp;quot;, которая будет описана ниже);&lt;br /&gt;
* &amp;quot;FPD&amp;quot; (МК 22):=1 - ветвление по флагу разрешения прерывания в &amp;quot;длинных&amp;quot; командах (First Part Done );&lt;br /&gt;
* &amp;quot;PRB&amp;quot; (МК 21):=1  - ветвление по флагу PRB для команды PROBEX (флаг PRB взводится аппаратурой диспетчера памяти процессора, если запрещена процедура преобразования адреса);&lt;br /&gt;
* &amp;quot;RST&amp;quot; (МК 20):=1 - ветвление по флагу рестарта;&lt;br /&gt;
* &amp;quot;RD&amp;quot; (МК 19):=1  - ветвление по признаку &amp;quot;регистр-приемник&amp;quot; (Признак &amp;quot;RD&amp;quot; взводится ПЛМ_ДШК при дешифрации команды и используется также для модификации адреса микропрограммы содержательной обработки);&lt;br /&gt;
* &amp;quot;RETURN&amp;quot; (МК 17):=1 - нет записи в регистр возврата;&amp;lt;br/&amp;gt;(МК 17):=0 - запись в регистр возврата (Подробнее см. описание формата микрокоманды безусловного ветвления);&lt;br /&gt;
* &amp;quot;ЖС&amp;quot; (МК 16):=1  - признак &amp;quot;ждать состояния&amp;quot; кодов условий N,Z,V,C.&lt;br /&gt;
&lt;br /&gt;
Т.е. поле &amp;quot;ЖС&amp;quot; (МК 16) задает режим анализа. Если ЖС:=0, то анализируются те признаки, которые хранятся в РСП в момент приема микрокоманды ветвления. Если ЖС:=1, то анализируются признаки, выработанные в предыдущей микрокоманде, независимо от того, записываются они в РСП или нет (признаки берутся из схемы формирования состояния). В микрокомандах условного ветвления нет возможности модификации младшей части микроадреса в отличии от микроинструкций безусловного перехода и некоторых других, которые будут описаны ниже.&lt;br /&gt;
&lt;br /&gt;
=== Прочие микрокоманды ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим остальные форматы микрокоманд (см. рис. 46 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic46.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ЗСЧ, ПСЧ ====&lt;br /&gt;
&lt;br /&gt;
Для организации управления циклами в микропрограмме служат микрокоманды форматов ЗСЧ (загрузка микропрограммного счечика) и ПСЧ (ветвление по счетчику). Микропрограммный счетчик находится в блоке управления ПЗУ микрокода. Этот счетчик загружается микрокомандой формата ЗСЧ (см. рис. 46). После выборки микрокоманды этого формата  в счетчик загружается константа, содержащаяся  в разрядах  9-2 микрокоманды. Если разряд модификации константы установлен, т.е. МСС (МК 16):=1 , то разряды 5-0    константы заменяются разрядами 5-0 регистра R(18) ОБ. Разряды 7-6 константы берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды ветвления по счетчику (ПСЧ) анализируется состояние счетчика. После анализа состояния  счетчика его содержимое декрементируется н_ единицу. Если содержимое счетчика не равно нулю при анализе, то происходит ветвление по адресу, указанному в разрядах 15-2 микрокоманды. При этом, если разряд модификации адреса микроперехода установлен, т.е.  MADR  (МК 16):=1, то разряды 5-0 микроадреса перехода заменяются разрядами 5-0 регистра  R(I8) ОБ. Разряды микроадреса 13-6 берутся непосредственно из микрокоманды. Если содержимое счетчика равно нулю при анализе, то выбирается следующая микрокоманда.&lt;br /&gt;
&lt;br /&gt;
==== NOP ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   NOP (см. рис. 46 ) не производится никаких содержательных операций (пустой заполнитель в микропрограмме).&lt;br /&gt;
&lt;br /&gt;
==== ACC ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата АСС (см. рис. 46 ) - микрокоманды, выполняющие аппаратным ускорителем команд расширенной арифметики и плавающей точки (формат АСС будет раскрыт в другом источнике - отчет по НИР &amp;quot;Электроника 32 С&amp;quot;). После выборки микрокоманд этого формата в блоке управления приемом и обработкой микрокоманд вырабатывается сигнал торможения приема микрокоманды (блокируется сигнал WMCE). Это торможение сбрасывается внешним сигналом готовности ускорителя (АССЕ).&lt;br /&gt;
&lt;br /&gt;
==== RTS ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата RTS (см. рис. 46 ) - возврат из микроподпрограммы, в регистр адреса  ПЗУ - микрокода загружается содержимое регистра возврата (РВ), т.е. адрес микрокоманды, следующей за последней выполняемой микрокомандой безусловного/условного ветвления.&lt;br /&gt;
&lt;br /&gt;
==== ЧКА ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧКА (см.рис. 46 ) по адресу, указанному в разрядах I5-2 микрокоманды читается 32-разрядная адресная константа и помещается в регистре констант ПЗУ (RC), который доступен микропрограммно по адресу, указанному по полю чтения константы (поле &amp;quot;Y&amp;quot; в одноадресном формате). Если разряд модификации адреса константы установлен, т.е. MADR (МК 16):=1, то адрес константы формируется следующим образом:&lt;br /&gt;
&lt;br /&gt;
* разряды 5-0 адреса заменяются разрядами 5-0 регистра 18 ОБ;&lt;br /&gt;
* разряды 13-6 берутся непосредственно из микрокоманды.&lt;br /&gt;
&lt;br /&gt;
==== ЧЛК ====&lt;br /&gt;
&lt;br /&gt;
После выборки микрокоманды формата ЧЛК (см. рис. 46) в регистр констант ⟨RC⟩(в разряды 23-0) загружается содержимое микрокоманды из разрядов 25-2. Разряды 31-24  ⟨RC⟩ загружаются нулями, если признак СБ:=0 (МК 1), и единицами, если СБ:=1.&lt;br /&gt;
&lt;br /&gt;
Регистр констант доступен микропрограммно по адресу, указанному по полю чтения константы. Для чтения  литеральных и адресных констант используется адрес ⟨6⟩ в блоке констант (БК).&lt;br /&gt;
&lt;br /&gt;
==== SRF ====&lt;br /&gt;
&lt;br /&gt;
Микрокоманды формата SRF  (см. рис. 46) используются для установки/сброса некоторых функциональных флагов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых. признак)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|       WTMM         | МК 25:=1  | приему микрокоманды (блоки-            |&lt;br /&gt;
|                    |           | рует WMCE) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти                      |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       SFП1         | МК 21:=1  | Установка универсального               |&lt;br /&gt;
|                    |           | флага перехода                         |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       RFП1         | МК 20:=1  | Сброс универсального флага             |&lt;br /&gt;
|                    |           | перехода                               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ИНК          | МК 1:=1   | Инкремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|       ДЕК          | МК 5:=1   | Декремент номера регистра              |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Сброс конвейера приема ко-             |&lt;br /&gt;
|       ОСТ          | МК 4:=1   | манд, буфера команд, оста-             |&lt;br /&gt;
|                    |           | нов ДШК                                |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|                    |           | Устанавливает торможение по            |&lt;br /&gt;
|                    |           | приему микрокоманды (блоки-            |&lt;br /&gt;
|      ЖДЗРА         | МК 2:=1   | рует WMCE)  до конца вы -              |&lt;br /&gt;
|                    |           | полнения микрокоманды за -             |&lt;br /&gt;
|                    |           | грузки регистра адреса                 |&lt;br /&gt;
|                    |           | (R(18)ОБ).                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании микроинструкций ветвления и некоторых других допускающих модификацию младшей части микроадреса (УП, ЧКА, БП, ПСЧ), а также микроинструкций, допускающих модификацию младшей части константы, загружаемой в микропрограммный счетчик, необходимо загрузить регистр-модификатор адреса ОБ, который имеет адрес записи (1·100X)₂, т.е.  18₁₆ или 19₁₆. Флажок торможения  ЖДЗРА  сбрасывается по факту записи в R(19)ОБ, т.е. по окончании выполнения данной микроинструкции ОБ.&lt;br /&gt;
&lt;br /&gt;
Поясним алгоритм установки/адреса такого типа торможения по приему микрокоманды следующей временной диаграммой (см. рис. 47).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того регистр-модификатор R(18)ОБ может быть использован в качестве обычного аккумулятора; нулевой разряд R(18)ОБ можно прочитать по адресу 0F₁₆  в блоке констант, но на месте&lt;br /&gt;
второго разряда:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_1.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FLAG ====&lt;br /&gt;
&lt;br /&gt;
В отличие от формата SRF, формат микрокоманд FLAG (см. рис. 46) служит для установки некоторых функциональных флагов, привязанных к циклу операционного блока (ОБ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
| Наименование флага | Состояние |             Назначение                 |&lt;br /&gt;
| (вых.признаки)     |           |                                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      INTMS         | МК 23:=1  | Подсветка микропрограммы               |&lt;br /&gt;
|                    |           | обработки прерываний                   |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      RCPU          | МК 22:=1  | Микропрограммный сброс                 |&lt;br /&gt;
|                    |           | процессора                             |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIVV          | МК 21:=1  | Блокировка целочисленного              |&lt;br /&gt;
|                    |           | переполнения (сброс по &amp;quot;КК&amp;quot;)           |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      CCFPU         | МК 20:=1  | Принять состояние от аппа-             |&lt;br /&gt;
|                    |           | ратного ускорителя команд              |&lt;br /&gt;
|                    |           | расширенной арифметики и               |&lt;br /&gt;
|                    |           | плавающей точки                        |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      PROB          | МК 19:=1  | Флаг для команды PROBE                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      SIU           | МК 17:=1  | Микропрограммный опрос бло-            |&lt;br /&gt;
|                    |           | ка прерываний (БПР)                    |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      TOU           | МК 16:=1  | Торможение операционного               |&lt;br /&gt;
|                    |           | блока (ОБ) до конца работы             |&lt;br /&gt;
|                    |           | диспетчера памяти (ДП)                 |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
|      COPWT         | МК 15:=1  | Перепись  копий РСП и СК               |&lt;br /&gt;
+--------------------+-----------+----------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INTMS  - устанавливает два аппаратных флага:&lt;br /&gt;
* INVRD  - чтение вектора прерываний по физическому адресу. Флаг INVRD - сбрасывается первой одноадресной микроинструкцией.&lt;br /&gt;
* SKF    - признак использования стека ядра/прерываний. Флаг SKF - сбрасывается по концу команды (КК).&lt;br /&gt;
&lt;br /&gt;
Микропрограммный сброс процессора по флагу RCPU  осуществляется по следующей схеме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_2.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   PROB   обеспечивается холостой цикл диспетчера памяти для пробирования адреса. Если адрес недоступен, то аппаратура диспетчера памяти взводит флажок PRB, по которому производится ветвление.&lt;br /&gt;
&lt;br /&gt;
По факту установки флага   COPWT  (и по &amp;quot;КК&amp;quot;)  обеспечивается аппаратная перепись копий РСП и СК:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic47_3.png|300px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== REST ====&lt;br /&gt;
&lt;br /&gt;
При выборке микрокоманды   REST   (см. рис. 46) происходит восстановление РОНа из стека-рестарта и декрементируется счетчик рестарта (Запись  с стек  рестарта происходит аппаратно в фазе адресации операндов, при использовании одноадресной микроинструкции, микроопераций инкремент/декремент, употребления по полю чтения-Х микрокоманды 4-х разрядного номера регистра общего назначения).&lt;br /&gt;
&lt;br /&gt;
Алгоритм восстановления регистров-указателей операндов из стека рестарта приведен на рис. 48. (глубина стека рестарта равна 6, в соответствии с максимальным количеством операндов в команде).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic48.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.13. Описание ресурсов микропрограммного уровня процессора ==&lt;br /&gt;
&lt;br /&gt;
К ресурсам микропрограммиста будем относить такие регистры операционного блока (ОБ), как регистры общего назначения (РОНк), регистр-указатель стекового кадра, регистр-указатель аргумента, регистр-указатель стека, регистры-аккумуляторы, регистры виртуального адреса, счетчик команд, слово состояния процессора, буферный регистр данных и т.д., а также некоторые внутренние регистры процессора. Все регистры, используемые в проекте &amp;quot;Электроника 32&amp;quot;, сведены в табл. 6.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступен также блок констант операционного блока (БК). Константы ОБ приведены в табл. 7.&lt;br /&gt;
&lt;br /&gt;
Микропрограммно доступна любая ячейка виртуального адресного пространства. Виртуальный адрес содержит 32 разряда и определяет ячейку длиной в байт в адресном пространстве.&lt;br /&gt;
&lt;br /&gt;
Для программиста этот адрес обеспечивает адресацию линейной матрицы объемом в 4 294 967 296 байтов. Виртуальное адресное пространство разделено на страницы по 512 байтов каждая. Страница является объектом перемещения и защиты. Виртуальное адресное пространство показано на рис. 49 . Виртуальная память разделена на 2 части. Первая половина, занимающая младшую часть адресов, предназначена для распределения процессов и для каждого процесса, выполняемого в комплексе, она своя. Вторая половина виртуальной памяти, занимающая старшую часть адресов, предназначена для размещения системы, и эта область разделяется всеми процессами.&lt;br /&gt;
&lt;br /&gt;
Область процессов в свою очередь делится на две равные части: программную область (P0-регион) и управляющую область (P1-регион).&lt;br /&gt;
&lt;br /&gt;
=== Регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
Таблица 6. Регистры процессора&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес(16) |      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| R0-RB    | 00-0B     | Регистры общего        | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | назначения (РОН)       | з с X*, ȳ*    |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| AP       | 0C        | Указатель аргумента    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| FP       | 0D        | Указатель кадра        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| SP       | 0E        | Указатель стека        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+               |           |&lt;br /&gt;
| PC       | 0F        | Счетчик команд         |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| АК6      | 10        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК4      | 11        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК3      | 12        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        | ч на X, ȳ /   | ОБ про-   |&lt;br /&gt;
| АК5      | 13        | Регистры-аккумуляторы  | з с X*, ȳ*    | цессора   |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК0      | 14        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК1      | 15        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК2      | 16        |                        |               |           |&lt;br /&gt;
+----------+-----------+                        |               |           |&lt;br /&gt;
| АК7      | 18        |                        |               |           |&lt;br /&gt;
|          | (адрес    |                        |               |           |&lt;br /&gt;
|          | записи    |                        |               |           |&lt;br /&gt;
|          | 11ØØX₂)   |                        |               |           |&lt;br /&gt;
+----------+-----------+                        +---------------+           |&lt;br /&gt;
| АК8      | 17        |                        | ч на X, ȳ /   |           |&lt;br /&gt;
|          |           |                        | з с X*,ȳ*,X   |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКА      | 1D        | Регистр косвенной      | ч на X/з с    |           |&lt;br /&gt;
|          | (адрес    | адресации              | МД            |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РКВА     | 19        | Регистр копия вирту-   | ч на ȳ /      |           |&lt;br /&gt;
|          | (адрес    | ального адреса         | з с РВА       |           |&lt;br /&gt;
|          | чтения)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| РВА      | 1A(адрес  | Регистр виртуального   | ч на X,ȳ /    |           |&lt;br /&gt;
|          | чтения)   | адреса                 | з с X,ȳ*,РВАК |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РВАК     | 1B(адрес  | Регистр виртуально-    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | го адреса команды      | з с X*, ȳ*    |           |&lt;br /&gt;
|          | 0F(адрес  |                        |               |           |&lt;br /&gt;
|          | записи)   |                        |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| РНК      | 1C(адрес  | Регистр начала ко -    | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | манды                  | з с  СК       |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| КРСП     | 1D(адрес  | Копия регистра со-     | ч на ȳ /      |           |&lt;br /&gt;
|          | чтения)   | стояния процессора     | з с  РСП      |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ОБ про-   |&lt;br /&gt;
| PSL      | 1E        | Слово состояния про-   | ч на X,ȳ /    | цессора   |&lt;br /&gt;
|          |           | цессора                | з с X*,ȳ*     |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| БО       | 1F        | Буферный регистр       | ч на X,ȳ /    |           |&lt;br /&gt;
|          |           | данных                 | з с X*,ȳ*; МД |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Внутренние регистры процессора ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| Мнемоника| Адрес (16)|      Назначение        |    Доступ     |   Сфера   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| KSP      | 00        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | режима ядра            |               | -         |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ESP      | 01        | Указатель стека ре-    | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | жима исполнения        |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SSP      | 02        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима супервизора       |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| USP      | 03        | Указатель стека ре-    | ч/з           |           |&lt;br /&gt;
|          |           | жима пользователя      |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ISP      | 04        | Указатель стека пре-   | ч/з           | (область  |&lt;br /&gt;
|          |           | рываний                |               | сист.рег. |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 05...07   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0BR     | 08        | Регистр базн Р0        | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| P0LR     | 09        | Регистр длины Р0       | ч/з           | Диспетчер |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ памяти    |&lt;br /&gt;
| P1BR     | 0A        | Регистр базы P1        | ч/з           | процессо- |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ра        |&lt;br /&gt;
| P1LR     | 0B        | Регистры длины P1      | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SBR      | 0C        | Регистр базы системы   | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| SLR      | 0D        | Регистр длины системы  | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 0E...0F   | Резерв                 | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PCBB     | 10        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления процесса    |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SCBB     | 11        | Регистр базы блока     | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | управления системы     |               | Q-BUS     |&lt;br /&gt;
|          |           |                        |               | (обл.си-  |&lt;br /&gt;
|          |           |                        |               | ст.рег.)  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IPL      | 12        | Уровень приоритета пре-| ч/з           | Процессор |&lt;br /&gt;
|          |           | рывания                |               | (разряды  |&lt;br /&gt;
|          |           |                        |               | 20+I6 PSL)|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ASTR     | 13        | Уровень AST            | ч/з           |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ Адаптер   |&lt;br /&gt;
| SIRR     | 14        | Регистр запроса на про-| з             | Q-BUS     |&lt;br /&gt;
|          |           | граммное прерывание    |               | (обл.си-  |&lt;br /&gt;
+----------+-----------+------------------------+---------------+ ст.рег.)  |&lt;br /&gt;
| SISR     | 15        | Регистр программного   | ч/з           |           |&lt;br /&gt;
|          |           | прерывания             |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 16        | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MCSR     | 17        | Регистр состояния сбоя | ч             | Контрол-  |&lt;br /&gt;
|          |           | машины                 |               | лер па -  |&lt;br /&gt;
|          |           |                        |               | мяти      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ICCS     | 18        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | таймера                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| NICR     | 19        | Регистр счета сле-     | з             | Адаптер   |&lt;br /&gt;
|          |           | дующего интервала      |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| ICR      | 1A        | Регистр-счетчик        | ч             | (обл.сист.|&lt;br /&gt;
|          |           | интервалов             |               | рег.)     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TODR     | 1B        | Регистр времени        | ч/з           |           |&lt;br /&gt;
|          |           | дня                    |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 1C...1F   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| RXCS     | 20        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного при -      |               |           |&lt;br /&gt;
|          |           | емника                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| RXDB     | 21        | Регистр данных кон-    | ч             |           |&lt;br /&gt;
|          |           | сольного приемника     |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXCS     | 22        | Регистр состояния      | ч/з           |           |&lt;br /&gt;
|          |           | консольного пере -     |               |           |&lt;br /&gt;
|          |           | датчика                |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| TXDB     | 23        | Регистр данных кон-    | з             |           |&lt;br /&gt;
|          |           | сольного передатчика   |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBDR     | 24        | Отключение групп бу-   | ч/з           |           |&lt;br /&gt;
|          |           | фера трансляции(при    |               |           |&lt;br /&gt;
|          |           | обращении читаются     |               |           |&lt;br /&gt;
|          |           | нули)                  |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CADR     | 25        | Регистр отключения     | ч/з           | Контроллер|&lt;br /&gt;
|          |           | КЭШ-памяти             |               | памяти    |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| MCESR    | 26        | Регистр ошибок при     | ч/з           |           |&lt;br /&gt;
|          |           | машинном сбое          |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+           |&lt;br /&gt;
| CAER     | 27        | Регистр ошибок КЭШ-    | ч/з           |           |&lt;br /&gt;
|          |           | памяти                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| ACCS     | 28        | Регистр состояния      | ч             | БИС со -  |&lt;br /&gt;
|          |           | ускорителя команд      |               | процес -  |&lt;br /&gt;
|          |           | П.З.                   |               | сора      |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 29...36   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| IORESET  | 37        | Регистр сброса         | з             | Адаптер   |&lt;br /&gt;
|          |           | UNIBUS                 |               | Q-BUS     |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| MME      | 38        | Регистр включения      | ч/з           | Диспетчер |&lt;br /&gt;
| (MAPEN)  |           | диспетчера памяти      |               | памяти про-|&lt;br /&gt;
|          |           |                        |               | цессора   |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIA     | 39        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | всего буфера тран-     |               | памяти    |&lt;br /&gt;
|          |           | сляции                 |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| TBIS     | 3A        | Регистр обнуления      | з             | Диспетчер |&lt;br /&gt;
|          |           | записи в буфере        |               | памяти    |&lt;br /&gt;
|          |           | трансляции             |               | процессора|&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          | 3B...3C   | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| PMI      | 3D        | Регистр включения      | ч/з           | Адаптер   |&lt;br /&gt;
|          |           | исполнительного        |               | Q-BUS     |&lt;br /&gt;
|          |           | монитора               |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
| SID      | 3E        | Регистр идентифика-    | ч/з           | Процессор |&lt;br /&gt;
|          |           | ции системы            |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
|          |           | Резерв                 |               |           |&lt;br /&gt;
+----------+-----------+------------------------+---------------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Константы ОБ ===&lt;br /&gt;
&lt;br /&gt;
Таблица 7. Константы ОБ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
| Адрес (16) | Значение (16) |                  Назначение                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    00      |   00000004    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    01      |   00000002    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    02      |   00000008    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    03      |   00000001    | Инкремент                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    04      |   00000000    | Обнуление                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    05      |       -       | РСМ                                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    06      |       -       | Литера ПЗУ, адресные                          |&lt;br /&gt;
|            |               | константы                                     |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    07      |   00000066    | Константа перевода в код                      |&lt;br /&gt;
|            |               | с избытком 6                                  |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    08      |   0000000*    | [1:0] = РСП (CRM), [2] - IS                   |&lt;br /&gt;
|            |               | (Чтение СRM из РСП)                           |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    09      |   00C00000    | Маски  CRM  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0A      |   FFFFFFFF    |                                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0B      |   00IF0000    | Маски  IPL  в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0C      |   04000000    | Маски  IS   в РСП                             |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0D      |   0000000*    | [2:0] = MPL                                   |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0E      |   000000**    | Десятичная коррекция                          |&lt;br /&gt;
|            |               | [7:0] = { AA,A0                               |&lt;br /&gt;
|            |               |         { 0A,00                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
|    0F      |   0000000*    | второй разряд = нулевой                       |&lt;br /&gt;
|            |               | разряд R18 выбор стека                        |&lt;br /&gt;
|            |               | при прерываниях                               |&lt;br /&gt;
+------------+---------------+-----------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Адресное пространство ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic49.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Системное ОЗУ ===&lt;br /&gt;
&lt;br /&gt;
Для организации системного ОЗУ (СОЗУ), некоторых внутренних системных регистров, хранения карты адресов Q-BUS  БИС адаптера магистралей обеспечивает управление (чтение, запись) четырех микросхем статического ЗУ с организацией 2Кх8.&lt;br /&gt;
&lt;br /&gt;
Системное ОЗУ и системные регистры доступны микропрограммно.&lt;br /&gt;
&lt;br /&gt;
== 1.14. Система команд ==&lt;br /&gt;
&lt;br /&gt;
В данном разделе очень кратко будут описаны те инструкции, которые используются в любом программном обеспечении при всех применениях вычислительной системы &amp;quot;Электроника 32&amp;quot;. Главная цель архитектуры вычислительной системы - обеспечить набор команд, который симметричен по отношению к типам данных. Например, существуют команды сложения (ADD) для семи типов данных (байт, слово, длинное слово, F , D , G  и H -floating), причем каждая команда имеет варианты для двух и трех операндов. Симметричными командами являются также команды пересылки, преобразования тестирования и вычислений (в микропроцессорной системе &amp;quot;Электроника 32&amp;quot; команды работы со I28-разрядными данными,&lt;br /&gt;
такими как H-floating и Octal integer, выполняются эмуляцией на программном уровне).&lt;br /&gt;
&lt;br /&gt;
В числе команд пересылок входят также команды пересылки с арифметическим отрицанием и логическим дополнением. Здесь команды отрицания и дополнения включают в себя пересылку и не изменяют исходный операнд.&lt;br /&gt;
&lt;br /&gt;
Команды арифметических вычислений включают в себя сложение, вычитание, умножение и деление. Логические команды работают с тремя типами данных (байт, слово, длинное слово) и включают в себя: установку и сброс битов, логическое сложение MOD 2.  Команды арифметических и логических вычислений доступны как в двух, так и в трехоперандной формах для каждого допустимого типа данных. Трехоперандная форма принимает первые два операнда и сохраняет результат по адресу третьего операнда.&lt;br /&gt;
&lt;br /&gt;
Для задач целочисленного программирования имеется  команда записи в стек длинного слова.&lt;br /&gt;
&lt;br /&gt;
Для каждого типа целочисленных данных существуют операции инкремента и декремента.&lt;br /&gt;
&lt;br /&gt;
Существуют специальные команды сложения, вычитания, умножения и деления с многократной точностью.&lt;br /&gt;
&lt;br /&gt;
Для реализации математиоеских функций введены команды вычисления показателей степени и полиномов.&lt;br /&gt;
&lt;br /&gt;
В систему команд входят также команды обработки чисел в формате с плавающей запятой. Команды с плавающей запятой работают с данными четырех типов (F, D , G  и H-формат). Для всех четырех типов данных с плавающей запятой имеются стандартные арифметические операции сложения, вычитания, умножения и деления (ADD, SUB, MUL, DIV). Кроме того имеются две составные операции EMOD и POLY, также применимые ко всем четырем типам данных с плавающей запятой. EMOD вырабатывает произведение двух операндов, а затем разделяет результат на целую и дробную части. POLY подсчитывает значение полинома по заданной степени, аргументу и  указателю таблицы коэффициентов.&lt;br /&gt;
&lt;br /&gt;
Имеется полный набор команд преобразования из целочисленного типа данных во все форматы с плавающей запятой, и наоборот. Также имеется набор команд преобразования из одного типа данных с плавающей запятой в другой, за исключением преобразований из формата D  в формат G  и наоборот.&lt;br /&gt;
&lt;br /&gt;
Для всех типов данных с плавающей запятой существует класс команд пересылок (MOV, MNEG), очистки (CLR), сравнения (СМР) и тестирования (TST). И, наконец, существует класс команд АСВ (сложение, сравнение и переход).&lt;br /&gt;
&lt;br /&gt;
В процессоре имеется широкий набор команд ветвлений и переходов (команды управления). Довольно часто требуется передача управления, основанная на значении переменной, для поддержки таких конструкций в языках высокого уровня как &amp;quot;GOTO&amp;quot; в языке FORTRAN  и &amp;quot;CASE&amp;quot; в языке PASCAL . Вследствии этого система команд включает в себя команду CASE , позволяющую эффективно реализовать эти структуры управления. Команда CASE не только производит передачу управления, но также управляет инициализацией и контролем границ для переменной типа INDEX. Цепь команды CASE состоит в передаче управления одной из n ячеек на основании значения целочисленного операнда-селектора.&lt;br /&gt;
&lt;br /&gt;
Существует также ряд важных команд, предназначенных для работы со специфическими типами данных, такими как поле бит переменной длины, символьная строка, строка десятичных цифр, строка упакованных десятичных цифр, очередь (типы данных приведены на рис. 50).&lt;br /&gt;
&lt;br /&gt;
В системе команд имеется несколько категорий команд, которые обладают в точно определенных условиях большими привилегиями, чем обычное программное обеспечение.&lt;br /&gt;
&lt;br /&gt;
Это привилегированные команды и особые (специальные) команды, которые не попадают под какую-либо классификацию. Некоторые из этих инструкций предназначены для работы со специализированной частью архитектуры вычислительной системы (например: диспетчеризация памяти, прерывания и исключительные ситуации, диспетчеризация процессов, внутренние регистры процессора).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic50.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для наглядности представления системы команд, на основании изложенного выше, разделим набор инструкций на 13 основных разделов:&lt;br /&gt;
&lt;br /&gt;
# Команды для работы с целыми числами и логические команды.&lt;br /&gt;
# Команды для работы со стеками и адресами памяти.&lt;br /&gt;
# Команды управления.&lt;br /&gt;
# Команды для работы с переменными битовыми полями.&lt;br /&gt;
# Команды вызова процедур и подпрограмм.&lt;br /&gt;
# Привилегированные команды.&lt;br /&gt;
# Специальные команды.&lt;br /&gt;
# Команды работы с очередями.&lt;br /&gt;
# Команды плавающей арифметики.&lt;br /&gt;
# Команды обработки строк символов.&lt;br /&gt;
# Команды десятичной строки цифр.&lt;br /&gt;
# Команды контроля циклической избыточности.&lt;br /&gt;
# Команды редактирования.&lt;br /&gt;
&lt;br /&gt;
Ниже будет приведено краткое описание инструкций (см. табл. 8).&lt;br /&gt;
&lt;br /&gt;
Внутри каждого раздела близкие по свойствам инструкции объединены в группы и вместе описываются. Описание групп инструкций состоит из следующих пунктов: название группы; код команды; формат каждой инструкции в группе.&lt;br /&gt;
&lt;br /&gt;
В табл.8 приводится мнемоника команды, определяются название и тип каждого спецификатора операнда инструкции и порядок, в котором они появляются в инструкции.&lt;br /&gt;
&lt;br /&gt;
Таблица 8&lt;br /&gt;
&lt;br /&gt;
СИСТЕМА КОМАНД&lt;br /&gt;
&lt;br /&gt;
=== 1. Команды для работы с целыми числами и логические команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  58 | ADAWI     | КОП add.rw,sum.mw             | Сложение выровненных             |&lt;br /&gt;
|     |           |                               | слоев с блокировкой па-          |&lt;br /&gt;
|     |           |                               | мяти                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  80 | ADDB2     | КОП add.rx,sum.mx             | Сложение байтов двух -           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A0 | ADDW2     | -&amp;quot;-                           | Сложение слов двухопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C0 | ADDL2     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  81 | ADDB3     | КОП add1.rx,add2.rx,          | Сложение байтов трех -           |&lt;br /&gt;
|     |           | sum.mx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A1 | ADDW3     | -&amp;quot;-                           | Сложение слов трехопе-           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C1 | ADDL3     | -&amp;quot;-                           | Сложение двойных слов            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D8 | ADWC      | КОП add.rl,sum.ml             | Сложение с переносом             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  78 | ASHL      | КОП cnt.rb,src.rx,            | Арифметический сдвиг             |&lt;br /&gt;
|     |           | dst.wx                        | двойного слова                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  79 | ASHQ      | -&amp;quot;-                           | Арифметический сдвиг             |&lt;br /&gt;
|     |           |                               | квадрослова                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8A | BICB2     | КОП mask.rx,dst.mx            | Очистка разрядов байта           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AA | BICW2     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CA | BICL2     | -&amp;quot;-                           | Очистка разрядов двой -          |&lt;br /&gt;
|     |           |                               | ного слова двухоперанд-          |&lt;br /&gt;
|     |           |                               | ная                              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8B | BICB3     | КОП mask.rx,                  | Очистка разрядов байта           |&lt;br /&gt;
|     |           | src.rx,dst.mx                 | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AB | BICW3     | -&amp;quot;-                           | Очистка разрядов слова           |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CB | BICL3     | -&amp;quot;-                           | Очистка разрядов двойно-         |&lt;br /&gt;
|     |           |                               | го слова трехоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  88 | BISB2     | КОП mask.rx,                  | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A8 | BISW2     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | двухоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C8 | BISL2     | -&amp;quot;-                           | Установка разрядов двойно-       |&lt;br /&gt;
|     |           |                               | го слова двухоперандная          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  89 | BISB3     | КОП mask.rx,src.rx,           | Установка разрядов байта         |&lt;br /&gt;
|     |           | dst.mx                        | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A9 | BISW3     | -&amp;quot;-                           | Установка разрядов слова         |&lt;br /&gt;
|     |           |                               | трехоперандная                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C9 | BISL3     | -&amp;quot;-                           | Установка разрядов двой -        |&lt;br /&gt;
|     |           |                               | ного слова трехоперандная        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  93 | BITB      | КОП mask.rx,src.rx            | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B3 | BITW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D3 | BITL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  94 | CLRB      | КОП dst.wx                    | Очистка байта                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B4 | CLRW      | -&amp;quot;-                           | Очистка слова                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4 | CLRL      | -&amp;quot;-                           | Очистка двойного слова           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C | CLRQ      | -&amp;quot;-                           | Очистка квадрослова              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  91 | CMPB      | КОП src1.rx,src2.rx           | Сравнение байтов                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B1 | CMPW      | -&amp;quot;-                           | Сравнение слов                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D1 | CMPL      | -&amp;quot;-                           | Сравнение двойных слов           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  99 | CVTBW     | КОП src.rx,dst.my             | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | слово                            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  98 | CVTBL     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  33 | CVTWB     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | байт                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  32 | CVTWL     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|     |           |                               | двойное слово                    |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F6 | CVTLB     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в байт                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F7 | CVTLW     | -&amp;quot;-                           | Преобразование двойно-           |&lt;br /&gt;
|     |           |                               | го слова в слово                 |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  97 | DECB      | КОП dif.mx                    | Декремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B7 | DECW      | -&amp;quot;-                           | Декремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D7 | DECL      | -&amp;quot;-                           | Декремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  86 | DIVB2     | КОП divr.rx,quo.mx            | Деление байтов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A6 | DIVW2     | -&amp;quot;-                           | Деление слов двухопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C6 | DIVL2     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  87 | DIVB3     | КОП divr.rx,divd.rx,          | Деление байтов трехопе-          |&lt;br /&gt;
|     |           | quo.wx                        | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A7 | DIVW3     | -&amp;quot;-                           | Деление слов трехопе -           |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C7 | DIVL3     | -&amp;quot;-                           | Деление двойных слов             |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7B | EDIV      | КОП divr.rl,divd.rq,          | Расширенное деление              |&lt;br /&gt;
|     |           | quo.wl,rem.wl                 |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7A | EMUL      | КОП mulr.rl,muld.rl,          | Расширенное умножение            |&lt;br /&gt;
|     |           | add.rl,prod.wq                |                                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  96 | INCB      | КОП sum.mx                    | Инкремент на один байт           |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B6 | INCW      | -&amp;quot;-                           | Инкремент на одно слово          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D6 | INCL      | -&amp;quot;-                           | Инкремент на одно двой-          |&lt;br /&gt;
|     |           |                               | ное слово                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  92 | MCOMB     | КОП src.rx,dst.wx             | Пересылка байта с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B2 | MCOMW     | -&amp;quot;-                           | Пересылка слова с инвер-         |&lt;br /&gt;
|     |           |                               | сией                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D2 | MCOML     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с инверсией                      |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8E | MNEGB     | -&amp;quot;-                           | Пересылка байта с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AE | MNEGW     | -&amp;quot;-                           | Пересылка слова с ариф -         |&lt;br /&gt;
|     |           |                               | метическим отрицанием            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CE | MNEGL     | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
|     |           |                               | с арифметическим отрица-         |&lt;br /&gt;
|     |           |                               | нием                             |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  90 | MOVB      | -&amp;quot;-                           | Пересылка байта                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B0 | MOVW      | -&amp;quot;-                           | Пересылка слова                  |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D0 | MOVL      | -&amp;quot;-                           | Пересылка двойного слова         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7D | MOVQ      | -&amp;quot;-                           | Пересылка квадрослова            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9B | MOVZBW    | КОП src.rx,dst.wy             | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9A | MOVZBL    | -&amp;quot;-                           | Пересылка байта с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC | MOVZWL    | -&amp;quot;-                           | Пересылка слова с допол-         |&lt;br /&gt;
|     |           |                               | нением ведущими нулями           |&lt;br /&gt;
|     |           |                               | до двойного слова                |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  84 | MULB2     | КОП mulr.rx,prod.mx           | Умножение байтов двух-           |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A4 | MULW2     | -&amp;quot;-                           | Умножение слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C4 | MULL2     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  85 | MULB3     | КОП mulr.rx,muld.rx,          | Умножение байтов трех-           |&lt;br /&gt;
|     |           | prod.wx                       | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A5 | MULW3     | -&amp;quot;-                           | Умножение слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C5 | MULL3     | -&amp;quot;-                           | Умножение двойных слов           |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DD | PUSHL     | КОП src.rl,{-(SP).wl}         | Занесение двойного сло-          |&lt;br /&gt;
|     |           |                               | ва в стек                        |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9C | ROTL      | КОП cnt.rb,src.rl,dst.wl      | Циклический сдвиг двой-          |&lt;br /&gt;
|     |           |                               | ного слова                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D9 | SBWC      | КОП sub.rl,dif.ml             | Вычитание с переносом            |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  82 | SUBB2     | КОП sub.rx,dif.mx             | Вычитание байтов двух -          |&lt;br /&gt;
|     |           |                               | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A2 | SUBW2     | -&amp;quot;-                           | Вычитание слов двухопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C2 | SUBL2     | -&amp;quot;-                           | Вычитание двойных слов           |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  83 | SUBB3     | КОП sub.rx,min.rx,            | Вычитание байтов трех-           |&lt;br /&gt;
|     |           | dif.wx                        | операндное                       |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  A3 | SUBW3     | -&amp;quot;-                           | Вычитание слов трехопе-          |&lt;br /&gt;
|     |           |                               | рандное                          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  C3 | SUBL3     | КОП sub.rx,min.rx,            | Вычитание двойных слов           |&lt;br /&gt;
|     |           | dif.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  95 | TSTB      | КОП src.rx                    | Проверка разрядов байта          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B5 | TSTW      | -&amp;quot;-                           | Проверка разрядов слова          |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D5 | TSTL      | -&amp;quot;-                           | Проверка разрядов двойно-        |&lt;br /&gt;
|     |           |                               | го слова                         |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8C | XORB2     | КОП mask.rx,dst.mx            | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AC | XORW2     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | двухоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CC | XORL2     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 двухоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8D | XORB3     | КОП mask.rx,src.rx,           | Сложение байтов по MOD2          |&lt;br /&gt;
|     |           | dst.wx                        | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AD | XORW3     | -&amp;quot;-                           | Сложение слов по MOD2            |&lt;br /&gt;
|     |           |                               | трехоперандное                   |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CD | XORL3     | -&amp;quot;-                           | Сложение двойных слов по         |&lt;br /&gt;
|     |           |                               | MOD2 трехоперандное              |&lt;br /&gt;
+-----+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Команды работы со стеками и адресами памяти  ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9E  | MOVAB     | КОП src.ax,dst.wl             | Пересылка адреса байта           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3E  | MOVAW     | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DE  | MOVAL,    | -&amp;quot;-                           | Пересылка адреса двойного        |&lt;br /&gt;
|      | MOVAF     |                               | слова /или слова формата         |&lt;br /&gt;
|      |           |                               | F/                               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7E  | MOVAQ,    | КОП src.ax,dst.wl             | Пересылка адреса четвер-         |&lt;br /&gt;
|      | MOVAD,    |                               | ного слова /или слов             |&lt;br /&gt;
|      | MOVAG     |                               | форматов D, G  /                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | MOVAO,    | -&amp;quot;-                           | Пересылка адреса восьмер-        |&lt;br /&gt;
|      | MOVAH     |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата H/                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | PUSHAB    | КОП src.ax,{-(SP).wl}         | Пересылка адреса байта           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3F  | PUSHAW    | -&amp;quot;-                           | Пересылка адреса слова           |&lt;br /&gt;
|      |           |                               | в стек                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DF  | PUSHAL,   | -&amp;quot;-                           | Пересылка адреса двой-           |&lt;br /&gt;
|      | PUSHAF    |                               | ного слова /или слова            |&lt;br /&gt;
|      |           |                               | формата F / в стек               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7F  | PUSHAQ,   | -&amp;quot;-                           | Пересылка адреса чет -           |&lt;br /&gt;
|      | PUSHAD,   |                               | верного слова /или слов          |&lt;br /&gt;
|      | PUSHAG    |                               | форматов D ; G / в               |&lt;br /&gt;
|      |           |                               | стек                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7FFD | PUSHAO,   | -&amp;quot;-                           | Пересылка адреса вось-           |&lt;br /&gt;
|      | PUSHAH    |                               | мерного слова/или сло-           |&lt;br /&gt;
|      |           |                               | ва формата H/ в стек             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Команды управления ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  9D  | ACBB      | КОП limit.rx,add.rx,          | Сложение байтов со               |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3D  | ACBW      | -&amp;quot;-                           | Сложение слов со                 |&lt;br /&gt;
|      |           |                               | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F1  | ACBL      | КОП limit.rx,add.rx,          | Сложение двойных слов со         |&lt;br /&gt;
|      |           | index.mx,displ.bw             | сравнением и переход             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4F  | ACBF      | -&amp;quot;-                           | Сложение слов формата F          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6F  | ACBD      | -&amp;quot;-                           | Сложение слов формата D          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4FFD | ACBG      | -&amp;quot;-                           | Сложение слов формата G          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6FFD | ACBH      | -&amp;quot;-                           | Сложение слов формата H          |&lt;br /&gt;
|      |           |                               | со сравнением и переход          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F3  | AOBLEQ    | КОП limit.rx,index.ml,        | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           | displ.bb                      | ход, если меньше или             |&lt;br /&gt;
|      |           |                               | равно                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F2  | AOBLSS    | -&amp;quot;-                           | Прибавить единицу и пере-        |&lt;br /&gt;
|      |           |                               | ход, если меньше                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  19  | BLSS      | КОП displ.bb                  | Переход, если  N = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  15  | BLEQ      | -&amp;quot;-                           | Переход, если {NORZ}=1           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  13  | BEQL,BEQLU| -&amp;quot;-                           | Переход, если  Z = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  12  | BNEQ,BNEQU| -&amp;quot;-                           | Переход, если  Z = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I8  | BGEQ      | -&amp;quot;-                           | Переход, если  N = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  14  | BGTR      | -&amp;quot;-                           | Переход, если {NORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1F  | BLSSU,BCS | -&amp;quot;-                           | Переход, если  C = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1B  | BLEQU     | -&amp;quot;-                           | Переход, если {COR Z}= I         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1E  | BGEQU,BCC | -&amp;quot;-                           | Переход, если  C = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1A  | BGTRU     | -&amp;quot;-                           | Переход, если {CORZ} = 0         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1D  | BVS       | -&amp;quot;-                           | Переход, если  V = I             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  1C  | BVC       | -&amp;quot;-                           | Переход, если  V = 0             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E0  | BBS       | КОП pos.rl,base.vb,           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           | disp l.bb,{field.rv}          | ный разряд равен I/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E1  | BBC       | -&amp;quot;-                           | Ветвление по биту /указан-       |&lt;br /&gt;
|      |           |                               | ный разряд равен 0/              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E2  | BBSS      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить /без      |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E4  | BBSC      | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и очистить /без        |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E5  | BBCC      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и очистить /без бло -       |&lt;br /&gt;
|      |           |                               | кировки памяти/                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E3  | BBCS      | -&amp;quot;-                           | Ветвление по очищенному          |&lt;br /&gt;
|      |           |                               | биту и установить /без           |&lt;br /&gt;
|      |           |                               | блокировки памяти/               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E6  | BBSSI     | -&amp;quot;-                           | Ветвление по установлен-         |&lt;br /&gt;
|      |           |                               | ному биту и установить с         |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E7  | BBCCI     | -&amp;quot;-                           | Ветвление по сброшенному         |&lt;br /&gt;
|      |           |                               | биту и очистить с блоки -        |&lt;br /&gt;
|      |           |                               | ровкой памяти                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E8  | BLBS      | КОП src.rl,displ.bb           | Ветвление, если установлен       |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  E9  | BLBC      | -&amp;quot;-                           | Ветвление, если сброшен          |&lt;br /&gt;
|      |           |                               | младший бит                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  II  | BRB       | КОП displ.bx                  | Безусловный переход с бай-       |&lt;br /&gt;
|      |           |                               | товым смещением                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3I  | BRW       | -&amp;quot;-                           | Безусловный переход со сме-      |&lt;br /&gt;
|      |           |                               | щением в одно слово              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I0  | BSBB      | КОП displ.bx,{-(SP).wl}       | Переход к подпрограмме с         |&lt;br /&gt;
|      |           |                               | байтовым смещением               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  30  | BSBW      | -&amp;quot;-                           | Переход к подпрограмме со        |&lt;br /&gt;
|      |           |                               | смещением в одно слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  8F  | CASEB     | КОП selector.rx,base.rx,      | Многофункциональный пере-        |&lt;br /&gt;
|      |           | limit.rx,displ.bw-list        | ход с байтовым смещением         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  AF  | CASEW     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  CF  | CASEL     | -&amp;quot;-                           | Многофункциональный пере-        |&lt;br /&gt;
|      |           |                               | ход со смещением в одно          |&lt;br /&gt;
|      |           |                               | двойное слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I7  | JMP       | КОП dst.ab                    | Абсолютный безусловный           |&lt;br /&gt;
|      |           |                               | переход                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  I6  | JSB       | КОП dst.ab,{-(SP).wl}         | Абсолютный переход к под-        |&lt;br /&gt;
|      |           |                               | программе                        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  05  | RSB       | КОП {(SP)+.rl}                | Возврат из подпрограммы          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F4  | SOBGEQ    | КОП index.ml,displ.bb         | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше или равно            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F5  | SOBGTR    | -&amp;quot;-                           | Вычесть единицу и переход,       |&lt;br /&gt;
|      |           |                               | если больше                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Команды для работы с переменными битовыми полями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EC  | CMPV      | КОП pos.rl,size.rb,base.vb,   | Сравнение полей                  |&lt;br /&gt;
|      |           | {field.rv},src.rl             |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  ED  | CMPZV     | -&amp;quot;-                           | Сравнение полей с рас-           |&lt;br /&gt;
|      |           |                               | ширением ведущими нулями         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EE  | EXTV      | КОП pos.rl,size.rb,           | Выделить поле                    |&lt;br /&gt;
|      |           | base.vb,{field.rv},dst.wl     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EF  | EXTZV  -  | -&amp;quot;-                           | Выделить поле, расши -           |&lt;br /&gt;
|      |           |                               | ренное ведущими нулями           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EA  | FFS       | КОП startpos.rl,              | Поиск первого установ-           |&lt;br /&gt;
|      |           | size.rb,base.vb,              | ленного разряда                  |&lt;br /&gt;
|      |           | {field.rv},findpos.wl         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  EB  | FFC       | -&amp;quot;-                           | Поиск первого сброшен-           |&lt;br /&gt;
|      |           |                               | ного разряда                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F0  | INSV      | КОП src.rl,pos.rl,            | Вставка поля                     |&lt;br /&gt;
|      |           | size.rb,base.vb,              |                                  |&lt;br /&gt;
|      |           | {field.wv}                    |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Команды вызова процедур и подпрограмм ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FA  | CALLG     | КОП arglist.ab,               | Вызов процедуры с                |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | произвольным списком             |&lt;br /&gt;
|      |           |                               | аргументов                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FB  | CALLS     | КОП numg.rg.rl,               | Вызов процедуры со               |&lt;br /&gt;
|      |           | dst.ab,{-(SP).w*}             | списком аргументов в             |&lt;br /&gt;
|      |           |                               | стеке                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  04  | RET       | КОП {(SP)+.r*}                | Возврат из процедуры             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Привилегированные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0C  | PROBER    | КОП mode.rb,len.rw,           | Проверка доступности по          |&lt;br /&gt;
|      |           | base.ab                       | чтению                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0D  | PROBEW    | -&amp;quot;-                           | Проверка доступности по          |&lt;br /&gt;
|      |           |                               | записи                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BC  | CHMK      | КОП param.rw,{-(ySP).w*},     | Смена режима на режим            |&lt;br /&gt;
|      |           | где: y=MINU(x,PSL &amp;lt;текущий    | ядра                             |&lt;br /&gt;
|      |           | реж.&amp;gt;)                        |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BD  | CHME      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | исполнения                       |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BE  | CHMS      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | супервизора                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BF  | CHMU      | -&amp;quot;-                           | Смена режима на режим            |&lt;br /&gt;
|      |           |                               | пользователя                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  02  | REI       | КОП {(SP)+.r*}                | Возврат из исключитель-          |&lt;br /&gt;
|      |           |                               | ной ситуации или пре -           |&lt;br /&gt;
|      |           |                               | рывания                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  06  | LDPCTX    | КОП {PCB.r*,-(кSP).w*},       | Загрузка контекста               |&lt;br /&gt;
|      |           | где PCB - регистр             | процесса                         |&lt;br /&gt;
|      |           | управления процес-            |                                  |&lt;br /&gt;
|      |           | сором                         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  07  | SVPCTX    | КОП {(SP)+.r*,PCB.w*}         | Сохранение контекста             |&lt;br /&gt;
|      |           |                               | процесса                         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DA  | MTPR      | КОП src.rl,procreg.rl         | Пересылка в процессор-           |&lt;br /&gt;
|      |           |                               | ный регистр                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DB  | MFPR      | КОП procreg.rl,dst.wl         | Пересылка из процессор-          |&lt;br /&gt;
|      |           |                               | ного регистра                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Специальные команды ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B9  | BICPSW    | КОП mask.rw                   | Сброс разрядов в слове           |&lt;br /&gt;
|      |           |                               | состояния процессора             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  B8  | BISPSW    | -&amp;quot;-                           | Установка разрядов в             |&lt;br /&gt;
|      |           |                               | слове состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  03  | BRT       | КОП {-(кSP).w*}               | Ошибка ветвления                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  00  | HALT      | -&amp;quot;-                           | Останов                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0A  | INDEX     | КОП subscript.rl,low.rl,      | Вычисление индекса               |&lt;br /&gt;
|      |           | high.rl,size.rl,indexin.rl,   |                                  |&lt;br /&gt;
|      |           | indexout.wl                   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  DC  | MOVPSL    | КОП dst.wl                    | Пересылка из длинного            |&lt;br /&gt;
|      |           |                               | слова состояния процес-          |&lt;br /&gt;
|      |           |                               | сора                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  01  | NOP       | КОП                           | Пустой оператор                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BB  | PUSHR     | КОП mask.rw,{-(SP).w*}        | Пересылка содержимого            |&lt;br /&gt;
|      |           |                               | регистров в стек                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  BA  | POPR      | КОП mask.rw,{(SP)+.r*}        | Удаление содержимого             |&lt;br /&gt;
|      |           |                               | регистров из стека               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  FC  | XFC       | КОП                           | Расширенный вызов                |&lt;br /&gt;
|      |           |                               | функции                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FEFF | BUGW      | КОП message.bx                | Проверить слово на на-           |&lt;br /&gt;
|      |           |                               | личие ошибок                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| FDFF | BUGL      | -&amp;quot;-                           | Проверить двойное сло-           |&lt;br /&gt;
|      |           |                               | во на наличие ошибок             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Команды работы с очередями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5C  | INSQHI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;голову&amp;quot; очереди с               |&lt;br /&gt;
|      |           |                               | блокировкой памяти               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5D  | INSQTI    | КОП entry.ab,header.aq        | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвост&amp;quot; очереди с бло-           |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0E  | INSQUE    | КОП entry.ab,pred.ab          | Занесение элемента в             |&lt;br /&gt;
|      |           |                               | очередь                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5E  | REMQHI    | КОП header.aq,addr.wl         | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;головы&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5F  | REMQTI    | -&amp;quot;-                           | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | &amp;quot;хвоста&amp;quot; очереди с бло-          |&lt;br /&gt;
|      |           |                               | кировкой памяти                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0F  | REMQUE    | КОП entry.ab,addr.wl          | Удаление элемента из             |&lt;br /&gt;
|      |           |                               | очереди                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. Команды плавающей арифметики ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  40  | ADDF2     | КОП addr.rx,sum.mx            | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  60  | ADDD2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 40FD | ADDG2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 60FD | ADDH2     | -&amp;quot;-                           | Сложение двухоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4I  | ADDF3     | КОП add1.rx,add2.rx,          | Сложение трехоперанд-            |&lt;br /&gt;
|      |           | sum.wx                        | ное в формате F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6I  | ADDD3     | -&amp;quot;-                           | Сложение трехоперанд-            |&lt;br /&gt;
|      |           |                               | ное в формате D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4IFD | ADDG3     | КОП add1.rx,add2.rx,          | Сложение трехоперандное          |&lt;br /&gt;
|      |           | sum.wx                        | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6IFD | ADDH3     | -&amp;quot;-                           | Сложение трехоперандное          |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  D4  | CLRL,CLRF | КОП dst.wx                    | Очистка двойного слова           |&lt;br /&gt;
|      |           |                               | /или слова формата F/            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7C  | CLRQ,CLRD,| -&amp;quot;-                           | Очистка четверного слова         |&lt;br /&gt;
|      | CLRG      |                               | /или слов форматов D ,G/         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7CFD | CLRO,CLRH | -&amp;quot;-                           | Очистка октослова /или           |&lt;br /&gt;
|      |           |                               | слова формата H/                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  5I  | CMPF      | КОП src1.rx,src2.rx           | Сравнение слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  7I  | CMPD      | -&amp;quot;-                           | Сравнение слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 5IFD | CMPG      | -&amp;quot;-                           | Сравнение слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 7IFD | CMPH      | -&amp;quot;-                           | Сравнение слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4B  | CVTRFL    | КОП src.rx,dst.wl             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в двойное сло-         |&lt;br /&gt;
|      |           |                               | во с округлением                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6B  | CVTRDL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата D  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4BFD | CVTRGL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата G  в двойное             |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6BFD | CVTRHL    | -&amp;quot;-                           | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата H в двойное              |&lt;br /&gt;
|      |           |                               | слово с округлением              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  48  | CVTFB     | КОП src.rx,dst.wy             | Преобразование слова             |&lt;br /&gt;
|      |           |                               | формата F в байт                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  56  | CVTFD     | КОП src.rx,dst.wy             | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 99FD | CVTFG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 98FD | CVTFH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4A  | CVTFL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  49  | CVTFW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата F в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 48FD | CVTGB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в байт                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 33FD | CVTGF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата F        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTGH     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово формата H        |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4AFD | CVTGL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в двойное слово          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 49FD | CVTGW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата G  в слово                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 68FD | CVTHB     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в байт                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| F7FD | CVTHD     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 56FD | CVTHF     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 76FD | CVTHG     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6AFD | CVTHL     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в двойное слово           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 69FD | CVTHW     | -&amp;quot;-                           | Преобразование слова фор-        |&lt;br /&gt;
|      |           |                               | мата H в слово                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  68  | CVTDB     | КОП src.rx,dst.wy             | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в байт                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  76  | CVTDF     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 32FD | CVTDH     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6A  | CVTDL     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в двойное слово            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  69  | CVTDW     | -&amp;quot;-                           | Преобразование слова форма-      |&lt;br /&gt;
|      |           |                               | та D  в слово                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6C  | CVTBD     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата D                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4C  | CVTBF     | -&amp;quot;-                           | Преобразование байта в сло-      |&lt;br /&gt;
|      |           |                               | во формата F                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4CFD | CVTBG     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6CFD | CVTBH     | -&amp;quot;-                           | Преобразование байта в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6D  | CVTWD     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата D                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4D  | CVTWF     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата F                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4DFD | CVTWG     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата G                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6DFD | CVTWH     | -&amp;quot;-                           | Преобразование слова в           |&lt;br /&gt;
|      |           |                               | слово формата H                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  6E  | CVTLD     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата D          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  4E  | CVTLF     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата F          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 4EFD | CVTLG     | -&amp;quot;-                           | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата G          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 6EFD | CVTLH     | КОП rc.rx,dst.wy              | Преобразование двойного          |&lt;br /&gt;
|      |           |                               | слова в слово формата H          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  46  | DIVF2     | КОП divr.rx,quo.mx            | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  66  | DIVD2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 46FD | DIVG2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 66FD | DIVH2     | -&amp;quot;-                           | Деление двухоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  47  | DIVF3     | КОП divr.rx,divd.rx,          | Деление трехоперандное           |&lt;br /&gt;
|      |           | quo.wx                        | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  67  | DIVD3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 47FD | DIVG3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 67FD | DIVH3     | -&amp;quot;-                           | Деление трехоперандное           |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  54  | EMODF     | КОП mulr.rx,mulrx.rb,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате F с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  74  | EMODD     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате D  с вы-               |&lt;br /&gt;
|      |           |                               | делением целой части             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 54FD | EMODG     | КОП mulr.rx,mulrx.rw,         | Расширенное умножение            |&lt;br /&gt;
|      |           | muld.rx,int.wl,fract.wx       | в формате G с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 74FD | EMODH     | -&amp;quot;-                           | Расширенное умножение            |&lt;br /&gt;
|      |           |                               | в формате H с выделе-            |&lt;br /&gt;
|      |           |                               | нием целой части                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  52  | MNEGF     | КОП src.rx,dst.wx             | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате F           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  72  | MNEGD     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате D           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 52FD | MNEGG     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате G           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 72FD | MNEGH     | -&amp;quot;-                           | Пересылка с арифметическим       |&lt;br /&gt;
|      |           |                               | отрицанием в формате H           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  50  | MOVF      | -&amp;quot;-                           | Пересылка слов формата F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  70  | MOVD      | -&amp;quot;-                           | Пересылка слов формата D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 50FD | MOVG      | -&amp;quot;-                           | Пересылка слов формата G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 70FD | MOVH      | -&amp;quot;-                           | Пересылка слов формата H         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  44  | MULF2     | КОП mulr.rx,                  | Умножение двухоперандное         |&lt;br /&gt;
|      |           | prod.mx                       | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  64  | MULD2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 44FD | MULG2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 64FD | MULH2     | -&amp;quot;-                           | Умножение двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  45  | MULF3     | КОП mulr.rx,                  | Умножение трехоперандное         |&lt;br /&gt;
|      |           | muld.rx,prod.wx               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  65  | MULD3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 45FD | MULG3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 65FD | MULH3     | -&amp;quot;-                           | Умножение трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  55  | POLYF     | КОП arg.rf,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-3.wl}          | нома в формате F                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  75  | POLYD     | КОП arg.rd,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,{R0-5.wl}          | нома в формате D                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 55FD | POLYG     | КОП arg.rg,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.db,{R0-5.wl}          | нома в формате G                 |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 75FD | POLYH     | КОП adg.rh,degree.rw,         | Вычисление значения поли-        |&lt;br /&gt;
|      |           | tbladdr.ab,                   | нома в формате H                 |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  42  | SUBF2     | КОП sub.rx,dif.mx             | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  62  | SUBD2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 42FD | SUBG2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 62FD | SUBH2     | -&amp;quot;-                           | Вычитание двухоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  43  | SUBF3     | КОП sub.rx,min.rx,dif.wx      | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате F                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  63  | SUBD3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате D                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 43FD | SUBG3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате G                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 63FD | SUBH3     | -&amp;quot;-                           | Вычитание трехоперандное         |&lt;br /&gt;
|      |           |                               | в формате H                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  53  | TSTF      | КОП src.rx                    | Тестирование в формате F         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  73  | TSTD      | -&amp;quot;-                           | Тестирование в формате D         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 53FD | TSTG      | -&amp;quot;-                           | Тестирование в формате G         |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| 73FD | TSTH      | КОП src.rx                    | Тестирование в форма-            |&lt;br /&gt;
|      |           |                               | те H                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. Команды обработки строк символов ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  29  | CMPC3     | КОП len.rw,src1addr.ab,       | Трехоперандное сим -             |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | вольное сравнение                |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2D  | CMPC5     | КОП src1len.rw,src1addr.ab,   | Пятиоперандное сим -             |&lt;br /&gt;
|      |           | fill.rb,src2len.rw,           | вольное сравнение                |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3A  | LOCC      | КОП char.rb,len.rw,addr.ab,   | Поиск символа                    |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  39  | MATCHC    | КОП len1.rw,addr1.ab,len2.rw, | Поиск подстроки                  |&lt;br /&gt;
|      |           | addr2.ab,{R0-3.wl}            |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  28  | MOVC3     | КОП len.rw,srcaddr.ab,        | Трехоперандная пере-             |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2C  | MOVC5     | КОП srclen.rw,srcaddr.ab,     | Пятиоперандная пере-             |&lt;br /&gt;
|      |           | fill.rb,dstlen.rw,dstaddr.ab  | сылка символов                   |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2E  | MOVTC     | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | fill.rb,tbladdr.ab,dstlen.rw, | трансляцией                      |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-5.wl}          |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2F  | MOVTUC    | КОП srclen.rw,srcaddr.ab,     | Пересылка символов с             |&lt;br /&gt;
|      |           | esc.rb,tbladdr.ab,            | трансляцией и выходом            |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | по указанному символу            |&lt;br /&gt;
|      |           | {R0-5.ml}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2A  | SCANC     | КОП len.rw,addr.ab,           | Сканирование символов            |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,{R0-3.wl}  |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  3B  | SKPC      | КОП char.rb,len.rw,addr.ab,   | Пропуск символов                 |&lt;br /&gt;
|      |           | {R0-1.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  2B  | SPANC     | КОП len.rw,addr.ab,           | Поиск символа                    |&lt;br /&gt;
|      |           | tbladdr.ab,mask.rb,           |                                  |&lt;br /&gt;
|      |           | {R0-3.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Команды десятичной строки цифр ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  20  | ADDP4     | КОП addlen.rw,addaddr.ab,     | Четырехоперандное сло-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | жение в упакованном              |&lt;br /&gt;
|      |           | {R0-3.wl}                     | формате                          |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  21  | ADDP6     | КОП add1len.rw,add1addr.ab,   | Шестиоперандное сложе-           |&lt;br /&gt;
|      |           | add2len.rw,add2addr.ab,       | ние в упакованном фор-           |&lt;br /&gt;
|      |           | sumlen.rw,sumaddr.ab,         | мате                             |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F8  | ASHP      | КОП cnt.rb,srclen.rw,         | Арифметический сдвиг и           |&lt;br /&gt;
|      |           | srcaddr.ab,round.rb,dstlen.rw,| округление в упакован -          |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  35  | CMPP3     | КОП len.rw,src1addr.ab,       | Трехоперандное сравне -          |&lt;br /&gt;
|      |           | src2addr.ab,{R0-3.wl}         | ние в упакованном фор -          |&lt;br /&gt;
|      |           |                               | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  37  | CMPP4     | КОП src1len.rw,src1addr.ab,   | Четырехоперандное срав-          |&lt;br /&gt;
|      |           | src2len.rw,src2addr.ab,       | нение в упакованном фор-         |&lt;br /&gt;
|      |           | {R0-3.wl}                     | мате                             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  F9  | CVTLP     | КОП src.rl,dstlen.rw,         | Преобразование двойно-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | го слова в упакованный           |&lt;br /&gt;
|      |           |                               | формат                           |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  36  | CVTPL     | КОП srclen.rw,srcaddr.ab,     | Преобразование упакован-         |&lt;br /&gt;
|      |           | {R0-3.wl},dst.wl              | ного формата в двойное           |&lt;br /&gt;
|      |           |                               | слово                            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  08  | CVTPS     | КОП srclen.rw,srcaddr.ab,     | Преобразование упако -           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | ванного формата в чис-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ловой с выделенным ве-           |&lt;br /&gt;
|      |           |                               | дущим знаком                     |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  24  | CVTPT     | КОП srclen.rw,srcaddr.ab,     | Преобразование из упа-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | кованного формата в              |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | усеченный числовой               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  09  | CVTSP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из чис-           |&lt;br /&gt;
|      |           | dstlen.rw,dstaddr.ab,         | лового формата с выде-           |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ленным ведущим знаком            |&lt;br /&gt;
|      |           |                               | в упакованный                    |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  26  | CVTTP     | КОП srclen.rw,srcaddr.ab,     | Преобразование из усе-           |&lt;br /&gt;
|      |           | tbladdr.ab,dstlen.rw,         | ченного числового фор-           |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | мата в упакованный               |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  27  | DIVP      | КОП divrlen.rw,divraddr.ab,   | Деление в упакованном            |&lt;br /&gt;
|      |           | divdln.rw,divdaddr.ab,        | формате                          |&lt;br /&gt;
|      |           | quolen.rw,quoaddr.ab,         |                                  |&lt;br /&gt;
|      |           | {R0-5.wl,-16(SP):-1(SP).wb}   |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  34  | MOVP      | КОП len.rw,srcaddr.ab,        | Пересылка в упакован-            |&lt;br /&gt;
|      |           | dstaddr.ab,{R0-3.wl}          | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  25  | MULP      | КОП mulrlen.rw,mulraddr.ab,   | Умножение в упакован-            |&lt;br /&gt;
|      |           | muldlen.rw,muldaddr.ab,       | ном формате                      |&lt;br /&gt;
|      |           | prodlen.rw,prodaddr.ab,       |                                  |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  22  | SUBP4     | КОП sublen.rw,subaddr.ab,     | Четырехоперандное                |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | {R0-3.wl}                     | ном формате                      |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  23  | SUBP6     | КОП sublen.rw,subaddr.ab,     | Шестиоперандное                  |&lt;br /&gt;
|      |           | minlen.rw,minaddr.ab,         | вычитание в упакован-            |&lt;br /&gt;
|      |           | diflen.rw,difaddr.ab,         | ном формате                      |&lt;br /&gt;
|      |           | {R0-5.wl}                     |                                  |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Контроль циклической избыточности ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  0B  | CRC       | КОП tbl.ab,inicrc.rl,         | Вычисление циклического          |&lt;br /&gt;
|      |           | strlen.rw,stream.ab           | полинома для проверки            |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Редактирование ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
| Код  | Мнемоника |            Формат             |           Назначение             |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
|  38  | EDITPC    | КОП srclen.rw,                | Редактирование упако-            |&lt;br /&gt;
|      |           | srcaddr.ab,pattern.ab,        | ванной строки в символь-         |&lt;br /&gt;
|      |           | dstaddr.ab                    | ную                              |&lt;br /&gt;
+------+-----------+-------------------------------+----------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Формат команды ==&lt;br /&gt;
&lt;br /&gt;
В вычислительной системе &amp;quot;Электроника 32&amp;quot; используется формат команды переменной длины. Длина формата может быть от одного байта и выше в зависимости от типа команды. Обобщенная схема формата команды приведена на рис. 51.&lt;br /&gt;
&lt;br /&gt;
Общая схема формата команды&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Код операции (1 или 2 байта)  |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 1       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда 2       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
|              .                |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
| Спецификатор операнда N       |&lt;br /&gt;
+-------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рис. 51.&lt;br /&gt;
&lt;br /&gt;
Каждая команда состоит из кода операции и следующих за ним от 0 до 6 спецификаторов операндов, количество и тип которых зависят от кода операции. Код операции точно определяет как требуемая операция будет выполняться. Под код операции может отводиться один или два байта, в зависимости от содержимого байта с адресом &amp;quot;А&amp;quot;. Два байта будут использоваться под код операции при условии, что значение числа, содержащегося в этом байте, находится в диапазоне от FC(16) до FF(16). Формат кода операции приведен на рис. 52.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Файл:1839VM1 TO Pic52.png|500px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каждый из спецификаторов операнда имеет одинаковый формат, т.е. метод адресации плюс дополнительная информация. Эта дополнительная информация содержит до двух переменных: указателя регистра и адрес; указатель регистра и данные; указатель регистра и смещение. Использование операнда определяется косвенно из кода операции и называется типом операнда.&lt;br /&gt;
&lt;br /&gt;
Спецификатор операнда описывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
⟨Название⟩ ,   ⟨тип доступа⟩   ⟨тип данных⟩&lt;br /&gt;
                 \___________/&lt;br /&gt;
                 тип операнда&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
⟨Название⟩ - определяет операнд в контексте инструкции.&lt;br /&gt;
&lt;br /&gt;
⟨Тип доступа⟩ - спецификатора операнда обозначается одной&lt;br /&gt;
буквой:&lt;br /&gt;
&lt;br /&gt;
* a - вычисляется эффективный адрес операнда. Адрес формируется в двойном слове, которое является фактическим операндом инструкции. Контекст вычисления адреса является типом данных, т.е. величиной, используемой для автоинкрементации, автодекрементации и индексации;&lt;br /&gt;
* b - нет ссылок на операнд. Спецификатор операнда представляет собой смещение перехода. Размер смещения переходаопределяется типом данных;&lt;br /&gt;
* m - операнд считывается, может быть модифицирован и записывается. Если операнд фактически не модифицируется, то он может и не записываться обратно. Несмотря на это, операнды с таким типом доступа всегда проверяются на возможность как чтения, так и записи;&lt;br /&gt;
* r - операнд только читается;&lt;br /&gt;
* v - вычисляется эффективный адрес операнда (доступ &amp;quot;поле&amp;quot;). Если эффективный адрес формируется в памяти, то он сохраняется в двойном слове, которое является фактическим операндом инструкции. Если эффективным адресом является регистр Rn, то операндом является R[n] или R[n+1]&#039;R[n];&lt;br /&gt;
* w - операнд доступен только по записи.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
⟨Тип данных⟩ - обозначают следующим образом:&lt;br /&gt;
&lt;br /&gt;
* b  - байт&lt;br /&gt;
* d  - плавающее слово типа D&lt;br /&gt;
* f  - плавающее слово типа F&lt;br /&gt;
* g  - плавающее слово типа G&lt;br /&gt;
* h  - плавающее слово типа H&lt;br /&gt;
* l  - двойное слово&lt;br /&gt;
* o  - восьмерное слово&lt;br /&gt;
* q  - четверное слово&lt;br /&gt;
* w  - слово&lt;br /&gt;
* x  - {первый тип данных определяется инструкцией}&lt;br /&gt;
* y  - {второй тип данных определяется инструкцией}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Адресация операндов ===&lt;br /&gt;
&lt;br /&gt;
Методы адресации совместно с шестнадцатью регистрами общего назначения обеспечивают удобный метод работы с данными, так как они точно определяют, каким образом конкретные регистры используются с целью доступа, обработки и хранения данных и команд в памяти. Регистры общего назначения могут быть использованы командой любым из следующих способов:&lt;br /&gt;
&lt;br /&gt;
* как аккумуляторы;&lt;br /&gt;
* как указатели (содержимое регистра - адрес операнда, а не сам операнд);&lt;br /&gt;
* как индексные регистры.&lt;br /&gt;
&lt;br /&gt;
Адресация может быть разделена на две категории: основные методы адресации и адресация по условному переходу. Табл. 9 дает краткое описание методов адресации через регистры общего назначения и через программный счетчик. В табл. 9 приняты следующие обозначения:&lt;br /&gt;
* D    - смещение;&lt;br /&gt;
* I    - любой метод адресации, допускающий индексирование;&lt;br /&gt;
* &amp;amp;ndash;    - логически невозможно;&lt;br /&gt;
* РМА  - ошибка по резервной моде адресации;&lt;br /&gt;
* АС   - адресация через счетчик команд;&lt;br /&gt;
* НП   - непредсказуемый результат;&lt;br /&gt;
* НЧ   - непредсказуемый  результат для  Q(0)слова, D(G,H) форматов, а также для поля бит переменной длины, если &amp;quot;позиция&amp;quot; плюс &amp;quot;размер&amp;quot; больше 32;&lt;br /&gt;
* НВ   - непредсказуемый результат для Q-слова и формата H;&lt;br /&gt;
* НИР  - непредсказуемый результат для индексного регистра, такого как базовый регистр;&lt;br /&gt;
* ДА   - всегда действительный метод адресации;&lt;br /&gt;
* Ч    - доступ по чтению;&lt;br /&gt;
* З    - доступ по записи;&lt;br /&gt;
* М    - доступ по чтению-модификации-записи;&lt;br /&gt;
* А    - доступ по адресу;&lt;br /&gt;
* БА   - доступ по базовому адресу поля бит переменной длины.&lt;br /&gt;
&lt;br /&gt;
Таблица 9&lt;br /&gt;
&lt;br /&gt;
Краткий обзор методов адресации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------+&lt;br /&gt;
|                         Общая регистровая адресация                            |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| Мода | Название метода| Ассемблер |          Доступ           | Использование  |&lt;br /&gt;
| (16) | адресации      |           +-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|      |                |           |  Ч  |  М  |  З  |  А  | БА|  PC | SP | ИНД |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  1   |       2        |     3     |  4  |  5  |  6  |  7  | 8 |  9  | 1O |  11 |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
| 0-3  | Литеральный    | S↑Literal | ДА  | РМА | РМА | РМА |РМА|  -  | -  | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  4   | Индексный      | I [Rx]    | ДА  | ДА  | ДА  | ДА  | ДА| РМА | ДА | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  5   | Регистровый    | Rn        | ДА  | ДА  | ДА  | РМА | ДА| НП  | НЧ | РМА |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  6   | Косвенно-      | (Rn)      | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | ДА  |&lt;br /&gt;
|      | -регистровый   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  7   | Автодекремент- | -(Rn)     | ДА  | ДА  | ДА  | ДА  | ДА| НП  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  8   | Автоинкремент- | (Rn)+     | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | ный            |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  9   | Косвенно-авто- | @(Rn)+    | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | НИР |&lt;br /&gt;
|      | инкрементный   |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  A   | С байтовым сме-| B↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  B   | Косвенный с бай| @↑BD(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | товым смещением|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  C   | Со словным сме-| W↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | щением         |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  D   | Косвенный со   | @↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | словным смеще -|           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | нием           |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  E   | С двухсловным  | L↑D(Rn)   | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
|  F   | Косвенный с    | @L↑D(Rn)  | ДА  | ДА  | ДА  | ДА  | ДА| АС  | ДА | ДА  |&lt;br /&gt;
|      | двухсловным    |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
|      | смещением      |           |     |     |     |     |   |     |    |     |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+---+-----+----+-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------+&lt;br /&gt;
|                         Адресация через программный счетчик                  |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
| Мо-  | Название мето- | ААссемблер|          Доступ            |  Использо-  |&lt;br /&gt;
| да   | да адресации   |           +-----+-----+-----+-----+----+  вание      |&lt;br /&gt;
| (16) |                |           |  Ч  |  М  |  З  |  А  | БА | PC | SP |ИНД|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  8   | Непосредствен- | I↑# Const | ДА  | НП  | НП  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | ный            |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  9   | Абсолютный     | @#adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  A   | Относительный  | B↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | байтовый       |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  B   | Косвенно-отно- | @B↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный бай- |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | товый          |           |     |     |     |     |    |    |  - |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  C   | Относительный  | W↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  D   | Косвенно-отно- | @↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | словный        |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  E   | Относительный  | L↑adress  | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
|  F   | Косвенно-отно- | @L↑adress | ДА  | ДА  | ДА  | ДА  | ДА |  - |  - | ДА|&lt;br /&gt;
|      | сительный      |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
|      | двухсловный    |           |     |     |     |     |    |    |    |   |&lt;br /&gt;
+------+----------------+-----------+-----+-----+-----+-----+----+----+----+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Время выполнения типовых команд (Timing) ==&lt;br /&gt;
&lt;br /&gt;
Времена выполнения команд (групп команд) микропроцессором ЛI839ВМI определены в микроциклах (1 микроцикл равен двум периодам тактовой частоты 2T_CLC), при условии идеальной памяти, пренебрегая временем на сбои конвейера адресных/безадресных подкачек команд, не учитывая внутренних торможений, обусловленных особенностями конвейера команд (это торможение по занятости регистра смещения - ТСМ, торможение по занятости буфера обмена данных и торможения приема микрокоманды). Данная процедура определения времени выполнения групп команд проводится для случая регистровых мод адресации для всех операндов команды. В случае, если применение регистровой моды адресации недопустимо, не имеет смысла, либо не является показательным в плане оценки времени выполнения, приводится время выполнения (в микроциклах) только содержательной микрообработки, исключая этап микропрограммной адресации операндов, а также время аппаратной дешифрации команд, что обычно скрыто конвейером выполнения команд. Процедура TIMING - чисто качественная оценка времен выполнения типовых команд.&lt;br /&gt;
&lt;br /&gt;
Сокращения, применяемые ниже по тексту:&lt;br /&gt;
* Р   - регистр;&lt;br /&gt;
* П   - память;&lt;br /&gt;
* РР  - формат регистр-регистр;&lt;br /&gt;
* ПП  - формат память-память;&lt;br /&gt;
* РП  - формат регистр-память.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1. Команда ADAWI &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случай РР - один микроцикл, особого смысла не имеет, так как в этом случае ADAWI эквивалентно простому сложению ADDW, поскольку не реализуется блокировка памяти.&lt;br /&gt;
* Случай ПП - восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 2. Группа команд ADDB2, ADDW2, ADDL2, ADDB3, ADDW3, ADDL3, SUBB2, SUBW2, SUBL2, SUBB3,  SUBW3, SUBL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 3. Группа команд ADWC, SBWC &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 4. Команда ASHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен I:  ~20 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 20 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 5. Команда ASHQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и приемник-память почти эквивалентны. Даже в случае регистровых мод адресации выполняется адресация операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  28 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвигов):&lt;br /&gt;
&lt;br /&gt;
* T = 28 + 4(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 6. Группа команд BICB2, BICW2, BICL2, BICB3, BICW3, BICL3, BISB2, BISW2, BISL2, BISB3, BISW3, BISL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 7. Группа команд BITB, BITW , BITL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 8. Группа команд CLRB, CLRW , CLRL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 9. Команда CLRQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Память-приемник: два микроцикла.*&lt;br /&gt;
&lt;br /&gt;
Регистр-приемник: три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 10. Группа команд CMPB, CMPW , CMPL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - max пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 11. Группа команд CVTBW, CVTBL , CVTWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max девять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 12. Группа команд CVTLB, CVTLW , CVTWB &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РП - max  I3 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 13. Группа команд DECB, DECW , DECL , INCB, INCW , INCL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 14. Группа команд MCOMB, MCOMW , MCOML, MNEGB, MNEGW , MNEGL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - три микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 15. Группа команд MOVB, MOVW, MOWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 16. Команда MOVQ &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Случаи РП, РР - почти эквивалентны;&lt;br /&gt;
* - max восемь микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 17. Группа команд MOVZBL , MOVZBW , MOVZWL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР - шесть микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 18. Команда PUSHL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р - четыре микроцикла.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 19. Команда PUSHR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Упрятывание в стек всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 20. Команда POPR &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Восстановление из стека всех регистров (РОНов), т.е. все разряды операнда mask⟨0...I4⟩ установлены в единицу: 65 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 21. Команда ROTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случаи регистр-приемник и память-приемник почти эквивалентны. Даже в случае регистровых мод адресации выполняется микропрограммно этап адресации операндов.&lt;br /&gt;
&lt;br /&gt;
Параметр сдвига равен 1:  I8 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
При параметре сдвига, равном n (до 2⁸ сдвига):&lt;br /&gt;
&lt;br /&gt;
* T = 18 + 3(n - 1) микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 22. Группа команд TSTB, TSTW , TSTL &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Р, П - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 23. Группа команд XORB2, XORW2, XORL2, XORB3, XORW3, XORL3 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
РР, РРР - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 24. Группа команд MOVAB, MOVAW, MOVAL , MOVAF, MOVAQ, MOVAD,MOVAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда - источника выполняется микропрограммная адресация операндов (адресный тип доступа).&lt;br /&gt;
&lt;br /&gt;
РР, ПП - один микроцикл.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 25. Группа команд PUSHAB, PUSHAW , PUSHAL , PUSHAF, PUSHAQ, PUSHAD , PUSHAG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда-источника выполняется микропрограммная адресация операндов (адресный тип доступа). &lt;br /&gt;
* - четыре микроцикла.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 26. Группа команд CALLS, CALLG &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай сохранения всех РОНов в кадре вызова процедуры: &lt;br /&gt;
* ~115 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 27. Команда RET &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Случай загрузки всех РОНов из кадра вызова процедуры: &lt;br /&gt;
* ~126 микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 28. Группа команд BICPSW, BISPSW &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операнда ⟨mask⟩ выполняется микропрограммная адресация операндов: &lt;br /&gt;
* ~ пять микроциклов.*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 29. Команда INDEX &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Независимо от моды адресации операндов выполняется микропрограммная адресация операндов:&lt;br /&gt;
&lt;br /&gt;
* ~225 микроциклов (случай микропрограммной реализации операции умножения при отсутствии сопроцессора);&lt;br /&gt;
* ~45 микроциклов (случай реализации операции умножения на сопроцессоре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 30. Группа команд MOVPSL, NOP &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Один микроцикл.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 31. Команды работы с очередями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I20 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 32. Команды обработки строк символов &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Min 30 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 33. Команды для работы с переменными битовыми полями &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
От 80 до I00 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 34. Команды ветвлений (Branches):&lt;br /&gt;
&lt;br /&gt;
Простые: AOBLEQ, AOBLSS , BLSS , BLEQ, BEQL, BEQLU , BNEQ, BHEQU , BGEQ, BGTR, BLSSU , BCS , BLEQU , BGEQU , BCC, BGTRU, BVS, BVC, BLBS , BLBC, BRB, BRW,  BSBB, BSBW, JMP,  SOBGEQ, SOBGTR  &lt;br /&gt;
* - от пяти до восьми микроциклов.&lt;br /&gt;
&lt;br /&gt;
Сложные: ACBB, ACBW , ACBL , ACBF, ACBD , ACBG, ACBH, BBS, BBC, BBSS , BBSC, BBCC, BBCS , BBSSI, BBCCI, CASEB, CASEW , CASEL, JSB  &lt;br /&gt;
* - от 10 до 60 микроциклов.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 35. Время реакции на прерывания &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Время реакции на прерывания - это время от момента восприятия центральным процессором запроса на прерывание до начала выполнения первой команды соответствующей программы обработки прерываний. На тактовой частоте I0 МГц это время составляет I0-I2 мкс. Наибольшее значение (для случая машинного сбоя) составляет I6 мкс. В основном, это связано с большим числом параметров (I2), сохраняемых в стеке (и соответственно, таким же числом обменов записей в ОЗУ) для данного типа прерываний.&lt;br /&gt;
&lt;br /&gt;
Примечание:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*&amp;quot; - только содержательная микрообработка, без учета адресации операндов.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Электроника-32]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
</feed>