- •Затверджую Начальник спеціальної кафедри № 5
- •Методична розробка
- •Тема 1. Мови асемблера та їх використання для побудови базових елементів системних програм.
- •Тема 1/3
- •Контрольні запитання про таблиці системних програм
- •Принципи побудови професійних системних програм
- •Короткі теоретичні відомості
- •Семантичне або змістовне налагодження проектів
- •Знайомство зі створенням багатомодульних проектів з використанням мов програмування високого рівня Створення проектів, орієнтованих на налагодження системних програм
- •Синтаксичне налагодження проектів
- •2. Використання імен даних, їх структур та полів у вставках на мові асемблера
- •Організація вставок на мові Асемблера
- •3. Програмування обробки математичних виразів і операцій присвоювання та їх налагодження
- •Основні способи використання полів структур у вставках на мові Асемблера
- •Структура програмного шаблона виконання роботи
- •Рекомендації з використання функції відображення
- •Формати для виведення даних функціями форматного виведення
- •Завдання на роботу
Формати для виведення даних функціями форматного виведення
Специфікатор (остання літера) |
Типи даних та відображення |
Вирівнювання |
Префікси формату |
|
c s
d
x X o u |
Система числення | Знаки |
Цілі Символ char Рядок *char Цілі зі знаком int, long Цілі без знака Шістнадцяткові, Те саме, великими Вісімкові Десяткові |
[-] [-] [+] [ ] [-] [#] |
[l] [N] [F]
[l]
[N] [F] |
f е E g G |
Формат подання |
З плаваючою точкою Фіксована точка Експоненційний Те ж з великим E Найкоротший f│e Найкоротший f│E |
[-] [+] [#] [ ] |
[.точність] [L] |
P |
Покажчики У форматі адреси |
|
[N] [F] |
|
Умовні позначення:
Нахилені квадратні дужки [] – ознака факультативності або необов’язковості конструкції;
[-] – зміщення результату перетворення до лівої межі поля виведення;
[+] – виведення знака перед числом;
[ ] – пропуск замість плюса або виведення мінуса;
[#] – кодове подання з початковими або кінцевими нулями;
[l] – префікс довгого формату, який визначає подання даних для більш довгих форматів;
[ширина] – визначає мінімальне число знаків або символів виведення.
[точність] – визначає число цифр після десяткової точки для форматів f, e і E або число значущих цифр для форматів g і G. Округлення виконується шляхом відкидання молодших розрядів. За умовчання приймається точність в шість десяткових цифр.
В версіях мови C, реалізованих на ранніх персональних комп’ютерах типа IBM PC, на додачу до стандартних специфікаторів мови C можуть вказуватися спеціальні префікси посилань при виведенні:
[N] - визначає аргумент у вигляді вказівника типа near;
[F] - визначає аргумент у вигляді вказівника типа far.
Ці префікси можуть використовуватися при роботі з рядками в форматі %s і %p, тому що звертання до рядків завжди реалізуються в формі вказівників.
При виконанні функції printf рядок формату передається в вихідний файл без змін до одержання першого символу %. Після чого виконується перетворення чергового операнда у відповідності з поточним форматом, результат цього перетворення також розміщується в вихідному файлі.
Завдання на роботу
Завдання на підготовку до роботи на комп’ютері:
1. Визначити варіант завдання для основної задачі за Табл.3.2.
2. Ознайомитись з шаблоном програмного проекту spLb1. Настроїти відповідні дані в програмному проекті на мові С.
Таблиця 3.2
Варіанти завдань для запису асемблерної вставки виразу до контрольної функції
№ вар. |
Операції |
Тип даних аргументів |
Тип результатів |
Тип повертання |
1 |
с=а+b - c * d |
float |
float |
|
2 |
с=а+b / c * d |
int |
int |
|
3 |
с=а+b % c * d |
short |
short |
|
4 |
с=а+b * c - d |
long |
long |
|
5 |
с=а+b * c / d |
double |
double |
|
6 |
с=а+b - c * d |
char |
char |
|
7 |
с=а+b / c * d |
float |
float |
|
8 |
с=а+b % c * d |
int |
int |
|
9 |
с=а+b * c - d |
short |
short |
|
10 |
с=а+b * c / d |
long |
long |
|
11 |
с=а+b - c * d |
double |
double |
|
12 |
с=а+b / c * d |
char |
char |
|
13 |
с=а+b % c * d |
float |
float |
|
14 |
с=а+b * c - d |
int |
int |
|
15 |
с=а+b * c / d |
short |
short |
|
16 |
с=а+b - c * d |
long |
long |
|
17 |
с=а+b / c * d |
double |
double |
|
18 |
с=а+b % c * d |
char |
char |
|
19 |
с=а+b * c - d |
float |
float |
|
20 |
с=а+b * c - d |
int |
int |
|
3. Настроїти програми з модуля виведення, щоб вони давали можливість відображувати потрібні типи даних так, щоб забезпечити відповідність специфікаторів виведення типам і кількості даних функціональних полів. Перед початком заняття показати викладачу текст вставки на мові Асемблера.
Завдання на роботу на комп’ютері
4. Вставити до процедури main(…) у файлі spLb1.cpp проекту spLb1. dsp задане за варіантом присвоювання, та опис і ініціалізацію даних з відповідними іменами;
5. Вставити виклик функції printf() для перевірки відповідності результатів вхідним даним;
6. Вставити до процедури main(…) у файлі spLb1.cpp проекту spLb1. dsp відповідну вставку на мові Асемблера;
7. Вставити ще один виклик функції printf() для перевірки відповідності результатів вхідним даним.
8. Побудувати програмний проект, ввівши програмні модулі у відповідні файли проекту і налагодити синтаксис.
9. Побудувати виконавчий модуль тестової програми і налагодити змістовне виконання програми.
10. Одержати результати виконання, проаналізувати їх і зробити висновки.
11. Перевірити результати шляхом перегляду за кроками, починаючи з точки призупинки.
12. Показати результати викладачу.
Завдання на самостійну роботу: повторити матеріал лекції; вивчити основні поняття.
/В.І.Пустоваров/
