
- •1. Віртуальна пам’ять. Види віртуальної пам’яті.
- •3 Види вірт.Памяті:
- •2. Перетворення лінійної адреси у фізичну при сторінковій організації пам’яті.
- •3. Визначення ос наявності або відсутності сегмента у пам’яті.
- •4. Визначення ос наявності або відсутності сторінки у пам’яті.
- •5. Механізм включення віртуальної пам’яті.
- •6. Плоска модель пам’яті.
- •9. Дескриптор сегменту. Види дескрипторів....
- •10. Таблиця сегментів переривань та її призначення.
- •11. Виключення. Види виключень.
- •12. Структури даних.Опис структур
- •13. Доступ до примірників структур даних.
- •14. Записи даних. Застосування записів даних.
- •15. Доступ до примірників записів даних. Див. Пункт 14.
- •16. Порядок виконання команд після повернення з обробки відмови.
- •17. Структура tss та її призначення. Бітова карта введення/виведення, її призначення.
- •18. Перемикання задач. Умови повернення в основну задачу.
- •19. Дескриптор сегменту. Види дескрипторів.
- •20. Класифікація дескрипторів користувача.
- •21. Шлюзи. Призначення шлюзів. Види шлюзів
- •22. Байт доступу. Його структура та призначення.
- •23. Система привілеїв та її застосування.
- •24. Захист пам’яті.
- •25. Рівні привілеїв дескриптора.
12. Структури даних.Опис структур
Struct – об’єднує в собі кілька змінних
<імя с-ри> struct date struct
<Опис полей> day db 1
<імя с-ри> ends year dw 2000
date ends
С-ри можуть бути в будь-якому місці, але перед 1-им використанням. Для визн.атрибута с-ри, треба визн.розмір елемента с-ри у байтах.
Mov ax, offset date або mov al, byte ptr date.day
mov al, [bx].day
<адресовий вираз> . <імя ділянки с-ри>
Union – об’єднання – специфічні с-ри, які можуть викор. Різними модулями, при чому розмір обєдн. будуть мати розмір найбільшого з об’єктів.
<імя обєдн> union
<Опис ділянок>
<імя обєдн> ends
Можна використовувати як елемент с-ри, в різних модулях доступ до елем.обєдн.можна здійснювати за різними типами. Доступ до елементів проходить по їх іменах. Одночасна робота з елементами виключена. В якості елементів об’єднань можна використ. і с-ри.
Record – записи <ім’я запису> record<Опис елементів>
з метою економії пам’яті введено записи. При опису запису для кожного елемента вказується довжина в бітах, і необов’язково, деякі значення.
13. Доступ до примірників структур даних.
Структуры представляют собой шаблоны с описаниями форматов данных, которые можно накладывать на различные участки памяти, чтобы затем обращаться к полям этих участков с помощью мнемонических имен, определенных в описании структуры. Структуры особенно удобны в тех случаях, когда мы обращаемся к областям памяти, не входящим в сегменты программы, т.е. к полям, которые нельзя описать с помощью символических имен. Используются структуры также и в тех случаях, когда в программе многократно повторяются сложные коллекции данных с единым строением, но различающимися значениями. Пример:
meddata struc ;Структура с именем meddata
index dd 0 ; Номер карты
sex db 0 ;Пол
birth dw 0 ;Год рождения
datein db ' / / ' ;Дата поступления
dateout db ' / / ' ;Дата выписки
meddata ends ;Конец описания структуры
Описание структуры можно располагать в любом месте программы, но до описания конкретных структурных переменных. Транслятор, встретившись с описанием структуры, не транслирует ее текст, т.е. не выделяет место в памяти, а просто запоминает приведенное описание, чтобы воспользоваться им в дальнейшем, если в программе встретятся объявления переменных типа этой структуры.
Заполним ее конкретной информацией, которая была указана в описании структуры:
data segment
pat 1 meddata <1234567, 'м',1955, 1З/06/981, '15/06/98'>
pat2 meddata <1982234, 'м',1932, '18/06/98', '25/06/98 '>
pat3 meddata <4389012, 'ж',1966, '01/12/97', '15/12/97'>
pattemp meddata <>
data ends
При обработке данных в программе можно пользоваться мнемоническими обозначениями всей структуры и ее составляющих, причем имена элементов структуры должны отделяться точкой:
mov EAX,patl.index ;ЕАХ=1234567
mov SI,offset patl.datein ;31=смещение элемента patl.datein
mov DL,pat3.sex ;DL='ж'
Адрес конкретной структурной переменной можно поместить в базовый или индексный регистр, и пользоваться им в конструкциях с косвенной адресацией:
mov BX,offset pat3 ;ВХ=смещение pat3
mov EAX,[BX].index ;EAX=4389012
mov [BX].sех='м' ;Программная инициализация