Робота з симулятором машини Ноймана. Дослідження виконання машинного коду в автоматичному режимі
Дослідження принципу виконання програми машиною Ноймана, особливості використання її симуляторів. Формат машинної інструкції машини Ноймана. Механізм введення бінарних кодів чисел і машинних інструкцій. Запуск симулятора та послідовність роботи з ним.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | украинский |
Дата добавления | 10.10.2014 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Міністерство освіти і науки України
Національний університет "Львівська політехніка"
Кафедра ЕОМ
Лабораторна робота
з курсу:
"Архітектура комп'ютерів"
на тему:
"Робота з симулятором машини Ноймана. Дослідження виконання машинного коду в автоматичному режимі"
Виконав: ст. гр. КІ-32
Карапінка С.І.
Прийняв: ст. викл. Ногаль М.В.
Львів 2014
МЕТА РОБОТИ:
Опанувати роботу на симуляторі машини Ноймана, зрозуміти і дослідити принцип виконання програми машиною Ноймана.
ТЕОРЕТИЧНІ ВІДОМОСТІ:
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 - Формат машинної інструкції
машинний код симулятор код
Про машину Ноймана
Структуру машини Ноймана [Johann von Neumann (Будапешт. 1903 р. н. і Німеччина), John von Neumann (USA), Джон Нейман (Росія)] містить рис. 1.6.
Размещено на http://www.allbest.ru/
Рис. 1.6. Структура машини Ноймана, запропонована в 1945 році в Гарвардському університеті США. Саме цю (приховану від наших очей) структуру має комп'ютер "Кроха".
За допомогою пристрою введення бінарні коди чисел і машинних інструкцій потрапляють (чорні лінії) транзитом через АЛП до пам'яті, де і зберігаються під час автоматичного виконання обчислень. Отже, під час введення АЛП зайнято транзитним пересиланням і комп'ютер не може обчислювати. Коли уведення завершене, тоді по команді старту, що надає людина, комп'ютер починає виконувати заведену людиною до пам'яті програму автоматично (без участі людини).
При цьому бінарні коди з пам'яті, що надсилаються (синя лінія) до пристрою керування, сприймаються як машинні інструкції. На основі прийнятих з пам'яті кодів машинних інструкцій пристрій керування керує роботою всіх інших пристроїв комп'ютера (червоні штрихові лінії).
Бінарні коди, що надсилаються з пам'яті до АЛП (чорні лінії), сприймаються як коди чисел, що приймають участь в формування результату. Можливе збереження проміжних результатів обчислень в тій самій пам'яті чорна двонаправлена лінія). Остаточні результати також спочатку надсилають до пам'яті, а вже потім виводять для користування людиною через пристрій виводу (чорна лінія).
До впровадження багатопроцесорності всі персональні комп'ютери (навіть з процесором Пентіум 4) були класичними машинами Ноймана. Отож, з 1945 року до 2000 року ПК незмінну ідею, але змінювалися при цьому технологічно.
ЗАВДАННЯ:
Запустити симулятор, увести до нього коди машинних інструкцій і коди чисел, навчитися утворювати і змінювати ці коди, дослідити і пояснити принципи трактування машиною Ноймана бінарних кодів. Розробити тестову програму, завантажити програму і відповідні дані до симулятора, виконати програму в автоматичному режимі, проаналізувати і пояснити отримані результати, скласти звіт з виконання лабораторних досліджень та захистит його.
ХІД РОБОТИ:
1) Вручну уводжу до симулятора, написану мною, коротку програму, що складена 3-ма інструкціями (рис. 1-3)
Адреса пам'яті |
Машинна інструкція |
Функція інструкції |
||
Мнемонічний код |
Бінарний код |
|||
00002 |
* А1 А2 А3 |
101 1011 1100 11012 |
Помножити |
|
00012 |
| - | А1 А2 А3 |
011 1101 1110 11112 |
Знайти модуль різниці |
|
00102 |
СТОП А1 А2 А3 |
011 1101 1110 11112 |
Зупинитися і показати |
Рис. 1. Стан симулятора при розташуванні курсора на лінії 00002 пам'яті.
Рис. 2. Стан симулятора при розташуванні курсора на лінії 00012 пам'яті.
Рис. 3. Стан симулятора при розташуванні курсора на лінії 00102 пам'яті.
2) Здійснюю покрокове виконання програми
Рис. 4. Стан симулятора після виконання 1-го кроку програми.
Рис. 5. Стан симулятора після виконання 2-го кроку програми.
Рис. 6. Стан симулятора після виконання 3-го кроку програми.
3) Результат виконання програми: 2*a-b = 2*7-8 =14-8 = 610 = 000 0000 0000 01102
Висновок
Під час виконання даної лабораторної роботи я опанував роботу на симуляторі машини Ноймана, зрозумів і дослідив принцип виконання програми машиною Ноймана.
Размещено на Allbest.ru
Подобные документы
Подання чисел у нормальній формі. Порядок нормалізації чисел з рухомою комою. Правила додавання двійкових чисел з рухомою комою. Алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'ютера-симулятора DeComp.
лабораторная работа [31,7 K], добавлен 13.03.2011Неекспортовані символи ядра. Оптимальний підхід до реалізації пошуку символів у ядрі. Виконання, підміна, додавання та приховання системних викликів. Завантаження модуля ядра із програмного коду та з коду іншого модуля. Робота з UNIX-сигналами.
курсовая работа [84,0 K], добавлен 23.05.2013Алгоритм сортування методом простого вибору. Знаходження найдовшого шляху в графі. Синтез машини Тюрінга, що розмічає послідовність чисел. Порівняння алгоритмів між собою за часом виконання і займаної пам'яті. Алгоритм пошуку мінімального елементу.
курсовая работа [90,3 K], добавлен 17.05.2011Поняття мови програмування С++, її сутність та особливості, призначення та використання. Структура програми, її основні елементи та загальні правила роботи. Охорона праці при роботі з обчислювальною технікою. Апаратні вимоги для виконання програми.
курсовая работа [126,2 K], добавлен 29.03.2009Розробка програми, яка вираховує з введених чисел парні та непарні та додає парні числа. Особливості синтаксису й семантики операторів мови С++. Перевірка коректності введення кількості чисел. Написання коду програми, проведення її тестування на прикладі.
лабораторная работа [860,5 K], добавлен 20.12.2012Запуск на виконання програм. Особливості роботи з об’єктами файлової системи. Поняття, сутність і методика користування інформаційними і діалоговими вікнами. Основні "гарячі клавіші" та їх використання. Призначення елементів керування діалоговими вікнами.
конспект урока [82,8 K], добавлен 03.01.2010Архітектурні особливості процесора ARM9E. Набори інструкцій ARM i Thumb. Порівняння компіляторів за швидкістю роботи та обсягом згенерованого коду. Операційні системи, які підтримує процесор ARM9E. Розміри коду підпрограм для ARM та Thumb станів.
курсовая работа [522,6 K], добавлен 08.09.2011Складання, імлементація і верифікація VHDL моделі чотирибітового комп’ютера, що вбудовується до ПЛІС, містить процесор, пам'яті даних і машинних кодів. Перелік і функції машинних інструкцій процесора "Гном". Асемблерна тестова програма і її машинні коди.
курсовая работа [24,3 K], добавлен 10.01.2010Синтез цифрового автомата для виконання операції множення в оберненому коді двох двійкових чисел з фіксованою комою. Будування керуючого автомату з жорсткою логікою по принципу Мілі. Використання алгоритму множення з пропусканням тактів додавання.
курсовая работа [279,6 K], добавлен 14.03.2013Поняття компілятора та теоретичні основи його роботи. Введення коду програми завантаженням текстового файлу. Опрацювання тексту лексичним та синтаксичним аналізаторами. Генерація та оптимізанія об'єктного коду. Побудова графічного інтерфейсу програми.
курсовая работа [586,6 K], добавлен 22.01.2014