之间,但是输入了所有组合后却没有能成功的,请问是我的这个思路错了吗?
是我对fp的理解错了吗,我认为fp-8是输入的第一个数,fp-20输入的是第二个数
附上完整的phase_4以及递归函数func4
00008b10 <func4>:
8b10: e92d4810 push {r4, fp, lr}
8b14: e28db008 add fp, sp, #8
8b18: e24dd00c sub sp, sp, #12
8b1c: e50b0010 str r0, [fp, #-16]
8b20: e50b1014 str r1, [fp, #-20] ; 0xffffffec
8b24: e51b3010 ldr r3, [fp, #-16]
8b28: e3530000 cmp r3, #0
8b2c: ca000001 bgt 8b38 <func4+0x28>
8b30: e3a03000 mov r3, #0
8b34: ea000013 b 8b88 <func4+0x78> r3小于等于0时
8b38: e51b3010 ldr r3, [fp, #-16] r3大于0 将r3传入[fp-16]
8b3c: e3530001 cmp r3, #1 r3与1进行比较
8b40: 1a000001 bne 8b4c <func4+0x3c>
8b44: e51b3014 ldr r3, [fp, #-20] ; 0xffffffec 等于1将r3传入[fp-20],return
8b48: ea00000e b 8b88 <func4+0x78>
8b4c: e51b3010 ldr r3, [fp, #-16]
8b50: e2433001 sub r3, r3, #1
8b54: e1a00003 mov r0, r3
8b58: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
8b5c: ebffffeb bl 8b10 <func4>
8b60: e1a02000 mov r2, r0
8b64: e51b3014 ldr r3, [fp, #-20] ; 0xffffffec
8b68: e0824003 add r4, r2, r3
8b6c: e51b3010 ldr r3, [fp, #-16]
8b70: e2433002 sub r3, r3, #2
8b74: e1a00003 mov r0, r3
8b78: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
8b7c: ebffffe3 bl 8b10 <func4>
8b80: e1a03000 mov r3, r0
8b84: e0843003 add r3, r4, r3
8b88: e1a00003 mov r0, r3
8b8c: e24bd008 sub sp, fp, #8
8b90: e8bd8810 pop {r4, fp, pc}
00008b94 <phase_4>:
8b94: e92d4800 push {fp, lr}
8b98: e28db004 add fp, sp, #4
8b9c: e24dd020 sub sp, sp, #32
8ba0: e50b0020 str r0, [fp, #-32] ; 0xffffffe0
8ba4: e51b0020 ldr r0, [fp, #-32] ; 0xffffffe0
8ba8: e59f1074 ldr r1, [pc, #116] ; 8c24 <phase_4+0x90> “%d %d”
8bac: e24b2018 sub r2, fp, #24
8bb0: e24b3014 sub r3, fp, #20
8bb4: ebfffe92 bl 8604 <_init+0x50> ; 8604: e28fc600 add ip, pc, #0, 12
8bb8: e1a03000 mov r3, r0
8bbc: e50b3008 str r3, [fp, #-8]
8bc0: e51b3008 ldr r3, [fp, #-8]
8bc4: e3530002 cmp r3, #2
8bc8: 1a000005 bne 8be4 <phase_4+0x50>
8bcc: e51b3014 ldr r3, [fp, #-20] ; 0xffffffec
8bd0: e3530002 cmp r3, #2
8bd4: da000002 ble 8be4 <phase_4+0x50> 第二个数要大于等于2
8bd8: e51b3014 ldr r3, [fp, #-20] ; 0xffffffec
8bdc: e3530007 cmp r3, #7 第二个数要小于7
8be0: da000000 ble 8be8 <phase_4+0x54>
8be4: eb000275 bl 95c0 <explode_bomb>
8be8: e3a03005 mov r3, #5
8bec: e50b3010 str r3, [fp, #-16]
8bf0: e51b3014 ldr r3, [fp, #-20] ; 0xffffffec 取第二个数
8bf4: e51b0010 ldr r0, [fp, #-16] ; r0=5
8bf8: e1a01003 mov r1, r3 ;r1=r3
8bfc: ebffffc3 bl 8b10 <func4>
8c00: e1a03000 mov r3, r0
8c04: e50b300c str r3, [fp, #-12]
8c08: e51b3018 ldr r3, [fp, #-24] ; 0xffffffe8
8c0c: e51b200c ldr r2, [fp, #-12] ;r2 = [fp, #-12]
8c10: e1520003 cmp r2, r3
8c14: 0a000000 beq 8c1c <phase_4+0x88>
8c18: eb000268 bl 95c0 <explode_bomb>
8c1c: e24bd004 sub sp, fp, #4
8c20: e8bd8800 pop {fp, pc}
8c24: 000098a0 .word 0x000098a0