私の先生は私たちに組み立ての基本的な理解をしてもらいたいと思っています。なぜなら、後でそれが役立つかもしれないからです。私はそれで大丈夫ですが、私の大学は、4つの小さな例を除いて、この主題に関するドキュメントを提供していません。私はこれで何が起こっているのかを理解しようとしています:
.DEVICE ATmega32
.CSEG
main:
ldi ZL,low(varclist<<1)
ldi ZH,high(varclist<<1)
.CSEG
varclist:
.db 1, 2
.db 3, 4
.db 5, 6
.db 7, 8
.db 9, 0
私はAVRスタジオ5で働いており、「プロセッサー」タブを見ています。'varclist'の値と、レジスターが表示している16進値との間に関係が見つからないようです。これをどのように見るのですか?
「最上位」ビットが最初に宣言され、最下位ビットが最後に宣言されたと想像するので、Zレジスタには0x0100が含まれていると思います。ただし、0x0070が表示されています。しかし、シフトが何をするのかはわかりません。