Л/р 2 - Системные вызовы¶
С помощью GNU Assembler (GAS) или Netwide Assembler (NASM) в ОС Linux создать утилиту обработки файлов, которая реализует алгоритм подсчета Контрольной суммы CRC по одному из модулей (ниже). В программе не использовать библиотечные функции (только системные вызовы и операции ассемблера).
Программа должна запускаться так:Печать ФИО, номера зачетки и модуля: ./crc -v Результат (строка вида "Vasya Pupkin IS-8201 CRC-4-ITU x4 + x + 1") выводится в STDOUT Вычисление суммы: ./crc <имя файла> Результат (число) выводится в STDOUT Проверка суммы: ./crc -c <сумма> <имя файла> Результат (true или false) выводится в STDOUTМодуль в зависимости от последних двух цифр номера зачетки:
01 - CRC-4-ITU 02 - CRC-5-EPC 03 - CRC-5-ITU 04 - CRC-5-USB 05 - CRC-6-ITU 06 - CRC-7 07 - CRC-8-CCITT 08 - CRC-8-Dallas/Maxim 09 - CRC-8 10 - CRC-8-SAE J1850 11 - CRC-8-WCDMA 12 - CRC-10 13 - CRC-11 14 - CRC-12 15 - CRC-15-CAN 16 - CRC-16-IBM 17 - CRC-16-CCITT 18 - CRC-16-T10-DIF 19 - CRC-16-DNP 20 - CRC-16-DECT 21 - CRC-16-Fletcher 22 - CRC-24 23 - CRC-24-Radix-64 24 - CRC-30 25 - CRC-32 26 - CRC-32C 27 - CRC-32K 28 - CRC-32Q 29 - CRC-40-GSM 30 - CRC-64-ISO
Оценка — 10 баллов.
Литература:
- Ассемблер в Linux для программистов C
- Ассемблеры для Linux: Сравнение GAS и NASM
- Разбор алгоритма CRC
- Understanding CRC-32
Сроки сдачи: 19.10.2011 (перненосится на 26.10.2011)