Last active
March 26, 2018 09:36
-
-
Save drobilc/ba46a7f6ab78088ffe7a35f08bd2c9bb to your computer and use it in GitHub Desktop.
Naloge iz 4. vaj ARS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Vaja04 sestevanje, mnozenje, deljenje z 2 | |
.data | |
.org 0x400 | |
STEV1: .word16 2323 | |
STEV2: .word16 4343 | |
STEV3: .byte -127 | |
STEV4: .byte 6 | |
.align 4 | |
STEV5: .word 23456 | |
STEV6: .word 43210 | |
SUM16: .space 2 | |
MUL: .space 2 | |
DIV: .space 1 | |
.align 4 | |
SUM: .space 4 | |
DIF: .space 4 | |
.code | |
.org 0x0 | |
; Nalozimo NEPREDZNACENI stevili (STEV1, STEV2) v (r1, r2) | |
lhu r1, STEV1(r0) | |
lhu r2, STEV2(r0) | |
; Sestejemo nepredznaceni stevili r1 in r2 in shranimo v r3 | |
addu r3, r1, r2 | |
; Rezultat shranimo na prostor SUM16, ki smo ga pustili praznega | |
sh SUM16(r0), r3 | |
; Nalozimo stevilo STEV3 v r4 | |
lb r4, STEV3(r0) | |
; Nalozimo stevilo STEV4 v r5 | |
lb r5, STEV4(r0) | |
; Mnozenje s potencami stevila 2 je shiftanje za n mest v levo | |
; Premakniti moramo torej STEV3 za STEV4 mest v levo | |
sll r6, r4, r5 | |
; Rezultat shranimo na MUL | |
sh MUL(r0), r6 | |
; Stevilo STEV3 (imamo ga na r4) delimo z 32 (= 2^5) | |
srai r7, r4, #5 | |
; Ker je rezultat -4, je dovolj 1 bajt za shranjevanje | |
sb DIV(r0), r7 | |
; Nalozimo NEPREDZNACENI stevili (STEV5, STEV6) v (r8, r9) | |
lw r8, STEV5(r0) | |
lw r9, STEV6(r0) | |
; Stevili sestejemo (na r10) | |
addu r10, r8, r9 | |
; Stevilo (32b) shranimo na SUM | |
sw SUM(r0), r10 | |
; Ukaz za odstevanje je sub, rezultat shranimo na r11 | |
sub r11, r9, r8 | |
sw DIF(r0), r11 | |
halt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Vaja04 izracun utezene vsote | |
.data | |
.org 0x400 | |
A: .word16 600 | |
B: .word16 200 | |
.code | |
.org 0x0 | |
; Pravilo je A = 0.125 * A + 0.875 * B | |
; A = (A + 7 * B) / 8 | |
; Nalozimo stevili A in B na r1 in r2 | |
lh r1, A(r0) | |
lh r2, B(r0) | |
; Najprej izracunamo 7 * B = B + (2 * B) + (4 * B) | |
addu r3, r2, r0 | |
slli r2, r2, #1 | |
addu r3, r3, r2 | |
slli r2, r2, #1 | |
addu r3, r3, r2 | |
; Izracunamo A + (7 * B) | |
addu r4, r1, r3 | |
; Rezultat delimo z 8 | |
srai r5, r4, #3 | |
; Rezultat shranimo nazaj v A | |
sh A(r0), r5 | |
halt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment