ПРОГРАМА ФАКТОРІАЛ

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

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

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

Рік:
2013
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Архітектура комп'ютерів

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ ЗВІТ про виконання лабораторної роботи № 6 «ПРОГРАМА ФАКТОРІАЛ» з дисципліни «Архітектура комп’ютерів ч.2» Мета: опанування навичок з самостійного планування експерименту та розв'язування інженерних задач, що при цьому виникають, з подальшим оцінюванням ефективності запропонованих та втілених пропозицій. Завдання: засобами архітектурного симулятора WinDLX дослідити на прикладі творених студентом фрагментів програмного коду можливості виконання обчислення факторіалу на рівні апаратури та позитивні ефекти, що при цьому досягаються. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Хід роботи Завантажую базову програму. / Виправляю помилки базової програми. / Додаю до коду модуль InputUnsigned .data ;*** Data for Read-Trap ReadBuffer: .space 80 ReadPar: .word 0,ReadBuffer,80 ;*** Data for Printf-Trap PrintfPar1: .space 4 SaveR2: .space 4 SaveR3: .space 4 SaveR4: .space 4 SaveR5: .space 4 .text .global InputUnsigned InputUnsigned: ;*** save register contents sw SaveR2,r2 sw SaveR3,r3 sw SaveR4,r4 sw SaveR5,r5 ;*** Prompt sw PrintfPar1,r1 addi r14,r0,PrintfPar1 trap 5 ;*** call Trap-3 to read line addi r14,r0,ReadPar trap 3 ;*** determine value addi r2,r0,ReadBuffer addi r1,r0,0 addi r4,r0,10 ;Decimal system Loop1: ;*** reads digits to end of line lbu r3,0(r2) seqi r5,r3,10 ;LF -> Exit bnez r5,Finish1 subi r3,r3,48 ;ґ0ґ multu r1,r1,r4 ;Shift decimal add r1,r1,r3 addi r2,r2,1 ;increment pointer j Loop1 Finish1: ;*** restore old register contents lw r2,SaveR2 lw r3,SaveR3 lw r4,SaveR4 lw r5,SaveR5 jr r31 ; Return Виконую базову програму на симуляторі, наводжу результат виконання. / / Модифікую базову програму. ; WINDLX Ex.3: Factorial ; (c) 1991 Guenther Raidl ; Modified: 1992 Maziar Khosravipour ; Program begin at symbol main ; requires module INPUT ; read a number from stdin and calculate the factorial (type: double) ; the result is written to stdout ;--- .data Prompt: .asciiz "An integer value >1 : " PrintfFormat: .asciiz "Factorial = %g\n\n" .align 2 PrintfPar: .word PrintfFormat PrintfValue:.space 8 .text .global main main: ;--- Read value from stdin into R1 addi r1,r0,Prompt jal InputUnsigned ;--- init values movi2fp f10,r1 ;R1 -> D0 D0..Count register cvti2d f0,f10 addi r2,r0,1 ;1 -> D2 D2..result movi2fp f11,r2 cvti2d f2,f11 movd f4,f2 ;1-> D4 D4..Constant 1 ;--- Break loop if D0 = 1 Loop: led f0,f4 ;D0<=1 ? bfpt Finish ;--- Multiplication and next loop multd f2,f2,f0 subd f0,f0,f4 j Loop Finish: ;--- write result to stdout sd PrintfValue,f2 addi r14,r0,PrintfPar trap 5 ;--- end trap 0 .data ;*** Data for Read-Trap ReadBuffer: .space 80 ReadPar: .word 0,ReadBuffer,80 ;*** Data for Printf-Trap PrintfPar1: .space 4 SaveR2: .space 4 SaveR3: .space 4 SaveR4: .space 4 SaveR5: .space 4 .text .global InputUnsigned InputUnsigned: ;*** save register contents sw SaveR2,r2 sw SaveR3,r3 sw SaveR4,r4 sw SaveR5,r5 ;*** Prompt sw PrintfPar1,r1 addi r14,r0,PrintfPar1 trap 5 ;*** call Trap-3 to read line addi r14,r0,ReadPar trap 3 ;*** determine value addi r2,r0,ReadBuffer addi r1,r0,0 addi r4,r0,10 ;Decimal system Loop1: ;*** reads digits to end of line lbu r3,0(r2) nop seqi r5,r3,10 ;LF -> Exit nop bnez r5,Finish1 subi r3,r3,48 ;ґ0ґ multu r1,r1,r4 ;Shift decimal nop nop nop nop add r1,r1,r3 addi r2,r2,1 ;increment pointer j Loop1 Finish1: ;*** restore old register contents lw r2,SaveR2 lw r3,SaveR3 lw r4,SaveR4 lw r5,SaveR5 jr r31 ; Return Виконую модифіковану програму на симуляторі, наводжу результат виконання. / / Висновок: на лабораторній роботі я дослідив базову програму, вирішив інженерну задачу з розв’язання проблем базової програми, яка містить операції з обчисленням факторіалу, здійснив модифікацію базової програми та досягнув вищої ефективності роботи RISC CPU .
Антиботан аватар за замовчуванням

20.05.2013 22:05-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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