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

Лабораторна робота №1

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

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

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

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп’ютерів та комп’ютерних систем
Група:
КІ З
Варіант:
3

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

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра «ЕОМ» Лабораторна робота №1 з предмету “Архітектура комп’ютерів” на тему: «Робота з симулятором машини Ноймана. Дослідження виконання машинного коду в автоматичному режимі» Мета: опанувати роботу на симуляторі машини Ноймана, зрозуміти і дослідити принцип виконання програми машиною Ноймана. Завдання: запустити симулятор, написати тестову програму, завантажити програму в симулятор, виконати її в покроковому і автоматичному режимах; виконати програму з використанням точок зупинки; отримати таблицю змінних; скласти звіт з виконання лабораторних досліджень та захистити його. Теоретичні відомості CISC – complex instruction set computing (обчислення зі складною системою машинних інструкцій) Аби дослідити дію машини Ноймана використовують симулятори цієї машини, що, в свою чергу, є готовими до використання комп’ютерними програмами. При роботі з такою програмою складається враження роботи з комп’ютером першої генерації, що приймає дані і подає результати і двійковій (бінарній) системі числення, має обмежений обсяг пам’яті, обмежене число регістрів і відсутню операційну систему. Коли в комп’ютері (в нас – в симуляторі комп’ютера) ОС нема, тоді кожну програму треба завершувати виконанням машинної інструкції СТОП. В автоматичному режимі одним натиском на клавішу комп’ютер змушують виконати уведену до нього програму - повністю, від першої до останньої машинної інструкції програми. Розглянемо конкретний симулятор машини Ноймана, якому автор надав назву «Кроха». «Кроха» є DOS програмою, яку запускають у вікні DOS. Отже, миша з симулятором не працює так само, як і в ті давні часи, коли реалізували машину Ноймана. Треба користуватися курсором (рискою підкреслення) і клавішами пересування курсора. Але курсор діє лише у вікні пам’яті. Залишаються можливості керування симулятором натисканням вибраних клавіш апаратури. Таке керування є примітивним але таким, що дозволяє правдиво і чітко зрозуміти, як працює комп’ютер Ноймана, як з ним колись працювали, а також які в нього є принципові недоліки. Наступний рисунок 1 містить копію вікна симулятора Кроха. Симулятор є DOS програмою, що викликається в режимі командного рядка. / Рис. 1.1 – Вікно навчального комп’ютера «Кроха-М» Зліва розташоване вікно пам’яті. Тут позначені адреси в бінарному коді, від 00002 до 11112 (всього 16 комірок). Вмістиме кожної комірки – це 3+4+4+4=15 бітова структура, що може бути або бінарним кодом цілого чила, або бінарним кодом машинної команди (так званої інструкції). Отже маємо не зовсім звичний 15-бітовий комп’ютер, що не підтримує парадигму байта. Формат машинної інструкції машини Ноймана В комп’ютері використаний наступний класичний формат 3-адресної машинної інструкції: Поле коду операції. Довжина 3 біти Поле адреси 1-го операнда. Довжина 4 біти Поле адреси 2-го операнда. Довжина 4 біти Поле адреси результату. Довжина 4 біти  КОп А1 А2 А3  Приклад кодування інструкції (A1) + (A2) A3 :  000 0100 0101 0110  Рис. 1.2 – Формат машинної інструкції Формат числа машини Ноймана Симулятор використовує наступний єдиний формат даних: Старший розряд 13 середніх розрядів бінарного коду Молодший розряд   1 00000000001 1  Приклад кодування позитивного десяткового числа :1638410 + 310 = 1638710  Рис. 1.3 – Формат машинного числа Негативні числа симулятор комп’ютера не опрацьовує, а всі кодові комбінації трактує як коди натуральних чисел і нуля. Максимальним є число з кодом 111 1111 1111 11112 = 3276810 -1 = 3276810, а мінімальним числом є число з бінарним кодом 000 0000 0000 00002 = тобто нуль. Керування роботою з симулятором Далі розглянемо вікно симулятора комп’ютера (табл. 1 ) та правила роботи з ним. Зауважимо, що симулятор запускають в командному рядку, отже, з мишою він не працює. Але є Windows симулятор цього комп’ютера, що сприймає мишу. Табл. 1 – Управління симулятором Клавіши керування комп’ютером Дія клавіш Ілюстрація  Інформаційне вікно Негайно задати АВТО: F1, A Негайно задати РЕДАКТОР: F2, Е Негайно задати ШАГ: F3, S Негайно задати ТАКТ: F4, Т Вибирати режим безпосередньо курсором: F5, R Вибір і встановлення режиму роботи. В режимі редактора можна змінювати вмістиме комірок пам’яті, суматора (СМ), лічильника інструкцій (СК), регістра інструкції (РК). В режимі АВТО одним натиском на клавішу ENTER змушують комп’ютер виконати всю програму. В режимі ШАГ одним натиском на клавішу ENTER змушують комп’ютер виконати чергову інструкцію програми. В режимі ТАКТ одним натиском на клавішу ENTER змушують комп’ютер виконати чергову мікродію виконання чергової інструкції програми. Зауважимо, що виконання кожної інструкції розкладають на виконання певної послідовністі мікрокроків, кожний з яких називають мікродією (або мікрокомандою). /  Вікно пам’яті Бінарні адреси пам’яті не змінюються. Вмістиме комірок пам’яті (бінарні коди) змінюються. Для цього в режимі редагування потрібно підвести курсор під біт, що змінюється та натиснути 0 або 1.     Вікно арифметичного та логічного пристрію (АЛП)  Показує: код виконуваної інструкції, що зберігає регістр інструкції (РК=регистр команди); вмістиме суматора (СМ); вмістиме лічильника номера виконуваної інструкції (СК=счетчик команд).    Екранне вікно для візуалізації значень операндів і результатів обчислень Показує десяткові значення вмістимого комірок пам’ті за адресами А1, А2 та А3 інструкції СТОП (Виведення), бінарний код операції якої є 1112. Отже, коли за одною з трьох вказаних адрес розміщено інструкцію ми побачимо її як якесь число. Це на перший погляд є дивною, але принципово важливою рисою машини Ноймана, якою є ПК та багато інших комп’ютерів.    Довідкове вікно Вікно містить всі дозволені коди операцій, а також правила маніпулювання з режимами симулятора за допомогою клавіатури. Всього дозволено виконання вісьми операцій (пересилання вмісту комірки пам’яті з адресою А1 до коміркм пам’яті з адресою А3 (код 0002), додавання (0012), ділення вмісту А1 на вміст А2 (код 0102), обчислення модуля різницівмісту А1 і А2 з записом результату до А3 (код 0112), умовного переходу (коли вмісти А1 і А2 є рівними, тоді наступною виконують інструкцію не з наступної за чергою адресою, а з адреси А3 (код 1002), множення вмісту А1 на вміст А2 з записом добутку до А3 (код 1012, ще одного умовного переходу [коли вміст А1 є більшим від вмісту А2, тоді наступно виконуваною є інструкція з комірки з адресою А3] (код 1102) та завершення обчислень і виведення до дисплейного вікна вмістимого комірок пам’яті з адресами А1, А2. А3.    Далі подамо стан комп’ютера за умови, що не усі комірки пам’яті містять нульовий бінарний код (рис. 1.4). / Рис. 1.4 – Стан симулятора з ненульовою пам’яттю Запишемо до комірки пам’яті з адресою 10102 код 101 1101 1110 11112, а до комірок те, що подане наступною таблицею 2: Таблиця 2. Бінарний код 10102 101 1101 1110 11112 = інструкція A1 * A2=> A3  11012 100 0000 0000 00112 = 1638410 + 310 = 1638710  11102 000 0000 0010 00012 = 3210 + 110 = 3310  11112 000 0000 0000 00002 = 010  Далі, коли виставити курсор на лінію вмістимого комірки з адресою 10102 (курсор не можна побачити на поданому рисунку, але його розташування легко побачити у вікні реальної програми), тоді в інформаційному вікні можна побачити, як ці записи трактує комп’ютер. По-перше, бінарний код комірки, на якій знаходиться курсор, він сприймає як код інструкції та розшифровує його як інструкцію множення вмістимого комірки за першою адресою А1=11012 на вмістиме комірки за другою адресою А2=11102. Така інструкція має поміщати добуток до комарки з третьою адресою А3=11112. Але тут знаходиться не добуток, а нульовий бінарний код, який комп’ютер сприймає як десятковий нуль. По-друге, коли бінарний код за адресою 10102 протрактовано як інструкцію, тоді комп’ютер вже мусить трактувати вмістиме адрес 11012 - 11112 як бінарні коди цілих позитивних чисел, адже ці адреси належать щойно протрактованій інструкції. Нульовий код добутку пояснити нескладно: ця інструкція ще не виконувалася і комірка результату містить сміття (в нас це є нуль). По-третє, вмістиме кожної комірки пам’яті, на якій стоїть курсор в режимі редагування, комп’ютер завжди трактує як машинну інструкцію. Поглянемо на рис. 1.5. / Рис. 1.5 – Вікно для стану комп’ютера, коли курсор в режимі редагування розташований на вмістимому комірки пам’яті з адресою 11012. Нічого не мінялося. Ми лише змусили комп’ютер перейти від трактування вмістимого комірки 10102 до трактування вмістимого комірки 11012. А результат побачили разючий! Те вмістиме, що трактувалося чисом, почало трактуватися як машинна інструкція. Але все коректно. Ось такими і є сучасні комп’ютери. В межах пам’яті неможливо відрізнити код числа від коду інструкції. А розрізняти потрібно. Так ось, розрізнення відбувається вже поза пам’яттю. Бінарний код, що з пам’яті пристрій керування надсилає до суматора стає числом, а той код, що той самий пристрій надсилає до регістра інструкції (РК), стає інструкцією. Пристрій керування приймає рішення щодо напрямку надсилання, керуючись і уведеною до пам’яті програмою, і вказівкою, з якої комірки пам’яті розпочинається програмний код, за умови, що інструкції програми розташовані в пам’яті в комірках з послідовними адресами (n, n+1, n+2, n+3, ...). В цьому комп’ютері прийнято, що перша інструкція програми завжди знаходиться в комірці з адресою 00002. Якщо програміст цого обмеження не дотримується, тоді уведена ним до пам’яті програма не надає коректні результати. Виконання роботи Індивідуальне завдання: № Завдання  3 r=7(x+y)-(xy-z)   X=5, Y=1, Z=0 R10=7*(5+1)-(5*1-0)=37 R2=0111*(0101+0001)-(0101*0001-0000)=100101 Результат виконання: / Висновок: після виконання даної лабораторної роботи я опанувала роботу на симуляторі машини KROHA-М.
Антиботан аватар за замовчуванням

23.10.2016 03:43

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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