0

8051 メモリ バンク (00h ~ 1Fh) では、8051 は 4 つのバンクのそれぞれに 32 個のレジスタを 8 つのレジスタ (R0 t0 R7) として提供します。これらのレジスタが R0 ~ R31 として指定されていないのはなぜですか?

前もって感謝します..

4

2 に答える 2

4

多くの命令オペコードの長さはわずか 8 ビットです。これらの命令の 1 つで 32 個のレジスタすべてにアクセスできる場合、命令の長さと操作をエンコードするために 3 ビットしか残っていません。同様に、2 バイト命令は 2 番目のバイトを使用して完全な 8 ビット オペランド (アドレスなど) をエンコードすることが多く、事実上同じ制約があります。

多くの場合、より長い命令を使用して絶対アドレスで必要なレジスタを参照することができますが、頻繁にアクセスする場合は、より短いオペコードを使用できるようにアクティブ バンクを変更することをお勧めします。

于 2013-09-28T08:00:58.873 に答える