Курсовая работа: Розробка на мові асемблера алгоритму контролю на парність масиву даних
Після закінчення процедури акумулятор AX містить обчислений для масиву значення CRC8.
Для збереження результату його переносимо в змінну result.
Для перевірки цілісності масиву потрібно повторити обчислення контрольної суми і порівняти зі значенням в result.
Блок-схема алгоритму наведена в додатку 2.
4. Відладка та випробування розробленого програмного забезпечення
Алгоритм визначення CRC реалізований в процедурі CalcCRC. Перед викликом цієї процедури необхідно в регістри записати початкові дані - сегментний регістр ES повинен містити сегмент в якому розташований масив, регістр DX - зміщення початку масиву всередині сегмента, BX - довжина масиву.
Програма виконує наступні операції на вибір користувача: обчислення CRC масиву і запис результату в змінну, перевірка цілісності масиву - повторне обчислення CRC і порівняння обчисленого значення з записаним, спотворення масиву - оборотне зміна одного біта перевірочного масиву.
Для обчислення CRC, викликається процедура CalcCRC, а результат виконання зберігається у змінній result.
При перевірці цілісності, викликається процедура CalcCRC, а результат виконання порівнюється зі збереженим у змінній result. У випадку розбіжності, виводиться повідомлення про помилку. При збігу значень (цілісність даних не порушена) повідомлення не виводиться і користувач повертається в головне меню.
Спотворення масиву використовується для тестування програми і демонстрації роботи.
Для тестування в програмі передбачений перевірочний масив даних довжиною 32 байта. При спотворенні, інвертується молодший біт першого слова масиву.
Висновок
Асемблер є символічним аналогом машинної мови. З цієї причини програма, написана на асемблері, повинна відображати всі особливості архітектури мікропроцесора: організацію пам'яті, способи адресації операндів, правила використання регістрів і т. д. З-за необхідності врахування подібних особливостей асемблер унікальний для кожного типу мікропроцесорів.
У цій роботі розглянуті основні етапи програмування на асемблері, реалізований алгоритм виконання поставленого завдання, а також виконана трансляція коду у виконуваний файл.
Література
1.Абель П. Основи программирования/ Пер. с англ. Ю. В. Сальниковая.- М.: Висш. Шк. 1992г. - 447с.: ил.
2.А. Жуков, А. Авдохин «Assembler».-Спб: БХВ - Петербург, 2002..
3.Архитектура ввода-вывода персональных ЭВМ IBM РС Под редакцией Ю. С. Лукача (C) Инженерно-техническое бюро, 1990
4.В. Юров «Assembler» Практикум.-Спб.:Питер, 2001.
5.В. Юров «Assembler» Учебник.-Спб.:Питер, 2001.
6.Зубков С. В. Ассемблер для Dos, Windows и Unix - «Питер», в 2004 г.
7.Ирвин, Кип. Язык Ассемблера для процессоров Intel, 3-е издание: Пер. с англ. - М.: Издательский дом «Вильямс», 2002.-616с.: ил. - Парал. Тит. Англ.
8.Использование Turbo Assembler при разработке программ / Сост. А. А. Чекатков.-Киев:Диалектика,1995.-228с
Додаток А
Текст програми
MODEL SMALL
;*************************************************
; Сегмент стека
;*************************************************
_Stack SEGMENT WORD 'STACK'
DB 200h DUP (?)
_Stack ENDS
;*************************************************
; Сегмент тестового масиву
;*************************************************
DataSeg SEGMENT WORD 'DATA'
TestTab DB 32 DUP (\