Ячейка
памяти
| Команда на машинном языке
| Команда в символической форме
| Комментарий
|
Программа-загрузчик
|
| 7F
| JMS
| Обращение к подпрограмме ввода за ТАН
|
|
|
|
|
| 1F
| 1F
|
|
|
| MOV 0 to 1
|
|
| 7F
| JMS
| Обращение за ТАL
|
|
|
|
|
| 1F
| 1F
|
|
|
| MOV 0 to 2
|
|
| 7F
| JMS
| Обращение за КАН
|
|
|
|
|
000A
| 1F
| 1F
|
|
000B
|
| MOV 0 to 3
|
|
000C
| 7F
| JMS
| Обращение за KAL
|
000D
|
|
|
|
000E
| 1F
| 1F
|
|
000F
|
| MOV 0 to 4
|
|
| 7F
| JMS
| Начинается цикл ввода слов
|
|
|
|
|
| 1F
| 1F
|
|
| OF
| MOV 0 to F
| Передача слова в М[ТА]
|
| F5
| IHL
| ТА + 1 — >ТА.
|
|
| MOV 0 from 4
| Вычитание с двойной точностью ТА из КА
|
| A2
| SUB 2
| Устанавливается С=1, если ТА > КА
|
|
| MOV 0 from 3
|
|
| Bl
| SBC 1
|
|
| 7C
| JCZ
| Проверка заема в С. Если нет заема
|
001A
|
|
| ввод нового слова
|
001В
|
|
|
|
001С
| 7B
| JMP
| Переход к операциям
|
001D
|
|
|
|
001E
|
|
|
|
001F
| FD
| INP
| Начало программы ввода. Ввод слова
|
|
|
| состояния.
|
| 7A
| JAP
| Проверка разряда знака в слове состояния.
|
|
|
| Если 0, повторить проверку
|
| 1F
| 1F
|
|
| FD
| INP
| Ввод слова в аккумулятор из устройства
|
|
|
| ввода
|
| F8
| RET
| Возврат из подпрограммы
|
Операция №5
|
008B
|
| LDR 0
| Загрузка первого аргумента в регистр 5
|
008С
|
|
|
|
008D
|
|
|
|
008E
| 0D
| MOV 0 to 5
|
|
008F
|
| LDR 0
| Загрузка второго аргумента в регистр 6
|
|
|
|
|
|
|
|
|
| 0D
| MOV 0 to 6
|
|
|
| LDR 0
| Загрузка третьего аргумента в регистр 7
|
|
|
|
|
|
|
|
|
| 0D
| MOV 0 to 7
|
|
| 7F
| JMS
| Переход на подпрограмму в ячейку 00E7
|
|
|
|
|
| E7
| E7
|
|
Операция №3
|
009A
|
| LDR 0
| Передача 1го элемента из памяти в Асс
|
009B
|
|
|
|
009C
|
|
|
|
009D
|
| LDR 1
| Передача 2го из памяти в регистр 1
|
009E
|
|
|
|
009F
|
|
|
|
00A0
| A1
| SUB 1
| Вычитание 2 эл. из 1эл. Триггер C устанавливается, если 2 эл. больше, чем 1
|
00A1
|
| LDR 2
| Передача 1числа в регистр 2, как возможно большего
|
00A2
|
|
|
|
00A3
|
|
|
|
00A4
| 7C
| JCZ
| Проверка С на наличие заема. Если нет заема, то 1 > 2, и следующая команда опускается
|
00A5
|
|
|
|
00A6
|
|
|
|
00A7
|
| LDR 2
| Передача 2 элемента массива в регистр 2, заменяющая 1, если 2 > 1
|
00A8
|
|
|
|
00A9
|
|
|
|
00AA
|
| LDR 1
| Передача 3 элемента массива из памяти в регистр 1
|
00AB
|
|
|
|
00AC
|
|
|
|
00AD
|
| MOV 0 from 2
| Передача наибольшего из 1го и 2го в аккумулятор из рег. 2
|
00AE
| A1
| SUB 1
| Вычитание 3его из наибольшего среди 1,2 чисел. С устанавливается, если 3 больше
|
00AF
| 7C
| JCZ
| Проверка С на наличие заема. Если заем есть, то 3 больше, в противном случае, следующая команда опускается.
|
00B0
|
|
|
|
00B1
| 4C
| 4C
|
|
00B2
|
| LDR 2
| Передача 3его в регистр 2, заменяющий наибольшее из 1 и 2 чисел, если 3 больше
|
00В3
|
|
|
|
00В4
|
|
|
|
00В5
|
| LDR 1
| Передача 4 элемента массива из памяти в регистр 1
|
00В6
|
|
|
|
00В7
|
|
|
|
00В8
|
| MOV 0 from 2
| Передача наибольшего из 1,2,3 чисел в аккумулятор из регистра 2
|
00В9
| A1
| SUB 1
| Вычитание 4го из наибольшего среди 1,2,3.
С устанавливается, если 4ый больше.
|
00BA
| 7С
| JCZ
| Проверка С на наличие заема. Если заем есть, то 4
|
00BB
|
|
| больше, в противном случае, следующая команда опускается.
|
00BC
|
|
|
|
00BD
|
| LDR 2
| Передача 4ого в регистр 2, заменяющая наибольшее из массива 1,2,3 если 4 больше
|
00BE
|
|
|
|
00BF
|
|
|
|
00C0
|
| LDR 1
| Передача 5 элемента массива из памяти в регистр 1
|
00C1
|
|
|
|
00C2
|
|
|
|
00C3
|
| MOV 0 from 2
| Передача наибольшего из элементов массива 1,2,3,4 в аккумулятор из регистра 2
|
00C4
| A1
| SUB 1
| Вычитание 5 из наибольшего среди 1,2,3,4.
С устанавливается, если 5 больше
|
00C5
| 7C
| JCZ
| Проверка С на наличие заема, если заем есть, то 5 больше,
|
00C6
|
|
| в противном случае, следующая команда опускается.
|
00C7
|
|
|
|
00C8
|
| LDR 2
| Передача 5 в регистр 2, заменяющая наибольшее из 1,2,3,4, если 5 больше.
|
00C9
|
|
|
|
00CA
|
|
|
|
00CB
|
| STR 2
| Передача наибольшего элемента в ячейку 0108
|
00CC
|
|
|
|
00CD
|
|
|
|
Операция №4
|
00CE
|
| LRI 1
| Установка в регистрах H и L адреса
|
00CF
|
|
| первого элемента
|
00D0
|
| LRI 2
|
|
00D1
|
|
|
|
00D2
|
| LRI 3
| Установка начального значения
|
00D3
|
|
| счетчика цикла равным 5
|
00D4
|
| LRI 4
| Установка частной суммы равной 0
|
00D5
|
|
|
|
00D6
|
| LRI 5
| Загрузка константы 1 для уменьшения счетчика
|
00D7
|
|
|
|
00D8
|
| MOV 0 from 4
| Прибавление числа
|
00D9
| 8F
| ADD F
|
|
00DA
|
| MOV 0 to 4
|
|
00DB
| F5
| IHL
| Увеличение H и L
|
00DC
|
| MOV 0 from 3
| Загрузка начального значения счётчика в Асс
|
00DD
| A5
| SUB 5
| Уменьшение счетчика на 1
|
00DE
|
| MOV 0 to 3
|
|
00DF
| 7D
| JAN
| Проверка конца цикла
|
00E0
|
|
|
|
00E1
| CB
| CB
|
|
00E2
|
| MOV 0 from 4
| Загрузка данных из 4 регистра в Асс
|
00E3
|
| STR 0
| Передача содержимого Асс в ячейку 0110
|
00E4
|
|
|
|
00E5
|
|
|
|
Операция №6
|
|
| LRI 1
| Установка в регистрах H и L адреса
|
|
|
| первого элемента
|
|
| LRI 2
|
|
|
|
|
|
005А
|
| PUSH
| Передача в стек
|
005B
|
| LRI 1
| Установка в регистрах H и L адреса
|
005C
|
|
| второго элемента
|
005D
|
| LRI 2
|
|
005E
|
|
|
|
005F
|
| PUSH
| Передача в стек
|
| 7F
| JMS
| Переход к подпрограмме в ячейку 00F4
|
|
|
|
|
| F4
| F4
|
|
Операция №1
|
|
| LDR 0
| Передача содержимого ячейки памяти
|
|
|
| 0102 в Асс
|
|
|
|
|
002A
|
| LDR 1
| Передача содержимого ячейки памяти
|
002B
|
|
| 0103 в регистр 1
|
002C
|
|
|
|
002D
|
| ADD 1
| Сложение 0 и 1 регистров, сумма Асс
|
002E
|
| STR 0
| Передача содержимого Асс в ячейку 0107
|
002F
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Операция №2
|
| 0C
| 0C
|
|
|
| LDR 0
| Передача содержимого ячейки памяти
|
|
|
| 0104 в Асс
|
|
|
|
|
|
| ADD 1
| Сложение 3 числа с константой, сумма Асс
|
|
| STR 0
| Передача содержимого Асс в ячейку 010D
|
|
|
|
|
| 0D
| 0D
|
|
|
| LDR 0
| Передача содержимого ячейки памяти
|
|
|
| 0105 в Асс
|
004A
|
|
|
|
004B
|
| ADD 1
| Сложение 4 числа с константой, сумма Асс
|
004C
|
| STR 0
| Передача содержимого Асс в ячейку 010E
|
004D
|
|
|
|
004E
| 0E
| 0E
|
|
004F
|
| LDR 0
| Передача содержимого ячейки памяти
|
|
|
| 0106 в Асс
|
|
|
|
|
|
| ADD 1
| Сложение 5 числа с константой, сумма Асс
|
|
| STR 0
| Передача содержимого Асс в ячейку 010F
|
|
|
|
|
| 0F
| 0F
|
|
Операция №7
|
|
| LRI 5
| Установка нулевых значений в Rн и RL
|
|
|
|
|
|
| LRI 6
|
|
|
|
|
|
|
| LRI 1
|
|
|
|
|
|
|
| LRI 2
| Установка на счетчике начального
|
006A
|
|
| значения 8
|
006B
|
| LDR 4
| Загрузка множителя в регистр 4
|
006C
|
|
|
|
006D
|
|
|
|
006E
|
| MOV 0 from 4
| Загрузка множителя в Асс
|
006F
| F2
| RTR
| Циклический сдвиг вправо, мл.бит Асс попадает в С
|
|
| MOV 0 to 4
| Запоминание сдвинутого множителя
|
|
| MOV 0 from 5
| Загрузка ст. части произведения в Асс
|
| 7С
| JCZ
| Тест бита множителя. Переход при 0
|
|
|
|
|
| 7B
| 7B
|
|
|
| LDR 3
| Загрузка множимого в регистр 3
|
|
|
|
|
|
|
|
|
|
| ADD 3
| Сложение множимого со ст. частью произведения
|
| F2
| RTR
| Сдвиг Рн вправо, мл. бит в С
|
007A
|
| MOV 0 to 5
| Запоминание сдвинутого Rн
|
007B
|
| MOV 0 from 6
| Загрузка мл. части произведения в Асс
|
007C
| F2
| RTR
| Сдвиг С и мл. части произведения вправо
|
007D
|
| MOV 0 to 6
| Запоминание сдвинутого RL
|
007E
| F6
| DHL
| Уменьшение счетчика на 1
|
007F
|
| MOV 0 from 2
| Загрузка счетчика в аккумулятор
|
| 7D
| JAN
| Тестирование Асс. Повторение
|
|
|
| цикла, если не нуль
|
|
|
|
|
|
| MOV 1 from 5
| Передача ст.части произведения в регистр 1
|
|
| MOV 2 from 6
| Передача мл.части произведения в регистр 2
|
|
| SТR 1
| Передача содержимого регистра 1 в ячейку 0109
|
|
|
|
|
|
|
|
|
|
| SТR 2
| Передача содержимого регистра 2 в ячейку 010А
|
|
|
|
|
008A
| 0А
| 0А
|
|
Завершение операций
|
00E6
| FA
| HLT
| Остановка программы
|
00E7
|
| MOV 0 from 5
| Начало подпрограммы для операции №5. Передача содержимого регистра 5 в Асс
|
00E8
|
| STR 0
| Передача содержимого Асс в ячейку 0111
|
00E9
|
|
|
|
00EA
|
|
|
|
00EB
|
| MOV 1 from 6
| Передача содержимого регистра 6 в регистр 1
|
00EC
|
| STR 1
| Передача содержимого регистра 1 в ячейку 0112
|
00ED
|
|
|
|
00EE
|
|
|
|
00EF
|
| MOV 2 from 7
| Передача содержимого регистра 7 в регистр 2
|
00F0
|
| STR 2
| Передача содержимого регистра 2 в ячейку 0113
|
00F1
|
|
|
|
00F2
|
|
|
|
00F3
| F8
| RET
| Возврат из подпрограммы операции № 5
|
00F4
|
| POP
| Начало подпрограммы для операции №6. Извлечение данных из стека
|
00F5
|
| STR 1
| Передача содержимого регистра 1 в ячейку 0114
|
00F6
|
|
|
|
00F7
|
|
|
|
00F8
|
| STR 2
| Передача содержимого регистра 2 в ячейку 0115
|
00F9
|
|
|
|
00FA
|
|
|
|
00FB
|
| POP
| Извлечение данных из стека
|
00FC
|
| STR 1
| Передача содержимого регистра 1 в ячейку 0116
|
|
|
|
|
00FD
|
|
|
|
00FE
|
| STR 2
| Передача содержимого регистра 2 в ячейку 0117
|
00FF
|
|
|
|
|
|
|
|
| F8
| RET
| Возврата из подпрограммы операции № 6
|
|
|
| 1 элемент массива
|
|
|
| 2 элемент массива
|
|
|
| 3 элемент массива
|
|
|
| 4 элемент массива
|
|
|
| 5 элемент массива
|
|
|
| Результат сложения 2 чисел
|
|
|
| Результат нахождения наибольшего числа
|
|
|
| Результат умножения двух чисел (ст.часть)
|
010A
|
|
| Результат умножения двух чисел (мл.часть)
|
010B
|
|
| Результат сложения 1 числа с константой
|
010C
|
|
| Результат сложения 2 числа с константой
|
010D
|
|
| Результат сложения 3 числа с константой
|
010E
|
|
| Результат сложения 4 числа с константой
|
010F
|
|
| Результат сложения 5 числа с константой
|
|
|
| Результат сложения всех чисел
|
|
|
| Данные из регистра
|
|
|
| Данные из регистра
|
|
|
| Данные из регистра
|
|
|
| Данные из стека
|
|
|
| Данные из стека
|
|
|
| Данные из стека
|
|
|
| Данные из стека
|