МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
“ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
Кафедра "Обчислювальної техніки та програмування"
АЛЬБОМ ДОКУМЕНТІВ
до курсового проекту з курсу
“Системне програмування”
Тема: “ Робота з записами мови ассемблера ”
Харків
2005
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
“ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
Кафедра"Обчислювальної техніки та програмування"
Затверджую
__________________________
_________________/ /“___” ________________2005 р.
Робота з записами мови ассемблера
Специфікація
Лист затвердження
xxxxxxxxxxxxxx
Виконав
ст. гр xxxx
xxxxxxxxxxxxxxx
“___” ________________2005 р.
Перевірив
xxxxxx.
“___” ________________2005 р.
Харків
2005
ЗАТВЕРДЖЕНО
xxxxxxxxxxxx
Робота з записами мови ассемблера
Специфікація
xxxxxxxxxxxxxxxx
Код | Найменування | Примітки |
xxxxxx – 00 00-01 | Специфікація | |
xxxxxx. 03011 – 13 00-01 | Опис пргограми | |
xxxxxxx. 03011 – 12 00-01 | Текст програми |
Харків
2005
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
“ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
Кафедра"Обчислювальної техніки та програмування"
Затверджую
__________________________
_________________/ /“___” ________________2005 р.
Робота з записами мови ассемблера
Опис програми
Лист затвердження
xxxxxxxxxxxxx
Виконав
ст. гр xxxxxx
xxxxxxxx.“___” ________________2005 р.
Перевірив
xxxxxxxxx.
“___” ________________2005 р.
Харків
2005
ЗАТВЕРДЖЕНО
xxxxxxxxxxx
Робота з записами мови ассемблера
Опис програми
xxxxxxxxxxx
Харків
2005
Зміст
Вступ
Загальні відомості
Функціональне призначення
Опис логічної структури
Використовувані технічні засоби
Виклик і завантаження
Вхідні дані
Вихідні дані
Висновки
Література
Вступ
Запис — структурний тип даних, що складається з фіксованого числа елементів завдовжки від одного до декількох біт.
При описі запису для кожного елементу вказується його довжина в бітах і, що необов'язкове, деяке значення. 8, 16 або 32 біт.
Якщо сумарний розмір запису менше вказаних значень, то всі поля запису “притискаються” до молодших розрядів.
Використовування записів в програмі, так само, як і структур, організовується в три етапи:
Задання шаблона запису, тобто визначення набору бітових полів, їх довжин і, при необхідності, ініціалізація полів.
Визначення екземпляру запису. Так само, як і для структур, цей етап має на увазі ініціалізацію конкретної змінної типом наперед визначеної за допомогою шаблона запису.
Організація звертання до элементів запису.
Компілятор TASM, крім стандартних засобів обробки записів, підтримує також і деякі додаткові можливості їх обробки.
Опис запису
Опис шаблона запису має наступний синтаксис (мал. 6):
Имя_записи RECORD <описание элементов>
Тут: <описание элементов> є послідовністю описів окремих елементів запису згідно синтаксичній діаграмі (див. мал. 6):
Мал.1. Синтаксис опису шаблона запису
При описі шаблона пам'ять не виділяється, оскільки це всього лише інформація для транслятора асемблера про структуру запису.
Так само, як і для структур, місцеположення шаблона в програмі може бути будь-ким, але при цьому необхідно враховувати логіку роботи однопрохідного транслятора.
Визначення екземпляру запису
Для використовування шаблона запису в програмі необхідно визначити змінну з типом даного запису, для чого застосовується наступна синтаксична конструкція (мал. 7):
Мал.2. Синтаксис опису екземпляру запису
Аналізуючи цю синтаксичну діаграму, можна зробити висновок, що ініціалізація елементів запису здійснюється достатньо гнучко. Розглянемо декілька варіантів ініціалізації.
Якщо ініціалізувати поля не потрібен, то достатньо вказати ? при визначенні екземпляру запису:
...
iotest record
i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00
...
flag iotest ?
Якщо ви складете і дослідите у відладчику тестовий приклад з даним визначенням запису, то побачите, що всі поля змінної типу запис flag обнуляються. Це відбувається не дивлячись на те, що у визначенні запису задані початкові значення полів.
Якщо потрібна часткова ініціалізація елементів, то вони полягають в кутові (< і >) або фігурні ({ і }) дужки.
Відмінність тут в тому, що в кутових дужках елементи повинні бути задані в тому ж порядку, що і у визначенні запису. Якщо значення деякого елементу спывпадає з початковим, то його можна не вказувати, але обов'язково позначити його комі. Для останніх елементів коми, що йдуть підряд, можна опустити.
Наприклад, згодитися із значеннями за умовчанням можна так:
iotest record
i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00
...
flag iotest <> ;согласились со значением по умолчанию
Змінити значення поля i2 можна так:
iotest record
i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00
...
flag iotest <,10,> ; перевизначили i2
Застосовуючи фігурні дужки, також можна вказати вибіркову ініціалізацію полів,але при цьому необов'язково позачити комами поля, із значеннями за умовчанням яких ми згодні:
iotest record
i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00
...
flag iotest {i2=10} ; переопределили i2, не обращая внимания на порядок;следования других компонентов записи
1.Загальні відомості
Проект написан на мові TASM, реалізовано у трьох файлах:
main.asm, defs.inc, funcs.inc, record.inc. Під час компіляції усі файли об’єднуються в один.
Для своєї роботи проект може використовувати операційні системи MS Dos версії 1.0, або вище, а також операційні системи
MS WINDOWS 95/98/Me/2000/XP. Не виключається робота проекту під усіма іншими операційними системами, що якимсь чином можуть емулювати сеанси роботи під операційною системою MS DOS.
2. Функціональне призначення
Проект може слугувати в якості навчального посібника для розуміння роботи записів та в якості прикладу одного з варіантів, такого як створення масиву, добавлення елемента, видалення елемента, змінення поля, очищення поля. Також у проекті можна наглядно побачити ввод з клавіатури і вивід результатів на екран.
Програма написана на мові ассемблера з використовуванням процедур.
Функціональне обмеження програми є те, що вона може бути реалізована тільки у файлі з розширенням COM, якщо розширення буде EXE програма працювати не буде. Більше функціональних обмежень немає.
3. Опис логічної структури
4.Використовувані технічні записи
Проект має нормально працювати на комп’ютерах IBM PC із процесорами і8086, або більш старших моделях. Програма потребує оперативної пам’яті не більше 6 Кб, до цього треба додати пам’ять, яку займає операційна система MS DOS чи WINDOWS. Потрібен також відеоадаптер VGA, для організації діалогу з користувачем. При написанні проекту використовувався комп’ютер з процесором AMD Athlon XP 1700+, оперативною пам’ятю 256 Мб та операційною системою Windows XP у середовищі TASM.