x86_64のレジスタ名なら知っているけど、armのレジスタ名はまた違うからややこしい。armのリファレンスを読むときに混乱しないように、ここでまとめておく。
レジスタ名 |
役割 |
r0~r12 |
汎用レジスタ |
r13 (sp) |
スタックポインタ |
r14 (lp) |
リンクレジスタまたは汎用レジスタ |
r15 (pc) |
プログラムカウンタ |
r14 (lp)には復帰アドレスを格納する。ただし、スタックに復帰アドレスを積む場合には、汎用レジスタとしてつかえる。
r15 (pc)にはmov命令でアドレスがロードできる。サブルーチンから戻るには、
MOV pc,lr
とすれば良い。