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

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

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
УІ
Кафедра:
Не вказано

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

Рік:
2016
Тип роботи:
Звіт
Предмет:
Архітектура

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

Мета: зрозуміти принципи виконання архітектури системи команд на симуляторі машини Ноймана, зрозуміти і дослідити виконання інструкції. Завдання: розширити архітектуру систему команд симулятора машини Ноймана, скласти програму на асемблері з розшириним набором команд, перетворити її у машинні коди, запустити симулятор, увести до нього коди машинних, проаналізувати і пояснити отримані результати, довести коректність роботи розширеного набору команд, скласти звіт з виконання лабораторних досліджень та захистити його. Теоретичні відомості  Рис. 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 Висновок: у даній лабораторній роботі я зрозумів принципи виконання архітектури системи команд на симуляторі машини Ноймана, зрозуміти і дослідити виконання інструкцій.
Антиботан аватар за замовчуванням

14.03.2016 12:48

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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