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

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

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

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

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

Рік:
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:55

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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