- •Системне програмування, характерні особливості.
- •Асемблер. Варіанти спільного використання асемблера і мов високого рівня.
- •Інструментальні засоби розробки програм на мові Асемблер.
- •Регістри.
- •Користувацькі регістри.
- •Сегментні регістри.
- •Організація роботи з пам’ятю.
- •Сегментна модель пам’яті.
- •Специфікація типів даних
- •Набір команд мікропроцесора.
- •11. Використання арі-функцій.
- •12. Структура програми, приклад простої програми для Windows.
- •13. Передача параметрів через стек
- •14. Використання ресурсів при роботі з діалоговими вікнами.
- •15.Використання ресурсів при роботі з меню.
- •16. Використання акселераторів у файлах ресурсу.
- •17. Ресурси. Переваги використання ресурсів у програмах.
- •18. Використання ресурсів при роботі з іконками, рядками, курсорами.
- •21. Потоки, взаємодія потоків.
- •22. Семафори блять! Події нахуй!
- •23. Критичні секції.
Інструментальні засоби розробки програм на мові Асемблер.
Для розробки програм на мові асемблер велика кількість інструментальних засобів, проте самими популярними є MASM 32. Вибір MASM 32, як середовища розробки програм виходять з слідуючих міркувань:
MASM 32 є найбільш популярним середовищем програмування.
MASM 32 дозволяє працювати з мультимедійними розширенням.
Стандарти файлів прийняті в MASM 32 підтримуються великою кількістю компілятор на мові асемблеру.
Стандарти і положення MASM 32 повністю сумісні і підтримуються в найбільш популярних середовищах розробки програмних продуктів.
Регістри.
Регістр – комірка пам’яті мікропроцесора розміром від 8 до 32 біт призначена для управління роботою процесора. З точки зору програміста всі регістри можна розподілити на дві частини.
Користувацькі регістри.
Користувацькі регістри. До них належать:
Регістри загального призначення, що зберігають в пам’яті адреси даних
Сегментні регістри, які зберігають адреси сегментів пам’яті.
Регістри з пів процесора використовуються в типах даних з плаваючою крапкою. Цілочисельні регістри типу mmx – призначені для роботи з мультимедійними даними.
Регістри стану і управління, містять в собі інформацію про стан мікропроцесора виконуваної програми і дозволяють змінювати цей стан, вони поділяються на дві частини:
Регістри ознак (ФЛАГИ)
Регістри показників.
Друга частина регістрів призначена для підтримки різних режимів роботи мікропроцесора, сервісних функцій, а також регістри специфічного значення що використовується лише в певному виді мікропроцесорів.
Регістри загального призначення використовуються в програмах для зберігання операндів (команд) логічних і арифметичних операцій, компонентів адрес пам’яті. Всі регістри цієї групи дозволяють звертатися до своїх молодших частин. Перерахуємо регістри , які належать до цієї групи:
Регістри акумулятори – застосовуються для зберігання проміжних даних. В деяких командах мікропроцесора використання таких регістрів є обов’язковим. До них належать регістри типу:
Eax(32)/ax(16)/ah(8)/aL(8)
Базові регістри – застосовуються для зберігання базової адреси деякого об’єкта в пам’яті мікропроцесора. До даних належать регістри типу:
Ebx/bx/bh/bL
Регістр лічильник – застосовується в командах, які виконуються повторювальні дії. Його використання є часто неявним і прихованим в алгоритмі відповідної команди. До них належать:
Ecx/cx/ch/cL
Регістр даних – за своїм призначенням працює так само як і регістр акумулятор. В деяких командах він використовується з метою збільшення діапазону пам’яті. До них належать:
Edx/dx/dh/dL
Регістр індекс джерела – використовується в ланцюжкових операціях і містить поточну адресу елемента в ланцюжку джерелі. До них належать:
Esi/si
Регістр приймач - використовується в ланцюжкових операціях і містить поточну адресу джерела прийняття даних. До них належать:
Edi/di
Регістр покажчик стека – містить покажчик вершини стека поточному сегменті . До них належать:
Esp/sp
Регістр покажчик база стеку – призначений для організації довільного доступу до даних всередині стека. До них належать:
Ebp/bp
