DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Набір інструкцій навчального комп’ютера. Загальний порядок виконання інструкцій

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

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

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

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

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

Міністерство освіти і науки, молоді та спорту України Національний університет „Львівська політехніка” Кафедра СКС Звіт з лабораторної роботи № 2 з дисципліни: “Організація та функціонування комп’ютерів” на тему: “ Набір інструкцій навчального комп’ютера. Загальний порядок виконання інструкцій. ” Мета: 1. Засвоїти порядок виконання програм у комп’ютері. Ознайомитися з форматом та набором інструкцій симулятора навчальної ЕОМ. Засвоїти формати і способи використання інструкцій звертання до пам’яті та інструкцій арифметичних операцій; 2. Засвоїти призначення регістра ознак процесора; 3. Ознайомитися з потактовим режимом роботи навчального комп’ютера. 4. Засвоїти базовий порядок виконання інструкції навчального комп’ютера та навчитися досліджувати хід виконання окремих інструкцій. Ознайомитись з теоретичними відомостями до лабораторної роботи. Усі інструкції у навчальному комп’ютері можна поділяти за такими напрямками: За форматом коду інструкції; За призначенням. За форматом коду інструкції є адресні та безадресні. Безадресні інструкції взагалі не використовують будь-які операнди, як, наприклад, інструкція HALT або інструкції зсувів. У таких інструкціях однозначно відомо, звідки брати операнди для операції, наприклад: - інструкція NOT однозначно працює з акумулятором (інвертує його вміст); - так само роблять усі інструкції зсувів (LSL, ASR, ROR та інші); - а от інструкції INPUT та OUTPUT працюють не лише з акумулятором, але й з портами вводу (INPUT) та виводу (OUTPUT). У свою чергу, адресні інструкції для виконання своєї операції потребують операнди, в якості яких може бути вміст будь-якої з 4096 комірок пам’яті симулятора. Отже, окрім коду операції, який займає найстарші 4 розряди машинного коду інструкції (від 15-го до 12-го ), решту розрядів займає 12-розрядна адреса комірки пам’яті, значення вмісту якої стане операндом і буде оброблятись у даній інструкції. Усі інструкції навчального комп’ютера за призначенням можна розділити на такі групи: 1) інструкції звертання до пам’яті (LOAD та STORE); 2) арифметичні інструкції (ADD та SUB); 3) логічні інструкції (AND, OR, XOR та NOT); 4) інструкції вводу/виводу (INPUT та OUTPUT); 5) інструкції керування виконанням програми: а) інструкція зупинки (HALT); б) інструкції умовних переходів (JNZ, JZ, JP, JM, JNC та JC); в) інструкція безумовного переходу (JMP); 6) інструкції зсувів (вліво (Left) та вправо (Right)): а) інструкції логічного зсуву (LSL та LSR); б) інструкції арифметичного зсуву (ASL та ASR); в) інструкції циклічного зсуву (ROL та ROR); г) інструкції циклічного зсуву через тригер ознаки переносу C (RCL та RCR). 2) Описати призначення прапорців Регістру Ознак. Відповідно до обмежень, які закладені у архітектурі любого комп’ютера, у тому числі і нашого навчального – симулятора DeComp, результат виконання арифметичних і більшості інших інструкцій необхідно аналізувати для визначення його певних особливостей. Що саме: - потрібно відрізняти додатні і від’ємні числа; - потрібно визначати стан, коли результат виконання інструкції дорівнює нулю; - потрібно визначати переповнення розрядної сітки акумулятора. Для фіксації цих станів існує регістр ознак у процесорі, який має три тригери: Z, S i C. На панелі навчального комп’ютера він розміщений біля акумулятора. Прапорець Z (Zero - нуль) встановлюється у 1 (світиться), якщо результат операції дорівнює 0. Зрозуміло, що для команди ADD ця ознака встановиться лише у випадку, якщо до 0 додати 0, або якщо додаються два однакових числа з протилежними знаками. Прапорець S (Sign - знак) встановлюється в 1, якщо результат операції – від’ємне число. Знову ж таки, інструкція ADD не може дати від’ємного результату за винятком чисел у доповняльному коді, яких ми поки-що не розглядаємо. Зрозуміло, якщо віднімати від меншого числа більше інструкцією SUB, отримаємо ознаку від’ємного результату S. Прапорець C (Carry - перенос) встановлюється в 1, коли у результаті арифметичної операції (додавання чи віднімання) виникає перенос із старшого розряду результату або при виконанні операції зсуву вправо чи вліво крайній розряд числа вийшов за межі розрядної сітки. Ввести у симулятор і виконати дослідження у потактовому режимі програми додавання двох чисел, яка була підготована у роботі № 1. Записати результати –мікропрограму виконання з необхідними поясненями. У комарках памяті 10 та 11 знаходяться числа 22 і 33 відповідно. Необхідно знайти їхню суму та записати в комірку 12. Для виконання інструкцій використовуються комірки під номерами 0-3. 1-й такт. Натиснемо кнопку ПУСК. У результаті спочатку синім кольором засвітиться лічильник адреси інструкції (ЛАІ), а потім білим – регістр адреси пам’яті (РА) і значення ЛАІ опиниться у РА, тобто код розміщення нашої першої інструкції - 0000 0000 0000. ЛАІ  РА. 2-й такт. Тепер синім кольором засвітиться вікно пам’яті, а білим – регістр даних пам’яті (РД), тобто значення (вміст) виділеної комірки пам’яті (на яку вказує РА) зчитується і записується до РД – у мому випадку випадку – 0000 0000 0000 1010 . ПамРА  РД. 3-й такт: Синій – РД, білий – регістр інструкції (РІ), тобто ми переносимо машинний код інструкції з РД до спеціального регістра – РІ. (0000 0000 0000 1010) РД  РІ. 4-й такт. В 4-му кроці значення адреси операнда (тобто 0000 0000 1010) з регістру інструкцій РІ заноситься до РА: АДР (РІ)  РА. 5-й такт. Операнд (тобто, двійковий код числа 2210 - 0000 0000 0001 0110) зчитується з пам’яті і записується до РД: Пам(РА)  РД. 6-й такт. Операнд (0000 0000 0001 0110) зчитується з РД і записується в А(акумулятор): РДА 7-й такт. Підгттовка адресу (0000 0000 0001) наступної інструкції. ЛАІ+1 ЛАІ 8-й такт. З ЛАІ адреса (0000 0000 0001) наступної інструкції записується в РА. ЛАІ РА 9-й такт. Зміст виділеної комірки памяті (0010 0000 0000 1011) записався в РД. памРА РД. 10-й такт. Переносимо код (0010 0000 0000 1011) з РД в РІ. РД РІ 11-й такт. Значення адреси (0000 0000 1011) з РІ переноситься в РА. адрРІ РА. 12-й такт. Значення виділеної комірки (0000 0000 0010 0001) зчитується з записується в РД. памРА РД. 13-й такт. Значення РД (0000 0000 0010 0001) додається до значення (0000 0000 0001 0110) яке знаходилося в А ( акумуляторі ). Результат (0000 0000 0011 0111) А+РД А. 14-й такт. Оскільки операція додавання є арифметичною, тому вона впливає на усі 3 прапорці регістру ознак (РО). Внутрішні схеми процесора аналізують у акумуляторі результат виконання операції і включають, при необхідності, відповідний прапорець: Z, S, C (A)  РО. 15-й такт. Підготовка адресу (0000 0000 0010) наступної інструкції. ЛАІ+1 ЛАІ. 16-й такт. З ЛАІ адреса (0000 0000 0010) наступної інструкції записується в РА. ЛАІ РА. 17-й такт. Зміст виділеної комірки памяті (0001 0000 0000 1100) записався в РД. памРА РД. 18-й такт. Переносимо код (0001 0000 0000 1100) з РД в РІ. РД РІ. 19-й такт. Значення адреси (0000 0000 1100) з РІ переноситься в РА. адрРІ РА. 20-й такт. Значення А(акумулятора) (0000 0000 0011 0111) записується в РД. А РД. 21-й такт. Значення РД (0000 0000 0011 0111) записується в виділену комірку пам’яті РА (0000 0000 1100). РД памРА. 22-й такт. Підготовка адресу (0000 0000 0011) наступної інструкції. ЛАІ+1 ЛАІ. 23-й такт. З ЛАІ адреса (0000 0000 0011) наступної інструкції записується в РА. ЛАІ РА. 24-й такт. Зміст виділеної комірки (0111 1100 0000 0000) памяті записався в РД. памРА РД. 25-й такт. Переносимо код (0111 1100 0000 0000) і з РД в РІ. РД РІ. № Мнемонічний запис Код, що обробляється Коментар  1 ЛАІ  РА 0000 0000 0000 вибір адреси 1-ї інструкції і занесення її до Регістра Адреси  2 памРА  РД 0000 0000 0000 1010 вибір коду 1-ї інструкції з пам’яті і запис її до Регістру Даних  3 РД  РІ 0000 0000 0000 1010 декодування інструкції у Регістрі Інструкцій  4 адрРІ РА 0000 0000 1010 вибір адреси 1-го операнда  5 памРА  РД 0000 0000 0001 0110 вибір коду 1-го операнда з РА і занесення його до Регістра Даних  6 РДА 0000 0000 0001 0110 Занесення значення 1-го операнда РД в А(акумулятор)  7 ЛАІ+1 ЛАІ 0000 0000 0001 підготовка адреси нової інструкції  8 ЛАІ РА 0000 0000 0001 вибір адреси 2-ї інструкції і занесення її до Регістра Адреси  9 памРА РД 0010 0000 0000 1011 вибір коду 2-ї інструкції з пам’яті і запис її до Регістру Даних  10 РД РІ 0010 0000 0000 1011 декодування інструкції у Регістрі Інструкцій  11 адрРІ РА 0000 0000 1011 вибір адреси операнда  12 памРА РД 0000 0000 0010 0001 Занесення значення 2-го операнда в РД  13 А+РД А 0000 0000 0010 0001 + 0000 0000 0001 0110 = 0000 0000 0011 0111 виконання операції додавання (1-й операнд – у акумуляторі)  14 Z,S,C(A)РО 000 встановлення прапорців регістру ознак  15 ЛАІ+1 ЛАІ 0000 0000 0010 підготовка адреси нової інструкції  16 ЛАІ РА 0000 0000 0010 вибір адреси 3-ї інструкції і занесення її до Регістра Адреси  17 памРА РД 0001 0000 0000 1100 вибір коду 3-ї інструкції з пам’яті і запис її до Регістру Даних  18 РД РІ 0001 0000 0000 1100 декодування інструкції у Регістрі Інструкцій  19 адрРІ РА 0000 0000 1100 вибір адреси операнда  20 А РД 0000 0000 0011 0111 Запис значення операнда А в РД  21 РД памРА 0000 0000 0011 0111 0000 0000 1100 Запис значення операнда РД в виділену пам'ять РА  22 ЛАІ+1 ЛАІ 0000 0000 0011 підготовка адреси нової інструкції  23 ЛАІ РА 0000 0000 0011 вибір адреси 4-ї інструкції і занесення її до Регістра Адреси  24 памРА РД 0111 1100 0000 0000 вибір коду 4-ї інструкції з пам’яті і запис її до Регістру Даних  25 РД РІ 0111 1100 0000 0000 декодування інструкції у Регістрі Інструкцій   4) Ввести у симулятор та виконати дослідження у покроковому режимі програми, яка відніматиме два числа А і В для значень, коли А = В, А > В і А < В, вибравши довільні відповідні значення. Виписати результати виконання дослідження і значення прапорців ознак у таблицю, взірець якої поданий у роботі № 1. Поясніть отримані результати. А) A=B A=1510=11112; B=1510=11112. РА РД А РІ ЛАІ РО  1-й крок 0000 0000 1010 0000 0000 0000 1111 0000 0000 0000 1111 0000 0000 0000 1010 0000 0000 0001 000  2-й крок 0000 0000 1011 0000 0000 0000 1111 0000 0000 0000 0000 0011 0000 0000 1011 0000 0000 0010 100  3-й крок 0000 0000 1100 0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 1100 0000 0000 0011 100  4-й крок 0000 0000 0011 0111 1100 0000 0000 0000 0000 0000 0000 0111 1100 0000 0000 0000 0000 0011 100   У результаті віднімання двох однакових числе ми отримуємо 0, тому засвітився прапорець «Z» Регістру Ознак. B) A>B A=1510=11112; B=1310=11012 РА РД А РІ ЛАІ РО  1-й крок 0000 0000 1010 0000 0000 0000 1111 0000 0000 0000 1111 0000 0000 0000 1010 0000 0000 0001 000  2-й крок 0000 0000 1011 0000 0000 0000 1101 0000 0000 0000 0010 0011 0000 0000 1011 0000 0000 0010 000  3-й крок 0000 0000 1100 0000 0000 0000 0010 0000 0000 0000 0010 0001 0000 0000 1100 0000 0000 0011 000  4-й крок 0000 0000 0011 0111 1100 0000 0000 0000 0000 0000 0010 0111 1100 0000 0000 0000 0000 0011 000   У результаті віднімання двох додатніх чисел, меншого від більшого, ми отримуємо число додатнє, тому не засвітився жоден прапорець Регістру Ознак. C) A<B A=1510=11112; B=1610=100002 РА РД А РІ ЛАІ РО  1-й крок 0000 0000 1010 0000 0000 0000 1111 0000 0000 0000 1111 0000 0000 0000 1010 0000 0000 0001 000  2-й крок 0000 0000 1011 0000 0000 0001 0000 1111 1111 1111 1111 0011 0000 0000 1011 0000 0000 0010 011  3-й крок 0000 0000 1100 1111 1111 1111 1111 1111 1111 1111 1111 0001 0000 0000 1100 0000 0000 0011 011  4-й крок 0000 0000 0011 1111 1111 1111 1111 1111 1111 1111 1111 0111 1100 0000 0000 0000 0000 0011 011   У результаті віднімання двох додатніх числе, більшого від меншого ми отримуємо число від’ємне, тому засвітився прапорець Регістра Ознак «S». Ввести у симулятор та виконати дослідження у потактовому режимі 3-х окремих інструкції – LOAD, STORE i SUB. Пояснити необхідну підготовку числових даних, виписати порядок виконання інструкцій у вигляді мікропрограм із вказанням реальних значень регістрів і поясненням дій, що виконуються у кожному такті. Інструкція LOAD: Зчитування числа 1510 (0000 0000 0000 11112) із комірки 1010 (0000 0000 0000 10102). № Мнемонічний запис Код, що обробляється Коментар  1 ЛАІ РА 0000 0000 0000 вибір адреси інструкції і занесення її до Регістра Адреси  2 памРА РД 0000 0000 0000 1010 вибір коду інструкції з пам’яті і запис її до Регістру Даних  3 РД РІ 0000 0000 0000 1010 декодування інструкції у Регістрі Інструкцій  4 адрРІ РА 0000 0000 1010 вибір адреси операнда  5 памРА РД 0000 0000 0000 1111 вибір коду операнда з Регістру Адрес і занесення його до Регістра Даних  6 РД А 0000 0000 0000 1111 Занесення значення операнда РД в А(акумулятор)  7 ЛАІ + 1  ЛАІ 0000 0000 0001 підготовка адреси нової інструкції   Для виконання команди LOAD необхідно підготувати числа які будуть зчитуватися, підготувати інструкцію 0000 аааа аааа аааа( де аааа аааа аааа – адреса комірки, яка буде зчитуватися, а 0000 код команди LOAD). Інструкція STORE: Запис числа 0 який знаходиться в А(акумоляторі) до 1210 (0000 0000 11002) комірки пам’яті. № Мнемонічний запис Код, що обробляється Коментар  1 ЛАІ РА 0000 0000 0000 вибір адреси інструкції і занесення її до Регістра Адреси  2 памРА РД 0001 0000 0000 1100 вибір коду інструкції з пам’яті і запис її до Регістру Даних  3 РД РІ 0001 0000 0000 1100 декодування інструкції у Регістрі Інструкцій  4 адрРІ РА 0000 0000 1100 вибір адреси операнда  5 РД памРА 0000 0000 0000 0000 Запис значення Регістру Даних до виділеної комірки пам’яті Регістру Адрес  6 ЛАІ + 1  ЛАІ 0000 0000 0001 підготовка адреси нової інструкції  Для виконання команди STORE необхідно записати число в А(акумулятор) яке буде записано в пам’ять, також необхідно підготувати інструкцію 0001 аааа аааа аааа ( де аааа аааа аааа – адреса комірки, у яку буде записно число, а 0001 код команди STORE). Інстукція SUB: Віднімання числа 1510 (0000 0000 0000 11112), яке знаходиться в комірці 1010 (10102) від числа 24010 (0000 0000 1111 00002) ,яке знаходиться в А(акумуляторі). № Мнемонічний запис Код, що обробляється Коментар  1 ЛАІ  РА 0000 0000 0000 вибір адреси 1-ої інструкції і занесення її до Регістра Адреси  2 РА  РД 0011 0000 0000 1010 вибір коду інструкції з РА і занесення його до Регістра Даних  3 РД  РІ 0011 0000 0000 1010 декодування інструкції у Регістрі Інструкцій  4 РІ  РА 0000 0000 1010 вибір адреси 1-го операнда  5 РА  РД 0000 0000 0000 1111 вибір коду 1-го операнда з пам’яті і запис його до Регістру Даних  6 А-РД  А 0000 0000 1110 0001 виконання операції віднімання (2-й операнд – у акумуляторі)  7 ZSC(А)  РО 000 встановлення прапорців регістру ознак  8 ЛАІ + 1  ЛАІ 0000 0000 0001 підготовка адреси нової інструкції   Для виконання команди SUB необхідно підготувати числа, з якими буде проходити виконання дії,а аткож інструкцію 0011 аааа аааа аааа ( де аааа аааа аааа – адреса комірки, у якій знаходиться число яке будудть віднімати, а 0011 код команди SUB). Висновки: У цій лабораторній роботі я засвоїв порядок виконання програм у комп’тері, ознайомився з форматом та набором інструкцій стимулятора навчально ЕОМ, засвоїм формати та способи використання інструкцій звертання до пам’яті та інструкції арифметичних операцій. Засвоїв призначення РО( Регістра Ознак) процесора. Ознайомився з потактовим режимом роботи навчального комп’ютера. Засвоїв базовий порядок виконання інструкції навчального комп’ютера та навчився досліджувати хід виконання окремих інструкцій.
Антиботан аватар за замовчуванням

27.01.2013 12:46

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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