
- •Затверджую Начальник спеціальної кафедри № 5
- •Методична розробка
- •Тема 1. Мови асемблера та їх використання для побудови базових елементів системних програм.
- •Тема 1/3
- •Контрольні запитання про таблиці системних програм
- •Принципи побудови професійних системних програм
- •Короткі теоретичні відомості
- •Знайомство зі створенням багатомодульних проектів з використанням мов програмування високого рівня Створення проектів, орієнтованих на налагодження системних програм
- •Синтаксичне налагодження проектів
- •Семантичне або змістовне налагодження проектів
- •2. Використання імен даних, їх структур та полів у вставках на мові асемблера
- •Організація вставок на мові Асемблера
- •3. Програмування обробки математичних виразів і операцій присвоювання та їх налагодження
- •Основні способи використання полів структур у вставках на мові Асемблера
- •Структура програмного шаблона виконання роботи
- •Рекомендації з використання функції відображення
- •Формати для виведення даних функціями форматного виведення
- •Завдання на роботу
3. Програмування обробки математичних виразів і операцій присвоювання та їх налагодження
Для доступу до даних та їх адрес в командах вставки на мові Асемблера використовуються імена простих даних та даних покажчиків. Транслятор вставок на мові Асемблера перетворює їх на адреси або безпосередні операнди у відповідних форматах машинних команд.
Основні способи використання полів структур у вставках на мові Асемблера
Доступ до полів записів таблиць здійснюється через імена окремих полів так само як і в базовій мові С/C++ та у відповідній мові Асемблера.
Системні програми в процесі свого виконання використовують власну вбудовану інформаційну базу (IБ), а також будують ІБ задачі про текст на заданій вхідній мові.
Структура програмного шаблона виконання роботи
Для спрощення розв’язання задачі слід використовувати прототип проекту spLb1.dsp, який зберігається в робочому просторі spLb1.dsw в папці spLb1, яка зберігає шаблони прототипів для всіх практичних занять циклу «Системне програмування і операційні системи». До складу проекту консольної прикладної програми, орієнтованої на можливість використання в числі інших бібліотек стандартних функцій та об’єктів MFC (Microsoft Foundation Classes) входять модулі з наступними вхідними файлами заголовків і реалізацій:
StdAfx.h і StdAfx.cpp – модуль для організації використання об’єктів класів MFC;
tables.h і tables.cpp – модуль для опису і організації використання структур або класів таблиць;
vistab.h і vistab.cpp – модуль для відображення рядків або повних таблиць;
spLb1.cpp – модуль контрольних прикладів для тестування функцій обробки таблиць.
При побудові проектів без функцій MFC та в інших системах, що дозволяють побудову проектів, файли StdAfx.h і StdAfx.cpp можуть бути опущені, а посилання на них в операторах #include “StdAfx.h” повинні бути виключені.
Розділ визначень і декларацій основної частини програми тестування в модулі spLb1.cpp повинен включати визначення таблиць, ініціалізацію їх елементів, спеціальні змінні, що зберігають довжину (тобто кількість елементів) таблиці. Виконавча частина модуля spLb1.cpp програми повинна включати циклічно повторювані виклики функцій для перевірки та відображення різних варіантів вхідних даних так, щоб перевірити роботу функцій при типових та кінцевих значення з множини припустимих значень аргументів.
Рекомендації з використання функції відображення
Головним для коректного відображення є додержання правил звертання до функції виведення printf, яка виконує в мові C форматне виведення на пристрій відображення (в стандартний файл виведення stdout) в формі
printf(рядок формату, список аргументів виведення);
Рядок формату задається або у вигляді константи-рядка, який включає символи коду КОІ-8 (в більш загальному випадку коду ASCII з відповідною національною таблицею кодування), замкнені в лапки, або вказівник на масив знаків або символів. Кількість аргументів визначається кількістю специфікаторів перетворення даних виведення, наведених в таблиці 2, а тип даних, що виводиться, повинен відповідати типу специфікатора. При цьому відповідальність за відповідність і кількість об’єктів виведення покладається на програміста і діагностика не видається, через що потрібно бути дуже уважним при написанні і модифікації подібних викликів функції.
В рядку формату спеціальні символи можуть задаватися після знака "\", а власне специфікатори перетворення починаються зі знака "%". Для включення в текст рядка результату одного знака "%" його необхідно повторити в рядку формату. Специфікатор перетворення в загальному випадку має синтаксис.
%[вирівнювання][ширина][префікс формату]
специфікатор формату
Таблиця 3.1