Написать программу на языке C и Assembler
a. Входные данные для задачи должны инициализироваться
случайно с помощью самостоятельно реализованного на ассемблере
генератора псевдослучайных чисел. В качестве ГПСЧ можно
использовать любой из известных (например, на сдвиговых регистрах
или линейном конгруэнтном методе). В случае использования в
качестве ГПСЧ регистра сдвига с линейной обратной связью
самостоятельно выбрать биты, с помощью которых будет
осуществляться обратная связь. В случае применения линейного
конгруэнтного метода самостоятельно выбрать модуль m и множитель
a. В качестве инициализирующего значения использовать первые две
цифры даты рождения. Также необходимо оптимизировать процедуру
умножения a на Xn - 1.
b. Решением задачи является вывод в консоль верного
результата при любых допустимых входных данных.
c. Программа должна корректно завершаться, не вызывая
аварийный останов.
d. В программе на языке С должен быть реализован только
следующий функционал: выделение памяти под исходные данные (но
не их инициализация), вызов подпрограммы, выполняющей основные
вычисления, вывод результата вычислений в консоль. Все основные
вычисления должны быть оформлены в виде ассемблерного
модуля.
e. Для выполнения повторяющихся однотипных действий
необходимо использовать соответствующие средства языка.
Копирование и вставка одного и того же кода нужное количество раз с
незначительными изменениями без необходимости является ошибкой.