Arduino で使われている Atmel 社の AVR マイクロコントローラーは 8-bit RISC アーキテクチャを採用している。僕は8ビット CPU で C 言語を使うのは初めての経験だったので,これだけでもちょっと面白いことだと思った。 AVR 用 C コンパイラーでは, int 型の大きさは16ビットに設定されている。8ビット CPU なんだから int も8ビットなんじゃないの?と思うかもしれないけれど, int はポインター型と互換でなくてはいけないから*1,やはり16ビットになる。でも AVR の汎用レジスターの大きさは8ビットだから,結果として「int は扱いの重い型」という具合になる。 例えば次のようなコードがあるとする。 int mulTen(int x) { return x * 10; } このコードをビルドした後に avr-objdump を使ってディスアセン