Дослідження інструкцій логічних операцій і виконання арифметичних операцій навчального комп’ютера – симулятора DeComp

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра СКС

Інформація про роботу

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Організація та функціонування комп’ютерів

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра СКС Звіт з лабораторної роботи № 4 з дисципліни: “Організація та функціонування комп’ютерів” на тему: « Дослідження інструкцій логічних операцій і виконання арифметичних операцій навчального комп’ютера – симулятора DeComp.» Лабораторна робота № 4 Тема: Дослідження інструкцій логічних операцій і виконання арифметичних операцій навчального комп’ютера – симулятора DeComp. Мета роботи: 1. Вивчити призначення логічних операцій. 2. Навчитись створювати і використовувати "фільтри" за допомогою логічних операцій. 3. Вивчити правила кодування додатних і від’ємних двійкових чисел для здійснення арифметичних операцій у комп’ютерах; 4. Навчитися кодувати двійкові числа із знаком у інструкціях навчального комп’ютера – симулятора DeComp. 1. Теоретичні відомості 1.1. Загальні відомості про логічні функції Усі дії, які виконуються у комп’ютері, повинні бути закодовані попередньо у програмі. За допомогою кожної команди програми кодується одна операція комп’ютера, яка виконується над парою операндів. Арифметична операція – операція, у якій операнди і результат сприймаються як числа. До них відносяться операції додавання і віднімання, з якими ми познайомилися у попередніх роботах, а також операції множення і ділення. Усі інші операції, наприклад, добування кореня квадратного, піднесення до степеня, дифференцювання та ін., реалізуються у комп’ютері на основі вказаних операцій. Логічна операція – операція, що полягає у логічній обробці операндів, які приймають у ній участь. До них відносяться операції порівняння, визначення модуля, визначення ознак результатів арифметичних операцій та ін. До них часом відносять операції зсуву праворуч або ліворуч. Точна, певна послідовність операцій або програма, яка потрібна для виконання певної задачі на комп’ютері, формується на основі математичної теорії, відомої як алгебра логіки. Створив алгебру логіки англійський математик Дж. Буль (1815 – 1864). Тому її називають також алгеброю Буля. Алгебра логіки отримала значний розвиток завдяки роботам таких вчених як Е. Пост, К. Шеннон, В. Глушков, С. Яблонський та ін. Основним поняттям алгебри логіки є висловлювання. Під час вивчення звичайної алгебри розглядають залежності типу А = f(x1, x2, …xn), де x1, x2, …xn – аргументи, а А – функція. Аргументи і функція при цьому можуть набувати найрізноманітніших числових значень: додатних і від’ємних, цілих і дробових. У алгебрі логіки вивчають залежності аналогічного вигляду А = f(x1, x2, …xn), але такі, в яких аргументи і функція можуть набувати тільки двох значень: 1 і 0. Практичне використання таких функцій є формальним (математичним) описом логіки людського мислення в процесі виконання якоїсь задачі. Вся діяльність людини так або інакше пов’язана з різними висловлюваннями. Будь-яке вимовлене твердження, зауваження є певним висловлюванням. У алгебрі логіки саме висловлювання є змінною (аргументом), яка може набувати одного з двох можливих значень (істина чи фальш, так чи ні, правдиво чи не правдиво) і над якою можна виконувати деякі дії. Подібно до аргументів у звичайній алгебрі, висловлювання позначають буквами якого-небудь алфавіту, наприклад, X, Y,Z або а, в, с. . . За змістом висловлювання поділяють на прості і складні. Наприклад, прості: “вікно відчинене”, “у квартирі холодно”, “Микола вчиться в національному університеті “Львівська політехніка”, “Микола йде на стадіон”. З простих висловлювань за допомогою слів-зв’язок (сполучників) І, АБО, НЕ, ЯКЩО-ТО та ін. утворюють складні. Наприклад, речення: „Вікно відчинене і у квартирі холодно”, „Микола піде у парк або на стадіон”. Будь-яке висловлювання може відповідати або не відповідати дійсності. У першому випадку його називають істинним (правдивим, true) і позначають як 1, а в інших – помилковим (хибним, false) і позначають як 0. Особливістю виконання логічних операцій є порозрядність, тобто операції виконуються над кожною парою розрядів числа окремо і при цьому переповнення розрядної сітки не відбувається. У обчислювальній техніці логічні операції використовуються надзвичайно широко. 2. Хід роботи: Вивчити і записати у звіт призначення логічних операцій AND, OR, NOT I XOR. Інструкція NOT інвертує усі розряди акумулятора із збереженням результату назад до акумулятора – 0 замінює 1 і навпаки. Логічну операцію AND називають кон’юнкцією або логічним множенням. Результат виконання операції буде рівний «1» коли дві біта будуть рівні 1, у решти випадках «0». Логічна операція OR має назву диз’юнкція або логічне додавання – результат виконання буде рівний «1» коли один з бітів, над якими виконується операція рівний 1. Логічну операцію XOR ще називають сумою за модулем 2, або – додаванням за модулем 2. Результат операції повністю співпадає з молодшим розрядом результату арифметичного додавання двох 1-розрядних чисел. Ввести у симулятор та дослідити у покроковому режимі програму, яка буде виконувати логічні операції І, АБО, Виключне-АБО та НЕ над двома числами. Коди чисел вибрати згідно варіанту, що визначається у 1-й лабораторній роботі, використовуючи всі чотири тетради 16-ти розрядного формату. Наприклад, якщо задане число 1810 = 000100102 , воно записується у вигляді: 00010010 00010010. Виписати результати виконання програми та значення прапорців ознак. № № комірки пам’яті у двійковому коді Код інструкції (двійковий) Мнемонічний запис інструкції Коментар до кожної інструкції  0 0000 0000 0000 0000 0000 0001 0000 LOAD 16 Завантаження А  1 0000 0000 0001 0100 0000 0001 0001 AND 17    2 0000 0000 0010 0001 0000 0001 0010 STORE 18 Збереження результату  3 0000 0000 0011 0000 0000 0001 0000 LOAD 16 Завантаження А  4 0000 0000 0100 0101 0000 0001 0001 OR 17    5 0000 0000 0101 0001 0000 0001 0011 STORE 19 Збереження результату  6 0000 0000 0110 0000 0000 0001 0000 LOAD 16 Завантаження А  7 0000 0000 0111 0110 0000 0001 0001 XOR 17   8 0000 0000 1000 0001 0000 0001 0100 STORE 20 Збереження результату  9 0000 0000 1001 0000 0000 0001 0000 LOAD 16 Завантаження А  10 0000 0000 1010 0111 0000 0000 0000 NOT Заперечення  11 0000 0000 1011 0001 0000 0001 0101 STORE 21 Збереження результату  12 0000 0000 1100 0000 0000 0001 0001 LOAD 17 Завантаження Б  13 0000 0000 1101 0111 0000 0000 0000 NOT Заперечення  14 0000 0000 1110 0001 0000 0001 0110 STORE 22 Збереження результату  15 0000 0000 1111 0111 1100 0000 000 HALT СТОП  16 0000 0001 0000 0001 0101 0001 0101  Число А  17 0000 0001 0001 0010 0101 0010 0101  Число Б  18 0000 0001 0010 0011 1010 0011 1010  Результат   19 0000 0001 0011 0011 0101 0011 0101  Результат   20 0000 0001 0100 0011 0000 0011 0000  Результат   21 0000 0001 0101 1110 1010 1110 1010  Результат  22 0000 0001 0110 1101 1010 1101 1010  Результат   № РА РД А РІ ЛАІ РО  1 0000 0001 0000 0001 0101 0001 0101 0001 0101 0001 0101 0000 0000 0001 000 0000 0000 0001 000  2 0000 0001 0001 0010 0101 0010 0101 0011 1010 0011 1010 0010 0000 0001 0001 0000 0000 0010 000  3 0000 0001 0010 0011 1010 0011 1010 0011 1010 0011 1010 0001 0000 0001 0010 0000 000 0011 000  4 0000 0001 0000 00010101 0001 0101 0001 0101 0001 0101 0000 0000 0001 0000 0000 0000 0100 000  5 0000 0001 0001 0010 0101 0010 0101 0011 0101 0011 0101 0101 0000 0001 0001 0000 0000 0101 000  6 0000 0001 0011 0011 0101 0011 0101 0011 0101 0011 0101 0001 0000 0001 0011 0000 0000 0110 000  7 0000 0001 0000 0001 0101 0001 0101 0001 0101 0001 0101 0000 0000 0001 0000 0000 0000 0111 000  8 0000 0001 0001 0010 0101 0010 0101 0011 0000 0010 0000 0110 0000 0001 0001 0000 0000 1000 000  9 0000 0001 0100 0011 0000 0011 0000 0011 0000 0011 0000 0001 0000 0001 0100 0000 0000 1001 000  10 0000 0001 0000 0001 0101 0001 0101 0001 0101 0001 0101 0000 0000 0001 0000 0000 0000 1010 0000  11 0000 0000 1010 0111 0000 0000 0000 1110 1010 1110 1010 0111 0000 0000 0000 0000 0000 1011 010  12 0000 0001 0101 1110 1010 1110 1010 1110 1010 1110 1010 0001 000 0001 0101 0000 0000 1100 010  13 0000 0001 0001 0010 0101 0010 0101 0010 0101 0010 0101 000 0000 0001 0001 0000 0000 1101 010  14 0000 0000 1101 0111 0000 0000 0000 1101 1010 1101 1010 0111 0000 0000 0000 0000 0000 1110 010  15 0000 0001 0110 1101 1010 1101 1010 1101 1010 1101 1010 0001 0000 0001 0110 0000 0000 1111 010  16 0000 0000 1111 0111 1100 0000 0000 1101 1010 1101 1010 0111 1100 0000 0000 0000 0000 1111 010   Дослідити у потактовому режимі інструкції AND I XOR - для непарних номерів із журналу списку групи, OR та NOT - для парних номерів із списку групи. Виписати результати виконання програми. Інструкція І – AND (0100 aaaa aaaa aaaa) – здійснює логічне множення числа яке знаходиться в акумуляторі на число за адресою аааа аааа аааа. Результат виконання операції зберігається в акумуляторі. До акумулятора заношу число 0010 0101 0010 0101, ЛАІ встановлюю 0000 0000 0000. № № комірки пам’яті у двійковому коді Код інструкції (двійковий) Мнемонічний запис інструкції Коментар до кожної інструкції  1 0000 0000 0000 0100 0000 0000 0001 AND Логічне додавання  2 0000 0000 0001 0001 0101 0001 0101  Число   № Мнемонічний запис Код, що обробляється Коментар  1 ЛАІ(РА 0000 0000 0000 вибір адреси 1-ої інструкції і занесення її до Регістра Адреси  2 РА(РД 0100 0000 0000 0001 вибір коду інструкції з РА і занесення його до Регістра Даних  3 РД(РІ 0100 0000 0000 0001 декодування інструкції у Регістрі Інструкцій  4 РІ(РА 0000 0000 0001 Встановлення РА в 1  5 РА(РД 0001 0101 0001 0101 Вибірка з пам’яті і занесення до РД числа  6 РД˄А(А 0000 0101 0000 0101 Множення числа   ІнструкціяXOR (0110 aaaa aaaa aaaa) – здійснює операцію додавання по модулю 2 числа яке знаходиться в акумуляторі на число за адресою аааа аааа аааа. Результат виконання операції зберігається в акумуляторі. До акумулятора заношу число 0010 0101 0010 0101, ЛАІ встановлюю 0000 0000 0000. № № комірки пам’яті у двійковому коді Код інструкції (двійковий) Мнемонічний запис інструкції Коментар до кожної інструкції  1 0000 0000 0000 0110 0000 0000 0001 XOR Додавання по модулю 2  2 0000 0000 0001 0001 0101 0001 0101  Число   № Мнемонічний запис Код, що обробляється Коментар  1 ЛАІ(РА 0000 0000 0000 вибір адреси 1-ої інструкції і занесення її до Регістра Адреси  2 РА(РД 0110 0000 0000 0001 вибір коду інструкції з РА і занесення його до Регістра Даних  3 РД(РІ 0110 0000 0000 0001 декодування інструкції у Регістрі Інструкцій  4 РІ(РА 0000 0000 0001 Встановлення РА в 1  5 РА(РД 0001 0101 0001 0101 Вибірка з пам’яті і занесення до РД числа  6 РД˄А(А 0011 0000 0011 0000 Додавання по модулю 2   Розробити алгоритм і написати програму, що для довільного числа "А", яке розміщене у комірці пам"яті з адресою "N", підраховує кількість пар "11" - для непарних номерів із списку групи, і кількість пар "00" - для парних номерів із списку групи. Формулювання задачі: Розробити алгоритм і написати програму, що для довільного числа "А", яке розміщене у комірці пам"яті з адресою "N", підраховує кількість пар "11". Будемо вважати що 2 парами одиниць буде тільки тоді коли йдуть 4 одиниці підряд – 1111, а не 111 Блок-схема алгоритму:  Інформація про вхідні дані і їх попереднє розташування у комірках пам’яті: вхідними даними буде число у якому буде підраховуватися кількість пар одиниць. Воно буде розташовуватися у комірці пам’яті за адресою 16. Призначення комірок що використовуються: для роботи програми використовуються комірки з адресами 17, 18, 19, 20. У комірку з адресою 17 записана «маска» згідно якої будуть витиратися 2 пари бітів. У комірці 18 буде записано результат виконання команди - кількість одиниць у числі. У комірку з адресою 19 записане число лічильника – тобто скільки ітерацій має виконати лічильник – у моєму випадку записане число 8 оскільки максимально може бути 8 пар одиниць. У комірці 20 записано 1. Цією одиницею програма зменшує лічильник циклу, а також збільшує число кількості одиниць у вхідному числі Адр. комірки пам’яті у десятковому коді Код інструкції Мнемонічний формат інструкції Коментарі інструкцій.  0 0000 0000 0001 0000 LOAD 16 Завантаження числа, вибірка 2-х бітів, віднімання від вибраних бітів маски  1 0100 0000 0001 0001 AND 17   2 0011 0000 0000 0111 SUB 17   3 1000 0000 0000 0111 JNZ 7 Перевірка чи результат операції 0  4 0000 0000 0001 0010 LOAD 18 Якщо так то збільшується лічильник пар  5 0010 0000 0001 0100 ADD 20   6 0001 0000 0001 0010 STORE 18   7 0000 0000 0001 0001 LOAD 17 Зсув маски  8 1111 1010 0000 0000 ROR   9 1111 1010 0000 0000 ROR   10 0001 0000 0001 0001 STORE 17   11 0000 0000 0001 0011 LOAD 19 Зменшення лічильника циклу  12 0011 0000 0001 0100 SUB 20   13 0001 0000 0001 0011 STORE 19   14 1000 0000 0000 0000 JNZ 0 Перевірка умови виходу з циклу  15 0111 1100 0000 0000 HALT Зупинка  16 0011 0101 0101 0111    17 1100 0000 0000 0000    18 0000 0000 0000 0000    19 0000 0000 0000 1000    20 0000 0000 0000 0001     Розробити алгоритм і написати програму, у якій для числа, яке використовується у пункті 4, виконується інвертування пар "11" - для парних номерів із списку групи і інвертування пар "00" - для непарних номерів із списку групи. Формулювання задачі: Розробити алгоритм і написати програму, у якій для числа, яке використовується у пункті 4, виконується інвертування пар "11". Будемо вважати що 2 парами одиниць буде тільки тоді коли йдуть 4 одиниці підряд – 1111, а не 111 Блок-схема алгоритму:  Інформація про вхідні дані і їх попереднє розташування у комірках пам’яті: вхідними даними буде число у якому буде підраховуватися кількість пар одиниць. Воно буде розташовуватися у комірці пам’яті за адресою 16. Призначення комірок що використовуються: для роботи програми використовуються комірки з адресами 17, 19, 20. У комірку з адресою 17 записана «маска» згідно якої будуть витиратися 2 пари бітів. Укомірку з адресою 19 записане число лічильника – тобто скільки ітерацій має виконати лічильник – у моєму випадку записане число 8 оскільки максимально може бути 8 пар одиниць. У комірці 20 записано 1. Цією одиницею програма зменшує лічильник циклу, а також збільшує число кількості одиниць у вхідному числі Адр. комірки пам’яті у десятковому коді Код інструкції Мнемонічний формат інструкції Коментарі інструкцій.  0 0000 0000 0001 0000 LOAD 16 Завантаження числа, вибірка 2-х бітів, віднімання від вибраних бітів маски  1 0100 0000 0001 0001 AND 17   2 0011 0000 0000 0111 SUB 17   3 1000 0000 0000 0111 JNZ 7 Перевірка чи результат операції 0  4 0000 0000 0001 0000 LOAD 16 Якщо так то виконується інвертування бітів  5 0110 0000 0001 0001 XOR 17   6 0001 0000 0001 0001 STORE 16   7 0000 0000 0001 0001 LOAD 17 Зсув маски  8 1111 1010 0000 0000 ROR   9 1111 1010 0000 0000 ROR   10 0001 0000 0001 0001 STORE 17   11 0000 0000 0001 0011 LOAD 19 Зменшення лічильника циклу  12 0011 0000 0001 0100 SUB 20   13 0001 0000 0001 0011 STORE 19   14 1000 0000 0000 0000 JNZ 0 Перевірка умови виходу з циклу  15 0111 1100 0000 0000 HALT Зупинка  16 0011 0101 0101 0111    17 1100 0000 0000 0000    18 0000 0101 0101 0100    19 0000 0000 0000 1000    20 0000 0000 0000 0001     Розробити алгоритм і написати програму додавання двох від’ємних 16-ти розрядних чисел. Операція виконується у доповняльному коді. Формулювання задачі: Розробити алгоритм і написати програму додавання двох від’ємних 16-ти розрядних чисел. Операція виконується у доповняльному коді. Блок-схема алгоритму:  Інформація про вхідні дані і їх попереднє розташування у комірках пам’яті: вхідними даними будуть числа які потрібно буде додати. Вони будуть розташовуватися у комірках пам’яті за адресою 16,17. Призначення комірок що використовуються: для роботи програми використовуються комірки з адресами 13,14,15. У комірці 13 записано 1. Цією одиницею програма утворює доповняльний код з оберненого. У комірку з адресою 14 записана «маска» згідно якої будуть інвертуватися біти числа крім знакового. У комірці за адресою 15 зберігатиметься результат виконання арифметичної операції. Адр. комірки пам’яті у десятковому коді Код інструкції Мнемонічний формат інструкції Коментарі інструкцій.  0 0000 0000 0001 0000 LOAD 16 Переведення в доповняльний код 1-го числа  1 0110 0000 0000 1110 XOR 14   2 0010 0000 0000 1101 ADD 13   3 0001 0000 0000 1111 STORE 15   4 0000 0000 0001 0001 LOAD 17 Переведення в доповняльний код 2-го числа  5 0110 0000 0000 1110 XOR 14   6 0010 0000 0000 1101 ADD 13   7 0010 0000 0000 1111 ADD 15 Додавання 2-х чисел  8 0011 0000 0000 1101 SUB 13 Переведення в прямий код результату.  9 0110 0000 0000 1110 XOR 14   10 0001 0000 0000 1111 STORE 15   11 0111 1100 0000 0000 HALT СТОП  12 0000 0000 0000 0000    13 0000 0000 0000 0001    14 0111 1111 1111 1111    15 0000 0000 0000 0000    16 0000 0000 0000 0000    17 0000 0000 0000 0000     Оформити та захистити звіт з лабораторної роботи. Висновок: .На цій лабораторні й роботі я вивчив призначення логічних операцій. Навчивсь створювати і використовувати "фільтри" за допомогою логічних операцій. Вивчив правила кодування додатних і від’ємних двійкових чисел для здійснення арифметичних операцій у комп’ютерах. Навчився кодувати двійкові числа із знаком у інструкціях навчального комп’ютера – симулятора DeComp.
Антиботан аватар за замовчуванням

28.01.2013 17:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!