-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