この関数が戻る必要があるときに繰り返し自分自身を呼び出す理由について、私は立ち往生しています。
Initialize:
stmfd sp!, {R0-R4,lr}
mov R4, #0 @used for storing 0
mov R0, #2
mov R5, #0
ldr R1, =sieve
ldr R1, [R1]
ldr R2, =primes
ldr R2, [R2]
str R4, [R1], #4 @intialize first and second elements in sieve to 0
str R4, [R1]
mov R4, #1 @used for storing 1
setToOne:
str R4, [R1], #4
add R0, R0, #1
cmp R0, #MAX
blt setToOne
ldmfd sp!, {R0-R4,pc} @For somereason Initialize repeats as if lr points back to its begining (instead of where it's called from)
「あなたの投稿にはコードセクションを説明するコンテキストがあまりありません。シナリオをより明確に説明してください」と書かれているため、プログラム全体を投稿することはできません。