Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
ЗВІТ
до лабораторної роботи №2
з дисципліни " АРХІТЕКТУРА КОМП’ЮТЕРІВ "
на тему:
“ Дослідження макроалгоритмів та мікроалгоритмів виконання машинних інструкцій”
Львів – 2012
Мета: зрозуміти і дослідити макроалгоритм та мікроалгоритм виконання кожної машинної інструкції машини Ноймана.
Завдання:
Покроковим режимом протестувати виконання кожної машинної інструкції, проаналізувати і пояснити отримані результати, потактовим режимом протестувати поокреме виконання кожної машинної інструкції, проаналізувати і пояснити отримані результати, скласти звіт з виконання лабораторних досліджень та захистити.
Завдання згідно варіанту:
29
r =(10+11+…+19)* (10+11+…+19)
/
Мал.1 Програма для вирішення виразу r =(10+11+…+19)* (10+11+…+19)
Виконання програми
/
Мал.1.1 Перший крок
Копіюємо число 1010 за адресою [1101] в адресу [1001] призначену для зберігання суми (10+11+…+19).
ТАКТ:
МК1: memory(0000) -> IR
МК2: PC+1 -> PC
МК3: memory (1101) -> ACC
МК4: ACC -> memory(1001)
/
Мал. 1.2 Крок другий
На цьому кроці збільшуємо початкове число 10 (в циклі дане число буде збільшуватись) на одиницю щоб дістати доданок. Результат зберігаємо в комірці за адресою [1010] next.
ТАКТ:
МК1: memory(0001) -> IR
МК2: PC+1 -> PC
МК3: memory (1101) -> ACC
МК4: ACC + memory(1100) -> ACC
MK5: ACC -> memory(1010)
/
Мал. 1.3. Крок третій
Ця інструкція реалізує додавання двох чисел: 1- результат додавання попередньої дії, 2 – наступний доданок. Результат зберігаємо в 1-шу адресу.
ТАКТ:
МК1: memory(0010) -> IR
МК2: PC+1 -> PC
МК3: memory (1001) -> ACC
МК4: ACC + memory(1010) -> ACC
MK5: ACC -> memory(1001)
/
Мал. 1.4. Крок четвертий
Пересилаємо значення доданка у комірку раніше використовувану для числа 10. Ця дія необхідна для подальшого знаходження доданка.
ТАКТ:
МК1: memory(0011) -> IR
МК2: PC+1 -> PC
МК3: memory (1010) -> ACC
MK4: ACC -> memory(1101)
/
Мал. 1.5. Крок п’ятий
Інструкція порівняння: Якщо доданок менший від границі( тобто 19 згідно умови), то переходимо до команди за адресою [0001].
ТАКТ:
МК1: memory(0100) -> IR
МК2: PC+1 -> PC
МК3: memory (1011) -> ACC
МК4: ACC > memory(1101) -> memory(0001)
/
Мал. 1.6. Крок шостий
Аналогічно другому кроку, виконується робота з новими значеннями і так дальше поки доданок не буде рівний 19.
ТАКТ:
МК1: memory(0001) -> IR
МК2: PC+1 -> PC
МК3: memory (1101) -> ACC
МК4: ACC + memory(1100) -> ACC
MK5: ACC -> memory(1010)
/
Мал. 1.8. Результат виконання програми.
Такти команд після виходу з циклу.
Адреса 0101
ТАКТ:
МК1: memory(0101) -> IR
МК2: PC+1 -> PC
МК3: memory (1110) -> ACC
МК4: ACC * memory(1001) -> ACC
MK5: ACC -> memory(1111)
Адреса 0110
ТАКТ:
МК1: memory(0110) -> IR
МК2: PC+1 -> PC
МК3: memory (1110) -> Вивід на екран 1-го числа
МК4: memory (1001) -> Вивід на екран 2-го числа
MK5: memory (1111) -> Вивід на екран 3-го числа
ВИСНОВОК
Зрозумів і дослідив макроалгоритм та мікроалгоритм виконання кожної машинної інструкції машини Ноймана.