Looking for assembly Answers? Try Ask4KnowledgeBase
Looking for assembly Keywords? Try Ask4Keywords

Assembly Languageレジスタ


備考

レジスタとは何ですか?

プロセッサは数値(数値)を操作できますが、これらは最初にどこかに格納する必要があります。データは主にメモリに格納されますが、通常はメモリにも格納されている命令オペコードの内部に格納されています。プロセッサに直接配置された特別なオンチップメモリ​​( レジスタと呼ばます)に格納さます。

レジスタ内の値を処理するには、アドレスでアドレス指定する必要はありませんが、たとえばax x86、 A Z80、またはARMのr0ような特殊なニーモニックの名前が使用されます。

いくつかのプロセッサは、ほぼすべてのレジスタが等しく、すべての目的(多くの場合RISCプロセッサグループ)で使用できるように構築されていますが、いくつかのレジスタのみが算術演算に使用される場合もあります(早期CPUの「アキュムレータ」 )およびメモリアドレッシング専用の他のレジスタ

プロセッサ・チップ上に直接メモリを使用して、この構成は、巨大なパフォーマンス含意を有し、登録するバックを格納レジスタから2つの数値を追加すると、通常、ARMプロセッサ上のプロセッサ(例により最短時間で行われる: ADD r2,r0,r1設定r2します(r0 + r1)値をシングルプロセッササイクルで(r0 + r1)ます)。

逆に、オペランドの1つがメモリ位置を参照していると、プロセッサはメモリチップから値が到着するのを待っている間にストールします(x86ではL0キャッシュの値を0から数百値がどのキャッシュにもなく、メモリDRAMチップから直接読み取らなければならないときのCPUサイクル)。

したがって、プログラマがいくつかのデータ処理コードを作成しているとき、彼は通常、処理中にすべてのデータをレジスタに入れて最高のパフォーマンスを得ることを望んでいます。それが不可能で、メモリの読み込み/書き込みが必要な場合は、それらを最小限に抑え、特定のプラットフォームのキャッシュ/メモリアーキテクチャと協力するパターンを形成する必要があります。

ビット単位のレジスタのネイティブサイズは、 Z80「8ビットプロセッサ」80386「32ビットプロセッサ」などのプロセッサをグループ化するためによく使用されますが、そのグループ化はほとんどありません。例えば、Z80は、ネイティブの16ビット値を形成し、レジスタのペアでも動作し、32ビット80686 CPUは、ネイティブ64ビットレジスタで動作するMMX命令を有しています。

レジスタ 関連する例