2012年3月1日木曜日

アセンブラのローカルラベル



GNU ld のローカルラベルについて。
ローカルラベルで b がつくと前方へ検索、f がつくと後方へ検索の意味になる。

例えば、ARMで
1:
    b 1b
1:
というコードは前の1: へ分岐する。(つまり無限ループ)

1:
    b 1f
1:
は後ろの1:へ分岐する。


では、bf も付けずに、
1:
    b 1
1:
はどうなるかというと、アドレス「1」へ分岐という意味になるみたい。
(ですが、pc は4の倍数でないといけないので、アドレス「0」へ分岐になる。)

0 件のコメント:

コメントを投稿