-1
我在编程ARM没有太多的经验,我想推出后续项目:ARM 32位指令STR
_start:
STMFD SP!, {R11,LR}
ADD R11, SP, #4
SUB SP, SP, #0x18
SUB R12, R11, #24
mov r5, #74 ;index for loop
ldr r3, =data
mov lr, r3
LDMIA LR!, {R0-R3}
STMIA R12!, {R0-R3}
_loop:
str r12,[lr],#4
subs r5,r5,#1
bne _loop
但我有这个指令后SIGSEGV:
str r12,[lr],#4
这是内存转储:
(gdb) x/10x $r12
0xbeb6c944: 0x00000000 0x00000000 0x00000000 0x00000001
0xbeb6c954: 0xbeb6ca79 0x00000000 0xbeb6ca8b 0xbeb6caa3
0xbeb6c964: 0xbeb6cab6 0xbeb6cabd
我认为这个问题是由于堆栈不可写,但为什么在这个工具ction STMIA R12 !, {R0-R3}我没有任何问题?
任何建议表示赞赏!
符号'data'有什么值?数据:.asciz“/ system/bin/curl” – rjp
http:.asciz“http://website/file.txt” – Livio