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

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

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

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

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

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи №2 з дисципліни: “Організація та функціонування комп’ютерів” на тему: “Набір інструкцій навчального комп’ютера.загальний порядок виконання інструкці ” Лабораторна робота № 2 Тема: Набір інструкцій навчального комп’ютера. Загальний порядок виконання інструкцій. Мета: 1. Засвоїти порядок виконання програм у комп’ютері. Ознайомитися з форматом та набором інструкцій симулятора навчальної ЕОМ. Засвоїти формати і способи використання інструкцій звертання до пам’яті та інструкцій арифметичних операцій; 2. Засвоїти призначення регістра ознак процесора; 3. Ознайомитися з потактовим режимом роботи навчального комп’ютера. 4. Засвоїти базовий порядок виконання інструкції навчального комп’ютера та навчитися досліджувати хід виконання окремих інструкцій. Теоретичні відомості Усі інструкції у навчальному ком’ютері поділяються за напрямками на: За форматом коду інструкції; За призначенням. За форматом коду інструкції є адресні і безадресні . Усі інструкції навчального комп’ютера за призначенням можна розділити на такі групи: 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). 1.1. Інструкції звертання до пам’яті: 1) LOAD ADR - завантажити (від англ. Load - завантажувати). Наприклад, для того, щоб прочитати число з 15-ї або 2041-ої комірки пам’яті і записати його до акумулятора, необхідно використати : Мнемонічний запис Машинний код  LOAD 15 0000 0000 0000 1111  LOAD 2041 0000 1111 1111 1001  2) STORE ADR - зберегти (від англ. Store - зберігати) Машинний код – 0001 aaaa aaaa aaaa; виконання – Акумулятор ( (ADDR)). Наприклад, щоб записати значення вмісту акумулятора до 148-ї або 2043 комірки, необхідно використати такі машинні коди: Мнемонічний запис Машинний код  STORE 148 0001 0000 1001 0100  STORE 2043 0001 1111 1111 1011   Якщо нам потрібно у пам’яті перенести число з однієї комірки до іншої, однією командою цього зробити не можна. Потрібно скористатись послідовно двома командами - LOAD та STORE, причому акумулятор буде посередницьким пунктом, через який відбудеться передача. Так, програма з двох інструкцій: Мнемонічний запис Машинний код  LOAD 28 0000 0000 0001 1100  STORE 56 0001 0000 0011 1000   виконує переміщення 16-розрядного числа, яке знаходилось у 28-й комірці пам’яті, до 56-ї комірки 1.2. Інструкції арифметичних операцій: 1) ADD ADR – арифметичне додавання (від англ. Addition -додавання) Машинний код – 0010 aaaa aaaa aaaa; виконання – Акумулятор + (ADDR) ( Акумулятор. 2) SUB ADR – віднімання (від англ. Subtraction - віднімання). Машинний код – 0011 aaaa aaaa aaaa; виконання: Акумулятор – (ADDR) ( Акумулятор Хід роботи 1Призначення Регістру Ознак: Регістр ознак має три тригери:Z, S, C. На панелі навчального комп’ютера він розміщений біля акумулятора. Прапорець Z (Zero - нуль) встановлюється у 1 (світиться), якщо результат операції дорівнює 0. Зрозуміло, що для команди ADD ця ознака встановиться лише у випадку, якщо до 0 додати 0, або якщо додаються два однакових числа з протилежними знаками. Прапорець S (Sign - знак) встановлюється в 1, якщо результат операції – від’ємне число. Знову ж таки, інструкція ADD не може дати від’ємного результату за винятком чисел у доповняльному коді, яких ми поки-що не розглядаємо. Зрозуміло, якщо віднімати від меншого числа більше інструкцією SUB, отримаємо ознаку від’ємного результату S. Прапорець C (Carry - перенос) встановлюється в 1, коли у результаті арифметичної операції (додавання чи віднімання) виникає перенос із старшого розряду результату або при виконанні операції зсуву вправо чи вліво крайній розряд числа вийшов за межі розрядної сітки. Так, наприклад, перенос виникне і, відповідно, встановиться тригер C, якщо додати два 16-ти розрядних числа у 16-ти розрядному процесорі: 2)Ввели у симулятор і виконали дослідження у потактовому режимі програми додавання двох чисел , яка була підготована у роботі №1.записали мікропрограму з необхідними поясненнями.. № Мнемонічний запис Код, що обробляється Коментар  1 ЛАІ→РА 0000 0000 0000 Вибір адреси 1-ої інструкції і занесення її до РА  2 РА→РД 0000 0000 0000 0000 1010 Вибір коду інструкції з РА і занесення його до Регістра Даних  3 РД→РІ 0000 0000 0000 0000 1010 Декодування інструкції у РІ  4 РІ→РА 0000 0000 0000 1010 Вибір адреси 1-го операнда  5 РА→РД 0000 0000 0010 1100 Вибір коду 1-го операнда з пам’яті і запис його до РД  6 РД→А 0000 00000 0010 1100 Декодування інструкції у А  7 ЛАІ+1→ЛАІ 0000 0000 0001 Підготовка адреси нової інструкції  8 ЛАІ→РА 0000 0000 0001 Вибір адреси 2-ої інструкції і занесення її до РА  9 РА→РД 0010 0000 0000 1011 Вибір коду інструкції з РА і занесення його до Регістра Даних  10 РД→РІ 0010 0000 0000 1011 Декодування інструкції у РІ  11 РІ→РА 0000 0000 1011 Вибір адреси 2-го операнда  12 РА→РД 0000 0000 0001 0101 Вибір коду 2-го операнда з пам’яті і запис його до РД  13 РД+А→А 0000 0000 0100 0001 Виконання операції додавання  14 ZSC(A)→РО 000 Встановлення прапорців РО  15 ЛАІ+1→ЛАІ 0000 0000 0010 Підготовка адреси нової інструкції  16 ЛАІ→РА 0000 0000 0010 Вибір адреси 3-ої інструкції і занесення її до РА  17 РА→РД 0001 0000 0000 1100 Вибір коду інструкції з РА і занесення його до РД  18 РД→РІ 0001 0000 0000 1100 Декодування інструкції у А  19 РІ→РА 0000 0000 1100 Вибір адреси 3-го операнда  20 А→РД 0000 0000 0100 0001 Результат операції  21 РД→РА 0000 0000 1100 Вибір коду інструкції з РД і занесення його до РА  22 ЛАІ+1→ЛАІ 0000 0000 0011 Підготовка адреси нової інструкції  23 ЛАІ→РА 0000 0000 0011 Вибір адреси 4-ої инструкції  24 РА→РД 0111 1100 0000 0000 Вибір коду інструкції з РА і занесення його до РД  25 РД→РІ 0111 1100 0000 0000 Декодування інструкції у регістрі інструкції   3)Ввели у симулятор та виконали дослідження у покроковому режимі програми, яка вілнімала два числа А і В для значень коли А=В, А>B,A<B вибравши довільні значення . Виписали результати виконання досліджень і значення прапорців ознак у таблицю,взірець якої поданий у роботі №1 1)Коли А=В А=26,В=26 РА РД А РІ ЛАІ РО  1-й крок 0000 000 0010 0000 0000 0010 1010 0000 0000 0010 1010 0000 0000 0000 1010 0000 0000 0001  Z  2-й крок 0000 0000 1011 0000 0000 0001 1010 0000 0000 0000 0000 0011 0000 0000 1011 00000000 0010 Z   3-й крок 0000 0000 1100 0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 1100 00000000 0011 Z  4–й крок 0000 0000 0011 0111 1100 0000 0000 0000 0000 0000 0000 01111100 0000 0000 0000 0000 0011 Z   У Регістрі Ознак засвітився прапорець Z , тому що результат операції дорівнює нулю. 2)Коли А>В,А=35, В=26 РА РД А РІ ЛАІ РО  1-й крок 0000 0000 1010 0000 0000 0010 0011 0000 0000 0010 0011 0000 0000 0000 1010 0000 0000 0001 000  2-й крок 0000 0000 1011 0000 0000 0001 1010 0000 0000 0000 1001 0011 0000 0000 1011 0000 0000 0010 000   3-й крок 0000 0000 1100 0000 0000 0000 1001 0000 0000 0000 1001 0001 0000 0000 1100 0000 0000 0011 000  4–й крок 0000 000 0011 0111 1100 0000 0000 0000 0000 0000 1001 0111 1100 0000 0000 0000 0000 0011 000   Результат операції додатнє число, яке не виходить за межі розрядної сітки, тому ніякий прапорець у регістрі ознак не світиться. 3)Коли А<B,A=26,B=35 РА РД А РІ ЛАІ РО  1-й крок 0000 0000 1010 0000 0000 0001 1010 0000 0000 0001 1010 0000 0000 0000 1010 0000 0000 0001 S,C  2-й крок 0000 0000 1011 0000 0000 0010 0011 1111 1111 1111 0111 0011 0000 0000 1011 0000 0000 0010 S,C   3-й крок 0000 0000 1100 1111 1111 1111 0111 1111 1111 1111 0111 0001 0000 0000 1100 0000 0000 0011 S,C  4–й крок 0000 0000 0011 0111 1100 0000 0000 1111 1111 1111 0111 0111 1100 0000 0000 0000 0000 0011 S,C   У регістрі ознак засвітився прапорець S тому що результат операції операції від’ємне число.засвітився прапорець C тому що результат вийшов за межі розрядної сітки . 4) а)Ввели у симулятор та виконали дослідження у потактовому режимі інструкції LOAD У комірку 10(1010) занесли число 2(0010).Скориставшись інструкцією LOAD завантажили це число. Це ми зробили так: за допомогою двійкового коду інструкції LOAD завантажили значення з 10-ої комірки(0000 0000 1010) і занесли це число у нульову комірку(0000 0000 0000 0000)далі занесли двійковий код 0111 1100 0000 0000 у першу(0000 0000 0000 0001) комірку для того щоб задати доки інструкція буде виконуватись.Потім у ЛАІ за допомогою набірного поля встановили адресу першої інструкції 0000 0000 0000 0000 і виконали програму у потактовому режимі.Мікропрограма цієї роботи матиме вигляд: № Мнемонічний запис Код що обробляється Коментар  1 ЛАІ→РА 0000 0000 0000 Вибір адреси першої інструкції і занесення її до РА  2 РА→РД 0000 0000 0000 1010 Вибір коду інструкції з РА і занесення його до РД  3 РД→РІ 0000 0000 0000 1010 Декодування інструкції у РІ  4 РІ→РА 0000 0000 1010 Вибір адреси першого операнда  5 РА→РД 0000 0000 0000 0000 Вибір коду першого операнда і запис його до РД  6 РД→А 0000 0000 0000 0000 Виконання операції завантаження  7 ЛАІ+1→ЛАІ 0000 0000 0001 Підготовка адреси нової інструкції  8 ЛАІ→РА 0000 0000 0001 Вибір адреси 2-ої інструкції і занесення її до РА  9 РА→РД 0111 1100 0000 0000 Вибір коду інструкції РА і занесення до РД  10 РД→РІ 0111 1100 0000 0000 Декодування інструкції у РІ   б) Ввели у симулятор та виконали дослідження у потактовому режимі інструкції STORE У комірку 10(1010) занесли число 2(0010).Скориставшись інструкцією STORE записали це число. Це ми зробили так: за допомогою двійкового коду інструкції STORE записали значення з 10-ої комірки(0001 0000 1010) і занесли це число у нульову комірку(0000 0000 0000 0000)далі занесли двійковий код 0111 1100 0000 0000 у першу(0000 0000 0000 0001) комірку для того щоб задати доки інструкція буде виконуватись. Потім у ЛАІ за допомогою набірного поля встановили адресу першої інструкції 0000 0000 0000 0000 і виконали програму у потактовому режимі. Мікропрограма цієї роботи матиме вигляд: № Мнемонічний запис Код що обробляється Коментар  1 ЛАІ→РА 0000 0000 0000 Вибір адреси 1-ої інструкції і занесення її до РА  2 РА→РД 0001 0000 0000 1010 Вибір коду інструкції з РА і занесення його до РД  3 РД→РІ 0001 0000 0000 1010 Декодування інструкції у РІ  4 РІ→РА 0000 0000 1010 Вибір адреси 1-го операнда  5 РА→РД 0000 0000 0000 Вибір коду 1-го операнда з пам’яті і запис його до РД  6 РД→А 0000 0000 1010 Винання операції зберігання  7 ЛАІ+1→ЛАІ 0000 0000 0001 Підготовка адреси нової інструкції  8 ЛАІ→РА 0000 0000 0001 Вибір адреси 2-ої інструкції і занесення її др РА  9 РА→РД 0111 1100 0000 0001 Вибір коду інструкції РА і занесення доРД  10 РД→РІ 0111 1100 0000 0001 Декодування інструкціїї у РІ   в)Ввели у симулятор та виконали дослідження у потактовому режимі інструкції SUB.За допомогою пульта управління занесли до 0-ої комірки пам’яті машинний код інструкції SUB 0011 0000 0000 0001, до 1-ої комірки число 240(двійковий код 0000 0000 1111 0000), а до акумулятора число15(0000 0000 0000 1111). У результаті ми отримаємо віднімання двох чисел, зяких одне знаходиться у комірці пам’яті за адресою 0000 0000 0001,а друге у акумуляторі, а сама інструкція розміщена у комірці пам’яті з адресою 0000 0000 0000. Для виконання інструкції до ЛАІ- лічильника адреси інструкції- занесли адресу розміщення у комірці пам’яті з адресою 0000 0000 0000. Натиснувши на кнопку ПУСК виконали програму у потактовому режимі № Мнемонічний запис Код, що обробляється Коментар  1 ЛАІ ( РА 0000 0000 0000 вибір адреси 1-ої інструкції і занесення її до Регістра Адреси  2 РА ( РД 0011 0000 0000 0001 вибір коду інструкції з РА і занесення його до Регістра Даних  3 РД ( РІ 0011 0000 0000 0001 декодування інструкції у Регістрі Інструкцій  4 РІ ( РА 0000 0000 0001 вибір адреси 1-го операнда  5 РА ( РД 0000 0000 1111 0000 вибір коду 1-го операнда з пам’яті і запис його до Регістру Даних  6 А + РД ( А 1111 1111 0001 0000 виконання операції віднімання(2-й операнд – у акумуляторі)  7 ZSC(А) ( РО SC встановлення прапорців регістру ознак  8 ЛАІ + 1 ( ЛАІ 0000 0000 0001 підготовка адреси нової інструкції   Висновок: На даній лабораторній роботі ми 1.Засвоїли порядок виконання програм у комп’ютері. Ознайомилися з форматом та набором інструкцій симулятора навчальної ЕОМ. Засвоїли формати і способи використання інструкцій звертання до пам’яті та інструкцій арифметичних операцій; 2. Засвоїли призначення регістра ознак процесора; 3. Ознайомилися з потактовим режимом роботи навчального комп’ютера. 4. Засвоїли базовий порядок виконання інструкції навчального комп’ютера та навчилися досліджувати хід виконання окремих інструкцій
Антиботан аватар за замовчуванням

11.04.2013 22:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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