Итак, друзья, вы все уже отдохнули и хотите большего ;) Поэтому начинаем новогодний асмовый марафон задач!
Задачи будут постепенно усложняться. Прекрасная возможность начинающим приложить силы, а более программеры отточат свои навыки и помогут начинающим :)
—---------------
Задача 1
Вояджер посылает цепочку из ста (100) 7-битных данных. 8й бит зарезервирован как контрольный.
Необходимо:
1) Написать энкодер данных: он добавляет к исходным данным контрольный бит;
2) Написать "портильщик данных", который вставляет в исходные данные случайный (если сложно, то неслучайный) бит.
3) Написать декодер данных: возвращает исходные данный и обнаруживает "испорченные" байты.
Придумайте, как вы посчитаете контрольный бит, куда вы его всунете — это всё на ваше усмотрение.
—------------—
data: db 0x6E, 0x65, 0x70, 0x74,
0x75, 0x6E, 0x65, 0x20,
0x64, 0x61, 0x74, 0x61,
0x3A, 0x0D, 0x68, 0x79,
0x64, 0x72, 0x6F, 0x67,
0x65, 0x6E, 0x20, 0x38,
0x30, 0x0D, 0x68, 0x65,
0x6C, 0x69, 0x75, 0x6D,
0x20, 0x31, 0x2E, 0x35,
0x0D, 0x6D, 0x65, 0x74,
0x68, 0x61, 0x6E, 0x65,
0x20, 0x30, 0x2E, 0x30,
0x31, 0x39, 0x0D, 0x61,
0x6D, 0x6D, 0x6F, 0x6E,
0x69, 0x61, 0x20, 0x4E,
0x48, 0x33, 0x0D, 0x77,
0x61, 0x74, 0x65, 0x72,
0x20, 0x48, 0x32, 0x4F,
0x0D, 0x61, 0x6D, 0x6D,
0x6F, 0x6E, 0x69, 0x75,
0x6D, 0x20, 0x68, 0x79,
0x64, 0x72, 0x6F, 0x73,
0x75, 0x6C, 0x66, 0x69,
0x64, 0x65, 0x20, 0x4E,
0x48, 0x34, 0x53, 0x48