DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт з лабораторної роботи: Дослідження архітектури системи команд на симуляторі машини Неймана

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

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
ООП
Факультет:
Факультет інформатики та обчислювальної техніки
Кафедра:
Кафедра обчислювальної техніки

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

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп'ютерів
Група:
К
Коротко про документ

Про що ця робота

У документі наведено звіт з виконання лабораторної роботи щодо дослідження архітектури системи команд на симуляторі машини Неймана. Описано принципи роботи асемблера, процес трансляції та виконання інструкцій на симуляторі.

У роботі розглядаються

  • Архітектура комп'ютерів
  • Симулятор машини Неймана
  • Машинні команди
  • Регістри пам'яті
  • Програмний лічильник

Зміст і розділи

  1. Мета та завдання
  2. Теоретичні відомості
  3. Виконання завдання
  4. Код асемблерної програми
  5. Результат виконання програми
  6. Лістинг програми
  7. Висновок
Для кого:Студенти технічних спеціальностей та викладачі
Викладачі:Викладач

Ключові поняття

машина Нейманасистема командпам'ятьінструкціяпрограмний лічильникдоповняльний кодмашинний код

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

Мета: зрозуміти принципи виконання архітектури системи команд на симуляторі машини Ноймана, зрозуміти і дослідити виконання інструкції. Завдання: розширити архітектуру систему команд симулятора машини Ноймана, скласти програму на асемблері з розшириним набором команд, перетворити її у машинні коди, запустити симулятор, увести до нього коди машинних, проаналізувати і пояснити отримані результати, довести коректність роботи розширеного набору команд, скласти звіт з виконання лабораторних досліджень та захистити його. Теоретичні відомості  Рис. 1. Схема роботи асемблера Загальна схема роботи асемблера (рис. 1) складається з 2 проходів. На першому проході асемблер перевіряє коректність синтаксису команд. На другому виконується генерування відповідних машинних команд, тобто числового представлення асемблерної команди. Функція readAndParse виконує зчитування рядку асемблерної програми і декодування на відповідні поля: мітка, код операції, операнди. Отримана таким чином і декодована інструкція перевіряється на коректність: існування команди, відповідна кількість аргументів, існування міток та т. п. Функція testRegArg перевіряє коректність використання назви регістра. Функція testAddrArg перевіряє коректність використання адреси. Функція labelArray перетворює відповідну мітку у адресу. Program.as та program.mc – відповідно вхідний та вихідний файли.  Рис. 2 Функціональна схема симулятора. Симулятор починає свою роботу ініціалізацією пам’яті та регістрів 0 значеннями (рис. 2.). Наступним кроком відбувається заванаження програми у машинних кодах в пам’ять. Далі відбувається покрокове виконання інструкцій та вивід стану на зовнішній пристрій (чи на екран консолі чи у файл). У stateStruct зберігається стан машини – значення регістрів, пам’яті та програмний лічільник. stateStruct Функція Run виконує обробку інструкцій з пам’яті, функція printState виводить поточний стан машини, а функція convertNum виконує перетворення числа у доповняльний код. Виконання завдання: 17 Десятковий логарифм   У програмах asol та ssol немає функції, яка б знаходила десятковий логарифм з числа. Тому необхідно додати її, а саме розширити набір інструкцій в даній програмі. Розширення інструкцій у програмі asol:     Розширення інструкцій у програмі ssol:    Код асемблерної програми:  Рис.3 Код програми Процес переведення асемблерної програми у машинні інструкції  Рис.4 Процес переведення асемблерної програми у машинні інструкції Результат виконання програми:  Рис.5 Машинні інструкції, що виконують програму Лістинг програми: @@@ state: pc 0 memory: mem[ 0 ] 8454151 mem[ 1 ] 8519688 mem[ 2 ] 8585225 mem[ 3 ] 30015489 mem[ 4 ] 17498113 mem[ 5 ] 16842749 mem[ 6 ] 25165824 mem[ 7 ] 100 mem[ 8 ] 100 mem[ 9 ] 2 mem[ 10 ] 3 registers: reg[ 0 ] 0 reg[ 1 ] 0 reg[ 2 ] 0 reg[ 3 ] 0 reg[ 4 ] 0 reg[ 5 ] 0 reg[ 6 ] 0 reg[ 7 ] 0 end state @@@ state: pc 1 memory: mem[ 0 ] 8454151 mem[ 1 ] 8519688 mem[ 2 ] 8585225 mem[ 3 ] 30015489 mem[ 4 ] 17498113 mem[ 5 ] 16842749 mem[ 6 ] 25165824 mem[ 7 ] 100 mem[ 8 ] 100 mem[ 9 ] 2 mem[ 10 ] 3 registers: reg[ 0 ] 0 reg[ 1 ] 100 reg[ 2 ] 0 reg[ 3 ] 0 reg[ 4 ] 0 reg[ 5 ] 0 reg[ 6 ] 0 reg[ 7 ] 0 end state @@@ state: pc 2 memory: mem[ 0 ] 8454151 mem[ 1 ] 8519688 mem[ 2 ] 8585225 mem[ 3 ] 30015489 mem[ 4 ] 17498113 mem[ 5 ] 16842749 mem[ 6 ] 25165824 mem[ 7 ] 100 mem[ 8 ] 100 mem[ 9 ] 2 mem[ 10 ] 3 registers: reg[ 0 ] 0 reg[ 1 ] 100 reg[ 2 ] 100 reg[ 3 ] 0 reg[ 4 ] 0 reg[ 5 ] 0 reg[ 6 ] 0 reg[ 7 ] 0 end state @@@ state: pc 3 memory: mem[ 0 ] 8454151 mem[ 1 ] 8519688 mem[ 2 ] 8585225 mem[ 3 ] 30015489 mem[ 4 ] 17498113 mem[ 5 ] 16842749 mem[ 6 ] 25165824 mem[ 7 ] 100 mem[ 8 ] 100 mem[ 9 ] 2 mem[ 10 ] 3 registers: reg[ 0 ] 0 reg[ 1 ] 100 reg[ 2 ] 100 reg[ 3 ] 2 reg[ 4 ] 0 reg[ 5 ] 0 reg[ 6 ] 0 reg[ 7 ] 0 end state @@@ state: pc 4 memory: mem[ 0 ] 8454151 mem[ 1 ] 8519688 mem[ 2 ] 8585225 mem[ 3 ] 30015489 mem[ 4 ] 17498113 mem[ 5 ] 16842749 mem[ 6 ] 25165824 mem[ 7 ] 100 mem[ 8 ] 100 mem[ 9 ] 2 mem[ 10 ] 3 registers: reg[ 0 ] 0 reg[ 1 ] 2 reg[ 2 ] 100 reg[ 3 ] 2 reg[ 4 ] 0 reg[ 5 ] 0 reg[ 6 ] 0 reg[ 7 ] 0 end state @@@ state: pc 6 memory: mem[ 0 ] 8454151 mem[ 1 ] 8519688 mem[ 2 ] 8585225 mem[ 3 ] 30015489 mem[ 4 ] 17498113 mem[ 5 ] 16842749 mem[ 6 ] 25165824 mem[ 7 ] 100 mem[ 8 ] 100 mem[ 9 ] 2 mem[ 10 ] 3 registers: reg[ 0 ] 0 reg[ 1 ] 2 reg[ 2 ] 100 reg[ 3 ] 2 reg[ 4 ] 0 reg[ 5 ] 0 reg[ 6 ] 0 reg[ 7 ] 0 end state machine halted total of 6 instructions executed final state of machine: @@@ state: pc 7 memory: mem[ 0 ] 8454151 mem[ 1 ] 8519688 mem[ 2 ] 8585225 mem[ 3 ] 30015489 mem[ 4 ] 17498113 mem[ 5 ] 16842749 mem[ 6 ] 25165824 mem[ 7 ] 100 mem[ 8 ] 100 mem[ 9 ] 2 mem[ 10 ] 3 registers: reg[ 0 ] 0 reg[ 1 ] 2 reg[ 2 ] 100 reg[ 3 ] 2 reg[ 4 ] 0 reg[ 5 ] 0 reg[ 6 ] 0 reg[ 7 ] 0 end state Висновок: у даній лабораторній роботі я зрозумів принципи виконання архітектури системи команд на симуляторі машини Ноймана, зрозуміти і дослідити виконання інструкцій.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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