五只猴子采得一堆桃子,猴子彼此约定隔天早起后再分食。不过,就在半夜里,一只猴子偷偷起来,把桃子均分成五堆后,发现还多一个,它吃掉这桃子,并拿走了其中一堆。第二只猴子醒来,又把桃子均分成五堆后,还是多了一个,它也吃掉这个桃子,并拿走了其中一堆。第三只,第四只,第五只猴子都依次如此分食桃子。那么桃子数最少应该有几个呢?
area word,code,readonly
entry
init
ldr r0,=6
ldr r1,=src
start
ldr r2,=1 ;saved counter
ldr r3,=1 ;current int
ldr r8,=5 ; tmp for mul
fetch_next_int
ldr r5,=4
sub r2,r2,#1
mul r4,r2,r5
sub r1,r1,r4
ldr r2,=1
mov r5,r3
check
mul r4,r5,r8 ;r4,r5 is tmp
add r4,r4,#1
and r6,r4,#0xfffffffc
cmp r4,r6
bne next_check
str r5,[r1],#4
add r2,r2,#1
mov r5,r4,lsr#2
cmp r2,r0
beq stop
b check
next_check
add r3,r3,#1
b fetch_next_int
stop
mov r0, #0x18
ldr r1, =0x20026
swi 0x123456
area blockdata,data,readwrite
src DCD 0,0,0,0,0
end
结果截屏