Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекцій із Системного програмування та...docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
786.31 Кб
Скачать

Міністерство освіти і науки України

Херсонський національний технічний університет

Кафедра інформаційних технологій

Конспект лекцій

з дисципліни "Системне програмування та операційні системи"

для студентів 3 курсу денної форми навчання

спеціальності 6.080403 –

"Програмне забезпечення автоматизованих систем"

Херсон, 2008

Конспект лекцій з дисципліни "Системне програмування та операційні системи" для студентів спеціальності 6.080403 "Програмне забезпечення автоматизованих систем". / А.А. Григорова, к. т. н., доцент, О.М. Ляшенко, викладач-стажер. – Херсон: Херсонський національний технічний університет, 2008. – с. 102.

Рецензентк.т.н., доцент. В.Й. Гнатюк

Затверджено

на засіданні кафедри

інформаційних технологій

Зав.каф Ходаков В.Є.

Відповідальний за випуск В.Є. Ходаков, д.т.н., професор, завідувач кафедри ІТ

Зміст

Лекція 1 Оперативна пам’ять, регістри, прапори

Лекція 2 Безумовні переходи. Умовні переходи. Команди керування циклом

Лекція 3-4 Типи даних у процесорі. Представлення цілих чисел. Знакові та беззнакові числа. Представлення символів та рядків. Кодування чисел. Арифметичні операції. Особливості виконання арифметичних операцій. Двоїчні арифметики. Представлення адрес. Директиви визначення даних

Лекція 5 Структура команд. Виконавчі адреси

Лекція 6 Сегментування

Лекція 7 Операції з рядками

Лекція 8 Стек

Лекція 9 Процедури

Лекція 10 Процеси і потоки

Лекція 11 Архітектура пам'яті в Win32 API

Лекція 12 Вікна

Лекція 13 Взаємодія процесів. Обмін даними між процесами. Синхронізація потоків

Лекція 14 Структурна обробка виключень

Лекція 15 Системний реєстр

Лекція 16 Робота з файлами

Лекція 17 Файлова структура NTFS

Лекція 18 Загальна модель безпеки в Microsoft Windows NT

Література

Лекція 1

Тема: Оперативна пам’ять, регістри, прапори

1. Оперативна пам'ять

Обсяг оперативної пам'яті ПК - 2^20 байтів (1 Мб). Байти нумеруються починаючи з 0, номер байта називається його адресою. Для посилань на байти пам'яті використаються 20 розрядні адреси: від 00000 до FFFFF (в 16-рич-ной системі).

Байт містить 8 розрядів (бітів), кожний з яких може приймати значення 1 або 0. Розряди нумеруються праворуч ліворуч від 0 до 7:

-і-і-і-і-і-і-і-і-

| | | | | | | | |

-і-і-і-і-і-і-і-і-

7 6 5 4 3 2 1 0

Байт - це найменша комірка пам'яті, що адресується. У ПК використаються й більші осередки - слова й подвійні слова. Слово - це два сусідніх байти, розмір слова - 16 бітів (вони нумеруються праворуч ліворуч від 0 до 15). Адресою слова вважається адреса його першого байта (з меншою адресою); ця адреса може бути парним і непарним. Подвійне слово - це будь-які чотири сусідніх байти (два сусідніх слова), розмір такого осередку 32 біта; адресою подвійного слова вважається адреса його першого байта.

Байти використаються для зберігання невеликих цілих чисел і символів, слова - для зберігання цілих чисел й адрес, подвійні слова - для зберігання "довгих" цілих чисел і т.зв. адресних пар (сегмент: зсув).

2. Регістри

Крім осередків оперативної пам'яті для зберігання даних (правда, короткочасного) можна використати й регістри - осередку, що входять до складу процесора й доступні з машинної програми. Доступ до регістрів здійснюється значно швидше, ніж до комірок пам'яті, тому використання регістрів помітно зменшує час виконання програм.

Всі регістри мають розмір слова (16 бітів), за кожним з них закріплене певне ім'я (AX, SP і т.п.). По призначенню й способу використання регістри можна розбити на наступні групи:

- регістри загального призначення (AX, BX, CX, DX, BP, SI, DI, SP);

- сегментні регістри (CS, DS, SS, ES);

- лічильник команд (IP);

- регістр прапорів (Flags).

(Розшифровка цих назв: A - accumulator, акумулятор; B - base, база; C - counter, лічильник; D - data, дані; BP - base pointer, покажчик бази; SI - source index, індекс джерела; DI - destination index, індекс приймача; SP - stack pointer, покажчик стека; CS - code segment, сегмент команд; DS - data segment, сегмент даних; SS - stack segment, сегмент стека; ES - extra segment, додатковий сегмент, IP - instruction pointer, лічильник команд.)

Регістри загального призначення можна використати у всіх арифметичних і логічних командах. У той же час кожен з них має певну спеціалізацію (деякі команди "працюють" тільки з певними регістрами). Наприклад, команди множення й розподілу вимагають, щоб один з операндів перебував у регістрі AX або в регістрах AX й DX (залежно від розміру операнда), а команди керування циклом використають регістр CX як лічильник циклу. Регістри BX й BP дуже часто використаються як базові регістри, а SI й DI - як індексні. Регістр SP звичайно вказує на вершину стека, апаратно підтримуваного в ПК.

Регістри AX, BX, CX й DX конструктивно влаштовані так, що можливо незалежний доступ до їх старшої й молодшої половин; можна сказати, що кожний із цих регістрів складається із двох байтових регістрів, позначуваних AH, AL, BH і т.д. (H - high, старший; L - low, молодший):

-і-і-і-і-і- -і-і-і-і-і- -і-і-і-і-і- -і-і-і-і-і-

AX | AH | AL | BX | BH | BL | CX | CH | CL | DX | DH | DL |

-і-і-і-і-і- -і-і-і-і-і- -і-і-і-і-і- -і-і-і-і-і-

15 8 7 0

Таким чином, з кожним із цих регістрів можна працювати як з єдиним цілим, а можна працювати й з його "половинками". Наприклад, можна записати слово в AX, а потім уважати тільки частина слова з регістра AH або замінити тільки частина в регістрі AL і т.д. Такий пристрій регістрів дозволяє використати їх для роботи й із числами, і із символами.

Всі інші регістри не діляться на "половинки", тому вважати або записати їхній уміст (16 бітів) можна тільки цілком.

Сегментні регістри CS, DS, SS й ES не можуть бути операндами ніяких команд, крім команд пересилання й стекових команд. Ці регістри використаються тільки для сегментування адрес (див. 1.4).

Лічильник команд IP завжди містить адреса (зсув від початку програми) тієї команди, що повинна бути виконана наступної (початок програми зберігається в регістрі CS). Уміст регістра IP можна змінити тільки командами переходу.