Вычисление контрольных сумм CRC-16 и CRC-32 |
Главная / ЭКВМ / Программы для ЭКВМ / Прикладные задачи |
ОписаниеПрограммы предназначены для вычисления контрольных сумм CRC-16 и CRC-32 при помощи ЭКВМ. Алгоритм вычисления циклического избыточного кода CRC (Cyclic Redundancy Code) основан на свойствах деления двоичных многочленов. Значение CRC является остатком от деления входного многочлена на фиксированный порождающий многочлен. Для реализации на ЭКВМ выбраны CRC-16 с порождающим многочленом x16 + x15 + x2 + 1, который используется как контрольная сумма в ANSI, Modbus, USB и CRC-32 с многочленом x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1, который используется в POSIX, V.42 и IEEE 802.3. Примечание. Оба полинома включены в ГОСТ 17422-82 "Системы передачи данных. Скорости передачи данных и основные параметры помехоустойчивых циклических кодов". Первый является допустимым для использования в технически обоснованных случаях при длине блока не более 215 бит. Второй - установленным для использования при длине блока до 232 бит. Полином CRC-16 также используется в соответствии с ГОСТ 34.402-91 "Обмен информацией на кассете с магнитной лентой шириной 3,81 мм (0,15 дюйма) с плотностью записи 4 символа/мм (100 символов/дюйм) способом фазового кодирования при 63 переходах потоков/мм (1600 переходов потока/дюйм)". Правила циклического кодирования-декодирования изложены в ГОСТ 25873-83 "Процедура управления звеном передачи данных. Структура кадра". Для быстрого вычисления контрольных сумм используются предварительно вычисленные значения, занесённые в таблицу. После запуска программ в строке комментариев выводится краткая подсказка о назначении программы и способе ввода значений. Очередной байт входной последовательности вводится в RX. После нажатия С/П в RX выводится количество обработаных байтов, в строке комментариев - значение контрольной суммы. Повторять ввод следует до исчерпания ряда входных значений - итоговое значение CRC будет являться контрольной суммой всей последовательности. В случае ввода ошибочного значения следует нажать В/О, С/П и повторить ввод последовательности начиная с первого байта. Перевод чисел из шестнадцатеричной и восьмеричной системы в десятичнуюДанные в регистр X стека вводятся в десятичном виде. При необходимости обработки ряда шестнадцатеричных чисел можно воспользоваться приложением к руководству по эксплуатации ЭКВМ или следующей таблицей. Здесь в начале строки записана старшая шестнадцатеричная цифра, в столбцах - младшая. Десятичное число считывается из клетки, находящейся на пересечении нужной строки и столбца. Например: 9816 = 15210 - число находится на пересечении строки 9 и столбца 8.
Для перевода восьмеричных чисел в десятичные можно использовать следующую таблицу Здесь в начале строки записаны старшие восьмеричные цифры, в столбцах - младшая. Десятичное число считывается из клетки, находящейся на пересечении нужной строки и столбца. Например: 2418 = 16110 - число находится на пересечении строки 248 и столбца 1.
Для удобства использования к программам ЭКВМ прилагаются файлы таблиц в нескольких форматах: ODT, FODT, DOC, PDF. Программа "CRC-16"Программа размещается в памяти программ ЭКВМ с нулевой страницы. Запуск производится нажатием клавиш "В/О", "С/П". Останов выполнения программы - нажатием "С/П". Пример. Для строки "123456789" или эквивалентной последовательности {49, 50, 51, 52, 53, 54, 55, 56, 57} значение CRC-16 составляет 4B3716. Файл crc16.mkp (КС 64834/36)
Исходный текст для кросс-компилятораФайл crc16.mkl .CHARSET 1251 ; Программа быстрого (табличного) расчёта CRC-16 на ЭКВМ ; Полином 0x8005 ; x16 + x15 + x2 + 1 ; Контрольная сумма используется в ANSI, Modbus, Bisync, USB и.т.д. ; R4 - счётчик введённых байт ; R6=256 ; R9 - константа из таблицы ; RA,RB - CRC16 ; RE - адрес таблицы ; В/О С/П - подсказка в строке комментариев ; Очередной байт ввести в RX, нажать С/П - в строке комментариев выводится CRC16 .ORG 0 CX M4 255 MA MB 1 + M6 .NUM TBL16 ME 2 PP M 9100 ; разрядность двоичных чисел 2 .NUM STR1 PP M 9026 CX A1: R/S RMB K XOR 2 * RME + PP M 9042 ; индексный регистр памяти программ PP RM 9044 M9 PP RM 9044 RMA K XOR MB RM9 MA RM6 * + PP M 9102 ; вывод шестнадцатеричного числа в строку RM4 1 + M4 GOTO A1 STR1: .TEXT "CRC16: ввод в RX, С/П\0" TBL16: .DB 00h,00h .DB 0C0h,0C1h .DB 0C1h,81h .DB 01h,40h .DB 0C3h,01h .DB 03h,0C0h .DB 02h,80h .DB 0C2h,41h .DB 0C6h,01h .DB 06h,0C0h .DB 07h,80h .DB 0C7h,41h .DB 05h,00h .DB 0C5h,0C1h .DB 0C4h,81h .DB 04h,40h .DB 0CCh,01h .DB 0Ch,0C0h .DB 0Dh,80h .DB 0CDh,41h .DB 0Fh,00h .DB 0CFh,0C1h .DB 0CEh,81h .DB 0Eh,40h .DB 0Ah,00h .DB 0CAh,0C1h .DB 0CBh,81h .DB 0Bh,40h .DB 0C9h,01h .DB 09h,0C0h .DB 08h,80h .DB 0C8h,41h .DB 0D8h,01h .DB 18h,0C0h .DB 19h,80h .DB 0D9h,41h .DB 1Bh,00h .DB 0DBh,0C1h .DB 0DAh,81h .DB 1Ah,40h .DB 1Eh,00h .DB 0DEh,0C1h .DB 0DFh,81h .DB 1Fh,40h .DB 0DDh,01h .DB 1Dh,0C0h .DB 1Ch,80h .DB 0DCh,41h .DB 14h,00h .DB 0D4h,0C1h .DB 0D5h,81h .DB 15h,40h .DB 0D7h,01h .DB 17h,0C0h .DB 16h,80h .DB 0D6h,41h .DB 0D2h,01h .DB 12h,0C0h .DB 13h,80h .DB 0D3h,41h .DB 11h,00h .DB 0D1h,0C1h .DB 0D0h,81h .DB 10h,40h .DB 0F0h,01h .DB 30h,0C0h .DB 31h,80h .DB 0F1h,41h .DB 33h,00h .DB 0F3h,0C1h .DB 0F2h,81h .DB 32h,40h .DB 36h,00h .DB 0F6h,0C1h .DB 0F7h,81h .DB 37h,40h .DB 0F5h,01h .DB 35h,0C0h .DB 34h,80h .DB 0F4h,41h .DB 3Ch,00h .DB 0FCh,0C1h .DB 0FDh,81h .DB 3Dh,40h .DB 0FFh,01h .DB 3Fh,0C0h .DB 3Eh,80h .DB 0FEh,41h .DB 0FAh,01h .DB 3Ah,0C0h .DB 3Bh,80h .DB 0FBh,41h .DB 39h,00h .DB 0F9h,0C1h .DB 0F8h,81h .DB 38h,40h .DB 28h,00h .DB 0E8h,0C1h .DB 0E9h,81h .DB 29h,40h .DB 0EBh,01h .DB 2Bh,0C0h .DB 2Ah,80h .DB 0EAh,41h .DB 0EEh,01h .DB 2Eh,0C0h .DB 2Fh,80h .DB 0EFh,41h .DB 2Dh,00h .DB 0EDh,0C1h .DB 0ECh,81h .DB 2Ch,40h .DB 0E4h,01h .DB 24h,0C0h .DB 25h,80h .DB 0E5h,41h .DB 27h,00h .DB 0E7h,0C1h .DB 0E6h,81h .DB 26h,40h .DB 22h,00h .DB 0E2h,0C1h .DB 0E3h,81h .DB 23h,40h .DB 0E1h,01h .DB 21h,0C0h .DB 20h,80h .DB 0E0h,41h .DB 0A0h,01h .DB 60h,0C0h .DB 61h,80h .DB 0A1h,41h .DB 63h,00h .DB 0A3h,0C1h .DB 0A2h,81h .DB 62h,40h .DB 66h,00h .DB 0A6h,0C1h .DB 0A7h,81h .DB 67h,40h .DB 0A5h,01h .DB 65h,0C0h .DB 64h,80h .DB 0A4h,41h .DB 6Ch,00h .DB 0ACh,0C1h .DB 0ADh,81h .DB 6Dh,40h .DB 0AFh,01h .DB 6Fh,0C0h .DB 6Eh,80h .DB 0AEh,41h .DB 0AAh,01h .DB 6Ah,0C0h .DB 6Bh,80h .DB 0ABh,41h .DB 69h,00h .DB 0A9h,0C1h .DB 0A8h,81h .DB 68h,40h .DB 78h,00h .DB 0B8h,0C1h .DB 0B9h,81h .DB 79h,40h .DB 0BBh,01h .DB 7Bh,0C0h .DB 7Ah,80h .DB 0BAh,41h .DB 0BEh,01h .DB 7Eh,0C0h .DB 7Fh,80h .DB 0BFh,41h .DB 7Dh,00h .DB 0BDh,0C1h .DB 0BCh,81h .DB 7Ch,40h .DB 0B4h,01h .DB 74h,0C0h .DB 75h,80h .DB 0B5h,41h .DB 77h,00h .DB 0B7h,0C1h .DB 0B6h,81h .DB 76h,40h .DB 72h,00h .DB 0B2h,0C1h .DB 0B3h,81h .DB 73h,40h .DB 0B1h,01h .DB 71h,0C0h .DB 70h,80h .DB 0B0h,41h .DB 50h,00h .DB 90h,0C1h .DB 91h,81h .DB 51h,40h .DB 93h,01h .DB 53h,0C0h .DB 52h,80h .DB 92h,41h .DB 96h,01h .DB 56h,0C0h .DB 57h,80h .DB 97h,41h .DB 55h,00h .DB 95h,0C1h .DB 94h,81h .DB 54h,40h .DB 9Ch,01h .DB 5Ch,0C0h .DB 5Dh,80h .DB 9Dh,41h .DB 5Fh,00h .DB 9Fh,0C1h .DB 9Eh,81h .DB 5Eh,40h .DB 5Ah,00h .DB 9Ah,0C1h .DB 9Bh,81h .DB 5Bh,40h .DB 99h,01h .DB 59h,0C0h .DB 58h,80h .DB 98h,41h .DB 88h,01h .DB 48h,0C0h .DB 49h,80h .DB 89h,41h .DB 4Bh,00h .DB 8Bh,0C1h .DB 8Ah,81h .DB 4Ah,40h .DB 4Eh,00h .DB 8Eh,0C1h .DB 8Fh,81h .DB 4Fh,40h .DB 8Dh,01h .DB 4Dh,0C0h .DB 4Ch,80h .DB 8Ch,41h .DB 44h,00h .DB 84h,0C1h .DB 85h,81h .DB 45h,40h .DB 87h,01h .DB 47h,0C0h .DB 46h,80h .DB 86h,41h .DB 82h,01h .DB 42h,0C0h .DB 43h,80h .DB 83h,41h .DB 41h,00h .DB 81h,0C1h .DB 80h,81h .DB 40h,40h .END Программа "CRC-32"Программа размещается в памяти программ ЭКВМ с нулевой страницы. Запуск производится нажатием клавиш "В/О", "С/П". Останов выполнения программы - нажатием "С/П". Пример. Для строки "123456789" или эквивалентной последовательности {49, 50, 51, 52, 53, 54, 55, 56, 57} значение CRC-32 составляет CBF4392616. Файл crc32.mkp (КС 64834/36)
Исходный текст для кросс-компилятораФайл crc32.mkl .CHARSET 1251 ; Программа быстрого (табличного) расчёта CRC-32 на ЭКВМ ; Полином 0xEDB88320 ; x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 ; Контрольная сумма используется в стандартах POSIX и V.42 ; R4 - счётчик введённых байт ; R5=255 (0FFh), R6=256 ; R7-R9 - константа из таблицы ; RA-RD - CRC ; RE - адрес таблицы ; В/О С/П - подсказка в строке комментариев ; Очередной байт ввести в RX, нажать С/П - в строке комментариев выводится CRC32 .ORG 0 CX M4 255 M5 MA MB MC MD 1 + M6 .NUM TBL32 ME 4 PP M 9100 ; разрядность двоичных чисел .NUM STR1 PP M 9026 CX A1: R/S RMD K XOR 4 * RME + PP M 9042 ; индексный регистр памяти программ PP RM 9044 M7 PP RM 9044 M8 PP RM 9044 M9 PP RM 9044 RMC K XOR MD RM9 RMB K XOR MC RM8 RMA K XOR MB RM7 MA RM5 K XOR RM6 * RMB RM5 K XOR + RM6 * RMC RM5 K XOR + RM6 * RMD RM5 K XOR + PP M 9102 ; вывод шестнадцатеричного числа в строку RM4 1 + M4 GOTO A1 STR1: .TEXT "CRC32: ввод в RX, С/П\0" TBL32: .DB 00h,00h,00h,00h .DB 77h,07h,30h,96h .DB 0EEh,0Eh,61h,2Ch .DB 99h,09h,51h,0BAh .DB 07h,6Dh,0C4h,19h .DB 70h,6Ah,0F4h,8Fh .DB 0E9h,63h,0A5h,35h .DB 9Eh,64h,95h,0A3h .DB 0Eh,0DBh,88h,32h .DB 79h,0DCh,0B8h,0A4h .DB 0E0h,0D5h,0E9h,1Eh .DB 97h,0D2h,0D9h,88h .DB 09h,0B6h,4Ch,2Bh .DB 7Eh,0B1h,7Ch,0BDh .DB 0E7h,0B8h,2Dh,07h .DB 90h,0BFh,1Dh,91h .DB 1Dh,0B7h,10h,64h .DB 6Ah,0B0h,20h,0F2h .DB 0F3h,0B9h,71h,48h .DB 84h,0BEh,41h,0DEh .DB 1Ah,0DAh,0D4h,7Dh .DB 6Dh,0DDh,0E4h,0EBh .DB 0F4h,0D4h,0B5h,51h .DB 83h,0D3h,85h,0C7h .DB 13h,6Ch,98h,56h .DB 64h,6Bh,0A8h,0C0h .DB 0FDh,62h,0F9h,7Ah .DB 8Ah,65h,0C9h,0ECh .DB 14h,01h,5Ch,4Fh .DB 63h,06h,6Ch,0D9h .DB 0FAh,0Fh,3Dh,63h .DB 8Dh,08h,0Dh,0F5h .DB 3Bh,6Eh,20h,0C8h .DB 4Ch,69h,10h,5Eh .DB 0D5h,60h,41h,0E4h .DB 0A2h,67h,71h,72h .DB 3Ch,03h,0E4h,0D1h .DB 4Bh,04h,0D4h,47h .DB 0D2h,0Dh,85h,0FDh .DB 0A5h,0Ah,0B5h,6Bh .DB 35h,0B5h,0A8h,0FAh .DB 42h,0B2h,98h,6Ch .DB 0DBh,0BBh,0C9h,0D6h .DB 0ACh,0BCh,0F9h,40h .DB 32h,0D8h,6Ch,0E3h .DB 45h,0DFh,5Ch,75h .DB 0DCh,0D6h,0Dh,0CFh .DB 0ABh,0D1h,3Dh,59h .DB 26h,0D9h,30h,0ACh .DB 51h,0DEh,00h,3Ah .DB 0C8h,0D7h,51h,80h .DB 0BFh,0D0h,61h,16h .DB 21h,0B4h,0F4h,0B5h .DB 56h,0B3h,0C4h,23h .DB 0CFh,0BAh,95h,99h .DB 0B8h,0BDh,0A5h,0Fh .DB 28h,02h,0B8h,9Eh .DB 5Fh,05h,88h,08h .DB 0C6h,0Ch,0D9h,0B2h .DB 0B1h,0Bh,0E9h,24h .DB 2Fh,6Fh,7Ch,87h .DB 58h,68h,4Ch,11h .DB 0C1h,61h,1Dh,0ABh .DB 0B6h,66h,2Dh,3Dh .DB 76h,0DCh,41h,90h .DB 01h,0DBh,71h,06h .DB 98h,0D2h,20h,0BCh .DB 0EFh,0D5h,10h,2Ah .DB 71h,0B1h,85h,89h .DB 06h,0B6h,0B5h,1Fh .DB 9Fh,0BFh,0E4h,0A5h .DB 0E8h,0B8h,0D4h,33h .DB 78h,07h,0C9h,0A2h .DB 0Fh,00h,0F9h,34h .DB 96h,09h,0A8h,8Eh .DB 0E1h,0Eh,98h,18h .DB 7Fh,6Ah,0Dh,0BBh .DB 08h,6Dh,3Dh,2Dh .DB 91h,64h,6Ch,97h .DB 0E6h,63h,5Ch,01h .DB 6Bh,6Bh,51h,0F4h .DB 1Ch,6Ch,61h,62h .DB 85h,65h,30h,0D8h .DB 0F2h,62h,00h,4Eh .DB 6Ch,06h,95h,0EDh .DB 1Bh,01h,0A5h,7Bh .DB 82h,08h,0F4h,0C1h .DB 0F5h,0Fh,0C4h,57h .DB 65h,0B0h,0D9h,0C6h .DB 12h,0B7h,0E9h,50h .DB 8Bh,0BEh,0B8h,0EAh .DB 0FCh,0B9h,88h,7Ch .DB 62h,0DDh,1Dh,0DFh .DB 15h,0DAh,2Dh,49h .DB 8Ch,0D3h,7Ch,0F3h .DB 0FBh,0D4h,4Ch,65h .DB 4Dh,0B2h,61h,58h .DB 3Ah,0B5h,51h,0CEh .DB 0A3h,0BCh,00h,74h .DB 0D4h,0BBh,30h,0E2h .DB 4Ah,0DFh,0A5h,41h .DB 3Dh,0D8h,95h,0D7h .DB 0A4h,0D1h,0C4h,6Dh .DB 0D3h,0D6h,0F4h,0FBh .DB 43h,69h,0E9h,6Ah .DB 34h,6Eh,0D9h,0FCh .DB 0ADh,67h,88h,46h .DB 0DAh,60h,0B8h,0D0h .DB 44h,04h,2Dh,73h .DB 33h,03h,1Dh,0E5h .DB 0AAh,0Ah,4Ch,5Fh .DB 0DDh,0Dh,7Ch,0C9h .DB 50h,05h,71h,3Ch .DB 27h,02h,41h,0AAh .DB 0BEh,0Bh,10h,10h .DB 0C9h,0Ch,20h,86h .DB 57h,68h,0B5h,25h .DB 20h,6Fh,85h,0B3h .DB 0B9h,66h,0D4h,09h .DB 0CEh,61h,0E4h,9Fh .DB 5Eh,0DEh,0F9h,0Eh .DB 29h,0D9h,0C9h,98h .DB 0B0h,0D0h,98h,22h .DB 0C7h,0D7h,0A8h,0B4h .DB 59h,0B3h,3Dh,17h .DB 2Eh,0B4h,0Dh,81h .DB 0B7h,0BDh,5Ch,3Bh .DB 0C0h,0BAh,6Ch,0ADh .DB 0EDh,0B8h,83h,20h .DB 9Ah,0BFh,0B3h,0B6h .DB 03h,0B6h,0E2h,0Ch .DB 74h,0B1h,0D2h,9Ah .DB 0EAh,0D5h,47h,39h .DB 9Dh,0D2h,77h,0AFh .DB 04h,0DBh,26h,15h .DB 73h,0DCh,16h,83h .DB 0E3h,63h,0Bh,12h .DB 94h,64h,3Bh,84h .DB 0Dh,6Dh,6Ah,3Eh .DB 7Ah,6Ah,5Ah,0A8h .DB 0E4h,0Eh,0CFh,0Bh .DB 93h,09h,0FFh,9Dh .DB 0Ah,00h,0AEh,27h .DB 7Dh,07h,9Eh,0B1h .DB 0F0h,0Fh,93h,44h .DB 87h,08h,0A3h,0D2h .DB 1Eh,01h,0F2h,68h .DB 69h,06h,0C2h,0FEh .DB 0F7h,62h,57h,5Dh .DB 80h,65h,67h,0CBh .DB 19h,6Ch,36h,71h .DB 6Eh,6Bh,06h,0E7h .DB 0FEh,0D4h,1Bh,76h .DB 89h,0D3h,2Bh,0E0h .DB 10h,0DAh,7Ah,5Ah .DB 67h,0DDh,4Ah,0CCh .DB 0F9h,0B9h,0DFh,6Fh .DB 8Eh,0BEh,0EFh,0F9h .DB 17h,0B7h,0BEh,43h .DB 60h,0B0h,8Eh,0D5h .DB 0D6h,0D6h,0A3h,0E8h .DB 0A1h,0D1h,93h,7Eh .DB 38h,0D8h,0C2h,0C4h .DB 4Fh,0DFh,0F2h,52h .DB 0D1h,0BBh,67h,0F1h .DB 0A6h,0BCh,57h,67h .DB 3Fh,0B5h,06h,0DDh .DB 48h,0B2h,36h,4Bh .DB 0D8h,0Dh,2Bh,0DAh .DB 0AFh,0Ah,1Bh,4Ch .DB 36h,03h,4Ah,0F6h .DB 41h,04h,7Ah,60h .DB 0DFh,60h,0EFh,0C3h .DB 0A8h,67h,0DFh,55h .DB 31h,6Eh,8Eh,0EFh .DB 46h,69h,0BEh,79h .DB 0CBh,61h,0B3h,8Ch .DB 0BCh,66h,83h,1Ah .DB 25h,6Fh,0D2h,0A0h .DB 52h,68h,0E2h,36h .DB 0CCh,0Ch,77h,95h .DB 0BBh,0Bh,47h,03h .DB 22h,02h,16h,0B9h .DB 55h,05h,26h,2Fh .DB 0C5h,0BAh,3Bh,0BEh .DB 0B2h,0BDh,0Bh,28h .DB 2Bh,0B4h,5Ah,92h .DB 5Ch,0B3h,6Ah,04h .DB 0C2h,0D7h,0FFh,0A7h .DB 0B5h,0D0h,0CFh,31h .DB 2Ch,0D9h,9Eh,8Bh .DB 5Bh,0DEh,0AEh,1Dh .DB 9Bh,64h,0C2h,0B0h .DB 0ECh,63h,0F2h,26h .DB 75h,6Ah,0A3h,9Ch .DB 02h,6Dh,93h,0Ah .DB 9Ch,09h,06h,0A9h .DB 0EBh,0Eh,36h,3Fh .DB 72h,07h,67h,85h .DB 05h,00h,57h,13h .DB 95h,0BFh,4Ah,82h .DB 0E2h,0B8h,7Ah,14h .DB 7Bh,0B1h,2Bh,0AEh .DB 0Ch,0B6h,1Bh,38h .DB 92h,0D2h,8Eh,9Bh .DB 0E5h,0D5h,0BEh,0Dh .DB 7Ch,0DCh,0EFh,0B7h .DB 0Bh,0DBh,0DFh,21h .DB 86h,0D3h,0D2h,0D4h .DB 0F1h,0D4h,0E2h,42h .DB 68h,0DDh,0B3h,0F8h .DB 1Fh,0DAh,83h,6Eh .DB 81h,0BEh,16h,0CDh .DB 0F6h,0B9h,26h,5Bh .DB 6Fh,0B0h,77h,0E1h .DB 18h,0B7h,47h,77h .DB 88h,08h,5Ah,0E6h .DB 0FFh,0Fh,6Ah,70h .DB 66h,06h,3Bh,0CAh .DB 11h,01h,0Bh,5Ch .DB 8Fh,65h,9Eh,0FFh .DB 0F8h,62h,0AEh,69h .DB 61h,6Bh,0FFh,0D3h .DB 16h,6Ch,0CFh,45h .DB 0A0h,0Ah,0E2h,78h .DB 0D7h,0Dh,0D2h,0EEh .DB 4Eh,04h,83h,54h .DB 39h,03h,0B3h,0C2h .DB 0A7h,67h,26h,61h .DB 0D0h,60h,16h,0F7h .DB 49h,69h,47h,4Dh .DB 3Eh,6Eh,77h,0DBh .DB 0AEh,0D1h,6Ah,4Ah .DB 0D9h,0D6h,5Ah,0DCh .DB 40h,0DFh,0Bh,66h .DB 37h,0D8h,3Bh,0F0h .DB 0A9h,0BCh,0AEh,53h .DB 0DEh,0BBh,9Eh,0C5h .DB 47h,0B2h,0CFh,7Fh .DB 30h,0B5h,0FFh,0E9h .DB 0BDh,0BDh,0F2h,1Ch .DB 0CAh,0BAh,0C2h,8Ah .DB 53h,0B3h,93h,30h .DB 24h,0B4h,0A3h,0A6h .DB 0BAh,0D0h,36h,05h .DB 0CDh,0D7h,06h,93h .DB 54h,0DEh,57h,29h .DB 23h,0D9h,67h,0BFh .DB 0B3h,66h,7Ah,2Eh .DB 0C4h,61h,4Ah,0B8h .DB 5Dh,68h,1Bh,02h .DB 2Ah,6Fh,2Bh,94h .DB 0B4h,0Bh,0BEh,37h .DB 0C3h,0Ch,8Eh,0A1h .DB 5Ah,05h,0DFh,1Bh .DB 2Dh,02h,0EFh,8Dh .END |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |