猴子分食桃子 ARM 汇编实现

7 篇文章 0 订阅
4 篇文章 0 订阅

五只猴子采得一堆桃子,猴子彼此约定隔天早起后再分食。不过,就在半夜里,一只猴子偷偷起来,把桃子均分成五堆后,发现还多一个,它吃掉这桃子,并拿走了其中一堆。第二只猴子醒来,又把桃子均分成五堆后,还是多了一个,它也吃掉这个桃子,并拿走了其中一堆。第三只,第四只,第五只猴子都依次如此分食桃子。那么桃子数最少应该有几个呢?

        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

结果截屏


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值