@naloga 1
          .align
          .global __start
__start:
movs r0, #0        @ Z=1, N=0, C;V ne vpliva
        subs r0,r0,#1      @ Z=0, N=1, C=0, V=0
        adds r0,r0,#2      @ Z=0, N=0, C=1, V=0   
__end:    b __end               


@naloga 2
          .text
niz:      .ascii    "ABRAKADABRA"  @ znakovni niz
          .byte    0              @ zaključna ničla
chr:      .byte    'R'            @ iskalni znak

          .align
          .global __start
__start:         
          ldr r13, =0x1000        @ initialize stack
          adr r0, niz                    @ parameter in r0
          bl find                 @ call subroutine find

__end:    b __end    find:    stmfd r13!,{r1-r4,lr}
          mov r4,r0                @ kazalec v r4
          mov r3,#0              @ kazalec na znak
          ldrb r2,chr              @ r2 <-znak
zanka:    ldrb r1,[r0],#1
          cmp r1,#0
          beq konec
          cmp r1,r2                @ je znak ?
          bne zanka

          sub r3,r0,r4            @ index znaka v r3
          b zanka
         
konec:    mov r0,r3          @ index v r0
          ldmfd r13!,{r1-r4,pc}         

@naloga 3
          .text
niz1:    .asciz    "Prvi niz_" @ prvi niz
niz2:    .asciz    "Drugi niz" @ drugi niz
          .space    40          @ prostor za daljsi niz


          .align
          .global __start
__start:         
        ldr r13, =0x1000        @ initialize stack
        adr r0, niz1            @ par. in r0
        adr r1, niz2            @ par. in r1
        bl strcat              @ call sub

__end:    b __end  strcat:  stmfd r13!,{r2,lr}
najdi:    ldrb r2,[r1],#1
              cmp r2,#0
              bne najdi
              sub r1,r1,#1
         
kopiraj:  ldrb r2,[r0],#1
              strb r2,[r1],#1
              cmp r2,#0
              bne kopiraj

              ldmfd r13!,{r2,pc}

Zadnja sprememba: petek, 18. november 2016, 22:48