- •Методичні вказівки
- •«Системне програмування»
- •5.05010201«Обслуговування комп’ютерних систем і мереж»
- •Рецензія
- •Тема 3. Мова програмування Assembler ……………………………..……..135
- •1.1. Історія розвитку мов системного програмування Питання для опрацювання
- •Методичні рекомендації
- •1. Класифікація мов програмування
- •2. Розвиток мов системного програмування
- •Студент повинен
- •Питання для самоконтролю
- •Історія виникнення мови програмування с
- •2. Сфери застосування мови програмування с
- •1. Двійкова, вісімкова та шістнадцяткова системи числення.
- •2. Формати представлення чисел у різних системах числення.
- •3. Стандарти представлення чисел зі знаком.
- •Формати з плаваючою комою
- •Векторні формати
- •Приклади
- •Студент повинен
- •Питання для самоконтролю
- •Література
- •Питання для опрацювання
- •Методичні рекомендації
- •Приклад:
- •2. Керуючі послідовності
- •1. Види логічних операцій, які виконуються в комп’ютері.
- •За структурою
- •За типом запису даних
- •За архітектурними особливостями
- •За формою подання даних
- •Залежно від часу виконання операцій
- •Залежно від реалізації мікроалгоритму
- •Пристрій управління
- •Операційний пристрій
- •Регістри
- •2. Алгоритми виконання логічних операцій.
- •Побітові логічні операції
- •Бітові зсуви
- •Бітові операції як основа цифрової техніки[ред. • ред. Код]
- •Студент повинен
- •Питання для самоконтролю
- •Література
- •Питання для опрацювання
- •Методичні рекомендації
- •Студент повинен
- •Питання для самоконтролю
- •Література
- •Питання для опрацювання
- •Методичні рекомендації
- •Порядок використання вбудованих функцій під час написання програм.
- •2. Порядок практичного використання багатовимірних масивів під час створення програм.
- •Студент повинен
- •1. Порядок задання і створення масивів структур.
- •2. Порядок практичного використання масивів структур під час створення програм.
- •1. Створення динамічних масивів за допомогою вказівників.
- •2. Передача аргументів процедур та функцій з використанням вказівників.
- •3. Використання масивів вказівників.
- •Студент повинен
- •Питання для самоконтролю
- •1. Головні означення та властивості теорії графів.
- •Зображення графів на площині
- •1. Порядок переходу у графічний режим виводу інформації.
- •2. Функції для побудов геометричних фігур.
- •1. Базові поняття об’єктно‑орієнтованого програмування (ооп).
- •2. Успадкування та поліморфізм.
- •Практичні прийоми програмування з використанням об’єктів.
- •Студент повинен
- •Питання для самоконтролю
- •Література
- •Тема 3. Мова програмування Assembler
- •3.1. Спеціалізоване використання регістрів процесора Intel 8086 Питання для опрацювання
- •Методичні рекомендації
- •1. Спеціалізоване використання регістрів даних.
- •2. Спеціалізоване використання регістрів-вказівників.
- •3.2. Способи адресації пам’яті у процесорах Intel 8086
- •1. Регістрова адресація.
- •2. Безпосередня адресація.
- •3. Пряма адресація.
- •4. Непряма адресація та її різновиди.
- •Питання для самоконтролю
- •1. Особливості роботи з відеорежимами.
- •2. Порядок задання кольору для виведення даних.
- •1. Функції для керування роботою послідовного порту
- •2.Функції для керування роботою паралельного порту
2. Безпосередня адресація.
Безпосере́дня адреса́ція — метод адресації пам'яті, де один з операндів знаходиться в регістрі процесора, а інший єконстантою, значення якої зберігається безпосередньо у відповідному полі машинної команди.
+------+-----+-----+----------------+
| ADD | R1 | R2 | константа | R1 := R2 + константа;
+------+-----+-----+----------------+
На малюнку показаний типовий формат триадресної команди для реалізації безпосередньої адресації (типовий для RISC-архітектур). Для CISC-архітектур регістри R1 та R2 зазвичай збігаються.
В цьому методі адресації обчислення ефективної адреси не виконується взагалі, і в деяких архітектурах системи команд він взагалі не вважається методом адресації.
Розрядність константи та, відповідно, діапазон значень, залежать від конкретної архітектури. Наприклад, для архітектури DEC VAX, розрядність такої константи могла становити 6, 8, 16, або 32 біт. В RISC-архітектурах, як правило, розрядність константи є фіксованою і не може змінюватись.
3. Пряма адресація.
АБСОЛЮТНА (ПРЯМА) АДРЕСАЦІЯ пам'яті — метод адресації пам'яті, в якому ефективна адреса операнда записується безпосередньо в команді
, +---------+---------+-----------------------------------+
| ADD | R1 | адреса операнда | R1:=R1+MEM[адреса операнда]
+---------+---------+-----------------------------------+
Для великої розрядності пам'яті це потребує досить великого поля команди. Тому в CISC-машинах, де допускається змінна довжина команди, цей метод адресації реалізований як правило безпосередньо, а в деяких RISC-машинах, де довжина поля адреси обмежена, вона завантажується частинами в один з вільних регістрів, а потім використовується регістрова адресація(яка в свою чергу в RISC-машинах реалізується на базі адресації за зсувом з нульовим значенням зсуву).
Абсолютною адресацією також називають спосіб знаходження наступної команди в командах переходу (наприклад, безумовного переходу), коли ефективна адреса наступної команди міститься повністю у відповідному полі команди переходу, або міститься там частково та обчислюється за встановленими правилами.
+----+------------------------------+
|JUMP| 28-бітна адреса |
+----+------------------------------+
Наприклад, в багатьох 32-бітних RISC-архітектурах, ефективна адреса наступної команди обчислюється як об'єднання чотирьох старших біт з лічильника команд та 28 біт молодших біт, які містяться в команді переходу. Це дозволяє переходити на будь-яку команду в межах 256-мегабайтного діапазону.
4. Непряма адресація та її різновиди.
Проста непряма адресація
|
|
При використанні команд простої непрямої адресації звертання відбувається за адресою, яка знаходиться в індексному регістрі. AVR-МК підтримують 6 команд простої непрямої адресації: LD Rd, X/Y/Z (пересилка байту з ОЗП в РЗП) і ST X/Y/Z, Rr (пересилка байту з РЗП в ОЗП).
Переслати вміст комірки пам'яті з адресою в індексному регістрі Х до регістру R5.
|
|
Відносна непряма адресація
При використанні команд відносної непрямої адресації адреса комірки пам'яті, до якої відбувається звертання утворюється сумуванням індексного регістра Y або Z і константи, заданої в команді. AVR-МК підтримують 4 команд відносної непрямої адресації: LDD Rd, Y+q/Z+q (пересилка байту з ОЗП в РЗП) і STD Y+q/Z+q, Rr (пересилка байту з РЗП в ОЗП). Під зміщення відводиться 6 біт, тобто воно не перевищує 64 байт.
|
|
Переслати вміст комірки пам'яті з адресою в індексному регістрі Y зміщеною на 10 байт у регістр R25.
Непряма адресація з предекрементом
|
|
При використанні команд непрямої адресації з предекрементом вміст індексного регістру спочатку зменшується на 1, а потім проводиться звертання за отриманою адресою. AVR-МК підтримують 6 команд непрямої адресації з предекрементом: Rd, -Х/-У/^ (пересилка байту з ОЗП в РЗП) і 8Т -Х/-У/^, Rr(пересилка байту з РЗП в ОЗП).
|
|
Зменшити вміст індексного регістра Х на 1 та зберегти регістр R4 в комірці пам'яті з адресою в індексному регістрі Х.
Непряма адресація з постінкрементом
|
|
При використанні команд непрямої адресації з постінкрементом після звертання за адресою, яка знаходиться в індексному регістрі, вміст індексного регістру збільшується на 1. AVR-МК підтримують 6 команд непрямої адресації з постінкрементом: ЬБ Rd, Х+/У+^+ (пересилка байту з ОЗП в РЗП) і 8Т X+/Y+/Z+, Rr (пересилка байту з РЗП в ОЗП).
Завантажити регістр R17 вмістом комірки пам'яті з адресою в індексному регістрі Z та збільшити вміст індексного регістра Z на 1.
|
|
Непряма адресація пам'яті програм
Для зчитування даних з пам'яті програм використовується непряма адресація з використанням індексного регістра Z.
|
|
Адреса константи - байту міститься в регістрі Z. 15 старших бітів визначають адресу слова, а молодший (0-й) біт - молодший або старший байт константи в пам'яті програм: 0 -молодший, 1 - старший байт. Результат читання з пам'яті програм завжди розташовується в регістрі R0. В AVR-МК передбачена одна команда читання вмісту пам'яті програм: LPM (Load from Program Memory). Напр.
|
|
Студент повинен
знати:
Означення регістрової адресації.
Означення способів адресації перходів.
Види способів адресації переходів.
Означення та призначення адресації відносно лічильника команд.
Означення та призначення абсолютної адресації.
Означення та призначення безпосередньої адресації.
Означення та призначення прямої адресації.
Означення та призначення простої непрямої адресації.
Означення та призначення відносної непрямої адресації.
Означення та призначення непрямої адресації з предекрементом.
Означення та призначення непрямої адресації з постінкрементом.
Означення та призначення непрямої адресації памяті програм.
вміти:
Використовувати регісрову адресацію при створення власних програм.
