[dumpregs.s]
.text
.global dumpregs
dumpregs:
stmfd sp!, {r0}
ldr r0, clabel
add r0, r0, #4
stmea r0!, {r1-r15}
ldmfd sp!, {r0}
ldr r1, clabel
stmea r1!, {r0}
bx lr
clabel: .word regs
C コードからは、
unsigned int regs[16];
extern int dumpregs();
で宣言しておいて、dumpregs() を呼び出すとその時点でのレジスタの内容が
regs[16] にコピーされる。
コンパイルは、
$ arm-linux-gnueabi-gcc sample.c dumpregs.s
0 件のコメント:
コメントを投稿