- •Міністерство освіти і науки України
- •Модуль 1: арифметичні і логічні основи еом
- •1.1 Термінологія одиниць вимірювання
- •1.2 Аналогові та цифрові системи
- •1.3 Логічні булеві вентилі
- •1.4 Системи числення
- •Десяткова система важка для технічної реалізації. Елементи з 10 стійкими станами ( на основі сегнетокераміки, декатрони і т.Д.) мають невисоку швидкість переключення.
- •1.5 Десяткова та двійкова системи числення
- •1.6 Десятково-двійкова конвертація
- •1.7 Шістнадцяткова система числення
- •1.8 Конвертація з двійкової до шістнадцяткової системи числення
- •1.9 Конвертація з шістнадцяткової до двійкової системи числення
- •1.10 Конвертація у систему числення з будь яким базисом
- •1.11 Прямий, зворотний і додатковий коди
- •Нуль у додатковому коді має одне представлення
- •Правила виконання додавання двійкових чисел
- •1.12 Ознака переповнення розрядної сітки
- •1.13 Лабораторна робота 1
- •Порядок виконання:
- •1.14 Питання з підготовки до модульного контролю
- •Модуль 2: класична структура еом
- •2.1 Комп’ютерні системи і програми
- •2.2 Типи комп’ютерів
- •2.3 З’єднання комп’ютерних систем
- •2.4 Поява Internet
- •2.5 Вартість технологій
- •2.6 Основні пристрої еом.
- •2.7 Структурна схема еом.
- •2.8 Структура і типи команд.
- •2.9 14 Регістрів мікропроцесора Intel 8086
- •Сегментні регістри
- •Регістри зсуву
- •Регістр прапорів
- •2.10 Лабораторна робота 2
- •Порядок виконання:
- •Короткі теоретичні зведення Операційна система ms-dos
- •Ім'я команди перемикачі параметри
- •Команди загального призначення.
- •6) Форматування дисків.
- •Format дисковод: [/1] [/4] [/8] [t:доріжки] [n:сектора] [/V][/s]
- •Каталоги
- •Робота з каталогами:
- •Робота з файлами.
- •1) Створення файлів
- •1 File(s) copied ( 1 файл скопійований )
- •2) Видалення файлів.
- •3) Перейменування файлів.
- •4) Копіювання файлів
- •5) Відображення умісту файлу на екрані.
- •6) Порівняння файлів.
- •7) Пошук
- •2.11 Лабораторна робота 3
- •Порядок виконання:
- •Утиліта налагоджувача debug.
- •2.12 Лабораторна робота 4 Тема: Команди зсуву та циклічного зсуву Зміст завдання
- •Теоретичні відомості до виконання лабораторної роботи
- •Команди циклічного зсуву
- •2.13 Питання з підготовки до модульного контролю
- •3.2 Типи запам'ятовуючих елементів озп
- •3.3 Організація основної пам'яті еом - стекова пам’ять
- •3.5 Лабораторна робота № 5
- •Порядок виконання:
- •Теоретичні зведення до виконання лабораторної роботи №5 Пересилка даних
- •3.6 Питання з підготовки до модульного контролю
- •Модуль 4. Організація систем переривання програм
- •4.1 Стан процесора. Вектор стану
- •4.2 Принципи організації систем переривання програм
- •4.3 Організація переходу до програми оброблення переривання
- •4.4 Пріоритети
- •4.5 Лабораторна робота 6 Тема: Стек і його використання для виклику процедур
- •Порядок виконання.
- •Зміст завдання:
- •Короткий опис команд мови assembler, що використовуються в лабораторній роботі 6
- •Короткий перелік основних команд утиліти налагоджувача debug, що використовується у лабораторній роботі 5
- •4.6 Еволюція операційних систем
- •4.7 Архітектура операційних систем
- •4.8 Координація дій машини
- •4.9 Питання з підготовки до модульного контролю
- •Віддруковано друкарнею
- •69006, М. Запоріжжя, пр. Леніна, 226
2.11 Лабораторна робота 3
Тема: "Утиліта налагоджувача DEBUG: дамп пам'яті"
Ціль: 1. Одержати початкові зведення про можливості програми DEBUG.
2. Вивчити методику застосування деяких основних команд DEBUG.
Порядок виконання:
1. Ознайомитися з можливостями, наданими програмою DEBUG.
2. Вивчити структуру наступних команд DEBUG:
а) початок роботи з DEBUG;
б) перегляд дампа пам'яті;
в) зчитування даних з диска в пам'ять;
г) запис даних з пам'яті на диск;
д) завдання імені програми;
е) пошук;
ж) безпосередні зміни в пам'яті;
з) закінчення роботи.
3. Зміст завдання:
а) Скопіювати на робочий диск у свій каталог файл EXAMPLE.COM і запустити його;
б) Запустити програму DEBUG і потім загрузити EXAMPLE.COM з
диска в пам'ять;
в) Використовуючи команду пошуку визначити перші три адреси осередків пам'яті в яких виявлений символ із заданим кодом (Заданий код дорівнює: Ваш номер за журналом в шістнадцятковому представленні плюс 41h). Визначити фізичні адреси цих осередків. Використовуючи команду перегляду змісту пам'яті визначити якому символу відповідає цей код;
г) Використовуючи команду пошуку визначити адреси осередків пам'яті, в яких виявлена послідовність символів (ця послідовність для кожного варіанта зазначена у таблиці 2.2)
д) Визначити фізичні адреси цих осередків;
е) Змінити зміст пам'яті по цих адресах на будь-яку іншу послідовність символів за своїм вибором;
ж) Записати виправлену програму з пам'яті на диск;
з) Вийти з DEBUG. Запустити EXAMPLE.COM і переконатися в результатах своєї роботи;
и) Видалити виправлений EXAMPLE.COM зі свого каталогу з диска
Зміст звіту.
1. Тема і ціль лабораторної роботи.
2. По кожному пункту завдання відбити:
а) структуру команд, використаних у процесі виконання цього пункту завдання;
б) результати виконання кожної команди;
в) проведені вручну розрахунки, якщо вони необхідні в цьому пункті завдання.
Утиліта налагоджувача debug.
У перекладі з англійського "Bugs" - комахи. Дослівний переклад терміна "debugging" – знищення комах. Цей термін з'явився, коли в комп'ютері Гарвардського університету Марко-1 знайшли моль, що потрапила між контактами реле. Моль була вилучена, а в журнал були занесені зведення про процес "Debugging".
Debug - це інструментальна команда DOS. Застосовується для перегляду і редагування двійкових програмних файлів (файлів машинних команд, що виконуються). Звичайно вона присутня у виді програми DEBUG.COM у каталозі DOS і призначена для професійних програмістів.
Всі операції в DEBUG виконуються в шістнадцятковій арифметиці. Кожна шістнадцяткова цифра являє собою 4 біти в двійковому представленні. Дві шістнадцяткові цифри представляють один байт. Команда працює тільки зі словами!!!
Числа можуть мати довжину від 0 до FFFF.
Для того, щоб ввести чергову команду DEBUG натисніть клавішу "Enter"(Введення).
Короткий перелік основних команд утиліти налагоджувача DEBUG
1) Початок роботи: Введіть ім'я програми DEBUG
Наприклад: D:\TASM\DEBUG ( У команді зазначений шлях до файлу, що виконується, DEBUG.COM)
На екрані з'являється запрошення до введення команд відладчика -
2) Припинення роботи DEBUG - Q (від Quit - припинити)
3) Команда для додавання і віднімання шістнадцяткових чисел.
- H число1 число2 (від Hexarithmetic - шістнадцяткова арифметика) Результатом виконання даної команди буде 2 шістнадцяткових числа
число1+число2 число1-число2
Приклад1: - H 3 2
0005 0001
Приклад2: - H D000 C000
9000 1000 (D000h+C000h=19000h, однак при переповненні
зберігаються лише 4 праві цифри відповіді)
Приклад3: - H 2 3
0005 FFFF
Для представлення негативних чисел м/п 8086 використовує додатковий код.
0000 0000 0000 0011 число 3 у прямому коді
1111 1111 1111 1100 інвертуємо біти - зворотний код числа 3
+ 1 додаємо 1
1111 1111 1111 1101 додатковий код числа 3
0000 0000 0000 0010 число 2
+ 1111 1111 1111 1101 додатковий код числа 3
1111 1111 1111 1111 (FFFF)
у відповіді вийшло негативне число в додатковому коді
0000 0000 0000 0000 інвертуємо всі біти
+ 1 і додаємо 1
0000 0000 0000 0001 модуль негативного числа дорівнює 1 (2-3=-1)
М/п може розглядати числа як зі знаком, так і без знака. Якщо розглядаються числа без знака, то переповнення - це помилка. Якщо розглядаються числа зі знаком, то помилки немає. При цьому числа від 8000h до FFFFh поводяться як негативні числа.
Позитивні 0000h 0000 0000 0000 0000b 0
... ... ...
7FFFh 0111 1111 1111 1111b +32767
Негативні 8000h 1000 0000 0000 0000b -32768
... ... ...
FFFFh 1111 1111 1111 1111b -1
Для представлення числа в зворотному коді немає необхідності попередньо переводити його в двійкову систему числення (таблиця 2.1).
Приклад 4: Знайти модуль негативного числа, додатковий код якого FFB4h
004Bh - зворотний код числа FFB4h
+ 1h
004Ch - модуль негативного числа
Таблиця 2.1. Коди чисел
|
Прямий код |
Зворотний код |
Прямий код |
Зворотний код |
||||
|
0000b |
0h |
1111b |
Fh |
1000b |
8h |
0111b |
7h |
|
0001b |
1h |
1110b |
Eh |
1001b |
9h |
0110b |
6h |
|
0010b |
2h |
1101b |
Dh |
1010b |
Ah |
0101b |
5h |
|
0011b |
3h |
1100b |
Ch |
1011b |
Bh |
0100b |
4h |
|
0100b |
4h |
1011b |
Bh |
1100b |
Ch |
0011b |
3h |
|
0101b |
5h |
1010b |
Ah |
1101b |
Dh |
0010b |
2h |
|
0110b |
6h |
1001b |
9h |
1110b |
Eh |
0001b |
1h |
|
0111b |
7h |
1000b |
8h |
1111b |
Fh |
0000b |
0h |
4) Зчитування даних з диска в пам'ять і запис з пам'яті на диск
DEBUG дає засіб представлення на екрані і зміни даних у пам'яті. А нам потрібно переглядати і змінювати дані, збережені на дисках. Зчитати дані в пам'ять з диска можна двома способами:
а) DEBUG E:\MY\FILE.EXT
Якщо робота з DEBUG починається в такий спосіб ( зазначені шлях і ім'я файлу), то утиліта зчитує файл у пам'ять.
б) - N E:\MY\FILE.EXT
DEBUG одержує повідомлення про ім'я файлу для зчитування. (від Name - ім'я)
- L
Файл зчитується в пам'ять (від Load - завантажити).
Після внесення змін у пам'ять запис на диск копії вмісту пам'яті виробляється під зазначеним заздалегідь ім'ям командою - W (від Write - записати)
Для того, щоб записати фрагмент програми на диск треба:
а) указати довжину фрагмента шістнадцятирічним числом у регістрі CX
- R CX
CX 0000
:0004
б) вказати ім'я файлу, в який буде записана програма
- N my.com
в) зробити запис файлу
- W
5) Команда перегляду вмісту пам'яті. - D (від Diplay - показати).
Звертання до осередків пам'яті відбувається по адресах. Для м/п типу Intel 8086 довжина адреси 5 шістнадцяткових розрядів.
Адреса представляється двома чотирьох розрядними числами (словами):
сегментна частина - розглядається як зміщена на одну позицію вліво, тобто *10h і зсув - відносна частина, додається до значення сегмента.
Приклад: запис адреси 1234 : 5678
сегмент зсув
Повна фізична адреса утвориться так: сегмент*10h + зсув
12340
5678
179B8 повна адреса
Сегменти нумеруються з 0000h. Мінімальний розмір сегмента - 16 байт, максимальний - 64ДО. Початкова адреса сегмента завжди кратний 16.
У команді D необхідно вказати, яку частину пам'яті ми хочемо переглянути: починаючи з якої адреси і скільки ячийок пам'яті.
Приклади: - D F000:6000
починаючи з адреси F000:6000 показується 128 байт за замовчуванням.
- D F000:6000 6800
показується вміст комірок пам'яті з адреси F000:6000 по адресу F000:6800.
- D F000:6000 L 100
починаючи з адреси F000:6000 показується задане число байт ( у даному прикладі 100h) (від Length - довжина)
Ці три способи завдання області пам'яті називаються завданням діапазону.
Уміст пам'яті - дамп пам'яті представляється одночасно в шістнадцятковій формі й у символьному форматі. (У символьному форматі відображається тільки 96 символів з 256)
25B4:0100 8A FF F3 0A 1B AE 47 1F-8B C3 48 12 B1 04 50 50 ......G...H...PP
Тут вміст осередку з адресою 25B4:0100 - 8A 25B4:0101 - FF
25B4:0102 - F3 ....
6) Безпосередні зміни в пам'яті можна зробити за допомогою команди - E (від Enter - увести).
а)Пряме введення даних
- Е 2F32:1007 A4 B7 62 71
Зазначено починаючи з якої адреси будуть заповнюватися осередки пам'яті (0F32:1007) і шістнадцятирічні числа, що будуть записані в ці осередки.
У результаті вміст осередків з адресами 2F32:1007 A4 2F32:1009 62
2F32:1008 B7 2F32:100A 71
Існує ще одна форма прямого введення даних
- E 2F32:1007 "My name"
Рядок символів знаходиться в подвійних лапках. Починаючи з адреси 0F32:1007 у 7 осередків пам'яті будуть занесені ASCII-коди зазначених символів.
б)Уведення з попереднім переглядом
- E 2F32:1007
На екрані з'являється вміст зазначеного осередка пам'яті:
0F32:1007 EB._
Після крапки можна ввести нове шістнадцяткове число або натиснувши пробіл, залишити колишнє. Процес уведення припиняється натисканням клавіші Enter. Цю команду можна використовувати для безпосереднього введення в пам'ять команд машинною мовою.
Наприклад: - E CS:100
Команди будуть заноситися за зсувом 100h від початку сегмента кодів CS.
7) Для пошуку даних у пам'яті використовується команда - S (від Search - шукати).
- S діапазон список
Діапазон вказує область пам'яті, в якій варто робити пошук. Список показує, що варто шукати в цій області. Список задається або в шістнадцятковому виді, або рядком символів.
Приклади:
- S 0 L FFFF "AB"
пошук у найближчому сегменті починаючи зі зсуву 0000 на максимальну довжину FFFF (якщо відомо точну довжину файлу в шістнадцятковому коді, можна замінити нею число FFFF).
- S 0100 0110 41
пошук всіх адрес, по яких розташований байт 41, починаючи зі зсуву 0100 по 0110.
Результат може мати вигляд:
04BA:0104
04BA:0107
Якщо виконується пошук списку більш, ніж з одного символу, то повідомляється адреса початку областей пам'яті, де виявлений цей список.
Таблиця 2.2. Завдання на лабораторну роботу 3
|
Варіант |
Послідовність символів |
Варіант |
Послідовність символів |
|
1 |
losing |
16 |
Except |
|
2 |
blaming |
17 |
build |
|
3 |
after |
18 |
every |
|
4 |
yourself |
19 |
broken |
|
5 |
heap |
20 |
distance |
|
6 |
winnings |
21 |
watch |
|
7 |
pitch |
22 |
seconds |
|
8 |
heart |
23 |
neither |
|
9 |
doubt |
24 |
knaves |
|
10 |
allowance |
25 |
common |
|
11 |
waiting |
26 |
impostors |
|
12 |
wise |
27 |
virtue |
|
13 |
hated |
28 |
thoughts |
|
14 |
nerve |
29 |
crowds |
|
15 |
sinew |
30 |
master |
