static int rx_reserve[8];
...
__asm__(" mov r1, #1\n"
" mov r2, #2\n"
" mov r3, #3\n"
" ldr r0, (reserve)\n"
" mov r4, r0\n"
" ????? r0!, {r1-r3}\n"
" str r0, [r4, #16]\n"
" b after_data\n"
"reserve:\n"
" .long _rx_reserve+12\n"
"after_data:\n");
printf("%d %d %d [%d] %d %d %d;\ndelta = %d\n",
rx_reserve[0], rx_reserve[1], rx_reserve[2], rx_reserve[3], rx_reserve[4], rx_reserve[5], rx_reserve[6],
rx_reserve[7]-(int)(rx_reserve+3) );
????? | Result |
---|---|
stmia | 0 0 0 [1] 2 3 0; delta = 12 |
stmib | 0 0 0 [0] 1 2 3; delta = 12 |
stmda | 0 1 2 [3] 0 0 0; delta = -12 |
stmdb | 1 2 3 [0] 0 0 0; delta = -12 |
You should teach your cat to not walk all over your keyboard :)
ReplyDelete