--/--/--  --:--    スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2008/11/23  00:54    C言語の勉強
まだ基礎しか使っていなかったC言語ですが、
今回、ちょっとあるプログラムの方で必要になったので、勉強してみました。
ここ数日で覚えたのは、
・関数ポインタ
・キャスト
・メモリ操作関数(memcopy系)
といった所です。

あと、インラインアセンブラを本格的に多様し始めました。
前回書いた通り、基本的には
asm volatile("code");で大丈夫なようです。
もしC言語上の変数を使いたい場合、
asm volatile("code":"outputオペランド"(変数名);"inputオペランド"(変数名));
といったように、コードを書いたあとで変数のオペランドを指定し、
()の中に変数名を書くと、codeの中で%0とか書いておいた場所に変数のアドレスを
勝手に置き換えて変換してくれるようです。
まぁ下手に変数を使わない限りは、コードだけ書けばいいようです。
まだ完璧ではないので、もう少し使って覚えようと思います。

前回書いた、アドレスと定数の混同の可能性ですが、
まったくないようです。
AVRの命令はoutputにinputをコピーするだけでも、
outputのオペランドとinputのオペランドの種類の違で、数種類命令があるようです。
なので混同はないと言えるでしょう。

最近アセンブラをはじめてからというもの、
AVR命令セットのPDFを読むようになりました。
C言語をやっているうちはまず見ることはなかったです。
意外に、アセンブラで書いたほうが便利なところが見えてきて、
よくインラインアセンブラを使います。
そのときに、どの命令を使えばいいか分らなくなったらすぐ見たりしています。
このような資料を読むようになってから、AVRのいろいろな発見があり、
AVRをはじめた時のような楽しさがあります。

せっかくの3連休なのでいろいろやりたいと思います。
Secret

TrackBackURL
→http://amenotiyukizora.blog76.fc2.com/tb.php/240-2f220f16
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。