Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Bare Machine OFF, Allow Pseudo Instructions ON, Load Trap File ON, Delayed Branches OFF, Delayed Loads OFF, Mapped IO ON, Quiet OFF

Автор:   •  Май 17, 2023  •  Лабораторная работа  •  3,241 Слов (13 Страниц)  •  69 Просмотры

Страница 1 из 13

Лабораторна робота №6

з дисципліни «Архітектура комп’ютерів»

Глава 31

Bare Machine OFF, Allow Pseudo Instructions ON, Load Trap File ON, Delayed Branches OFF, Delayed Loads OFF, Mapped IO ON, Quiet OFF

Завдання №1.  Арифметичний вираз.

Напишіть програму, яка обчислює значення такого арифметичного виразу для значень x і y, введених користувачем:

5,4xy - 12,3y + 18,23x - 8,23

        Лістинг програми:

.data

strEnterX: .asciiz "Enter x: "

strEnterY: .asciiz "Enter y: "

x:                        .float 1.0

y:                        .float 1.0

a:                        .float 5.4

bb:                        .float 12.3

c:                        .float 18.23

d:                        .float 8.23

.text

.globl main

main:

la                $a0, strEnterX

li                $v0, 4

syscall

li                $v0, 6

syscall

mov.s        $f1, $f0

la                $a0, strEnterY

li                $v0, 4

syscall

li                $v0, 6

syscall

mov.s        $f2, $f0

l.s        $f3, a        

l.s         $f4, bb

l.s         $f5, c        

l.s         $f6, d

mul.s        $f7, $f3, $f1        

mul.s         $f7, $f7, $f2        

mul.s         $f0, $f4, $f2        

sub.s         $f7, $f7, $f0        

mul.s         $f0, $f5, $f1        

add.s         $f7, $f7, $f0

sub.s         $f7, $f7, $f6        

mov.s   $f12,$f7

li      $v0,2

syscall

li        $v0, 10

syscall

[pic 1]

Рис.1. Результат роботи

Завдання №2. Гармонійний ряд.

Напишіть програму, яка обчислює суму першої частини гармонічного ряду:

1/1 + 1/2 + 1/3 + 1/4 + ...

Ця сума стає все більшою і більшою без обмежень у міру додавання нових термінів. Попросіть у користувача кількість термінів для підсумку, обчисліть суму та роздрукуйте її.

        Лістинг програми:

.data

        strEnter: .asciiz "Enter count: "

.text

.globl main

main:

la                $a0, strEnter

li                $v0, 4

syscall

li                $v0, 5

syscall

li        $t0, 0

li.s        $f1, 1.0

li.s         $f2, 1.0

loop:

beq $t0, $v0, exit

nop

div.s         $f6, $f1, $f2

add.s         $f7, $f7, $f6

add.s         $f2, $f2, $f1

addiu        $t0, $t0, 1

j loop

exit:

nop

mov.s   $f12,$f7

li      $v0,2

syscall

li                $v0, 10

syscall

[pic 2]

Рис.2. Результат роботи

Завдання №3. Кольори RGB веб –сторінки.

Кольори на веб-сторінці часто кодуються як 24-розрядне ціле число наступним чином:

RRGGBB

При цьому кожен R, G або B є шістнадцятковою цифрою 0..F. Цифри R показують кількість червоного кольору, цифри G – кількість зеленого, а цифри B – кількість синього. Кожна сума знаходиться в діапазоні 0..255 (діапазон одного байта). Ось кілька прикладів:

[pic 3]

Інший спосіб, яким колір іноді виражається, — це три частки від 0,0 до 1,0 для кожного з червоного, зеленого та синього. Наприклад, чистий червоний - (1,0, 0,0, 0,0), середній сірий - (0,5, 0,5, 0,5) тощо.

Напишіть програму, яка має номер кольору, оголошений у розділі даних, і яка записує кількість кожного кольору, виражену у вигляді десяткового дробу. Вставте кожне число кольору в 32 біта, а старший байт встановіть нулями:

.data

color:    .word  0x00FF0000     # pure red, (1.0, 0.0, 0.0)

        Лістинг програми:

.data

color:            .word  0x00FF0000  

strComma:        .asciiz ", "

.text

.globl main

main:

lw                $t0, color

srlv        $t1, $t0, 16

mtc1        $t1, $f1

cvt.s.w        $f1, $f1 #інвертація з int в float

...

Скачать:   txt (12.2 Kb)   pdf (154.8 Kb)   docx (46.1 Kb)  
Продолжить читать еще 12 страниц(ы) »
Доступно только на Essays.club