Wednesday, September 2, 2009

stmXX


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
stmia0 0 0 [1] 2 3 0;
delta = 12
stmib0 0 0 [0] 1 2 3;
delta = 12
stmda0 1 2 [3] 0 0 0;
delta = -12
stmdb1 2 3 [0] 0 0 0;
delta = -12

1 comment:

  1. You should teach your cat to not walk all over your keyboard :)

    ReplyDelete