@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}
.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