2017-02-19 11 views
-4

atmega32は8ビットまたは16ビットですか? iamは本当に混乱しています。
avrのmazidiiでの私の読書中。
彼はatmega32のラムが0x085fにあると言います。
これは16ビットであり、助けが必要です。
のリンクには、本のスナップがあります。 enter image description hereatmega32は8ビットまたは16ビットですか?

+2

これは8ビットCPUです。あなたが引用した "ラムダ"値は無関係です。 http://www.atmel.com/devices/atmega32.aspx –

+0

私はこのコードがスタックポインタを設定するatmega32コードであることを忘れていると思います。 –

+0

彼は16ビットアドレスを使用します –

答えて

2

汎用レジスタは8ビットのレジスタなので、CPUは8ビットです。

スタックポインタSPとプログラムカウンタPCのようないくつかの16ビットレジスタがあります。しかし、アドレス空間は256バイトを超えるため、これらは大きくする必要があります。

汎用レジスタが8ビット演算を実行するため、CPUは8ビットであると言います。

+0

あなたはこのコードのスナップが正しいことを意味します。マイクロコントローラーは8ビットですが、いくつかの16ビットregがあります。 –

+0

はい、16ビット以上のレジスタでも可能です。いくつかのAVRデバイスには、PCの16ビットでそれらすべてに対処するには十分でないフラッシュプログラムメモリが多くあるため、HIおよびLO以外にも拡張部分があります。しかし、一般に、人々が「レジスタ」と言うときは、数学演算で使用される汎用レジスタを意味します。技術的には、SP、PC、STATUSもレジスタですが、これは私たちが話しているレジスタではありません。 – UncleO

+0

同様に、いくつかの16ビットの汎用レジスタX、Y、Zがありますが、これらは実際には8ビットレジスタのペアの名前であり、独立した16ビットレジスタではありません。アドレスベースの命令でよく使用されます。 – UncleO

関連する問題