Skip to content

Instantly share code, notes, and snippets.

@drobilc
Last active March 26, 2018 09:36
Show Gist options
  • Save drobilc/ba46a7f6ab78088ffe7a35f08bd2c9bb to your computer and use it in GitHub Desktop.
Save drobilc/ba46a7f6ab78088ffe7a35f08bd2c9bb to your computer and use it in GitHub Desktop.
Naloge iz 4. vaj ARS
; 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
; 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