オフセット(コンピュータサイエンス)

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

コンピュータサイエンスでは、配列または他のデータ構造オブジェクト内のオフセットオブジェクト先頭、おそらく同じオブジェクト内の特定の要素またはポイントとの間の距離(変位)を示す整数です。距離の概念は、オブジェクトのすべての要素が同じサイズ(通常はバイトまたはワードで指定)である場合にのみ有効です。

たとえば、を含む文字の配列Aとして、文字を含む4番目の要素のオフセットは。の先頭から3です"abcdef"'d'A

アセンブリ言語で

コンピュータ工学および低レベルプログラミング(アセンブリ言語など)では、オフセットは通常、特定の絶対アドレスに到達するためにベースアドレスに追加されるアドレス位置の数を示しますこの(元の)オフセットの意味では、基本アドレス単位(通常は8ビットバイト)のみがオフセットのサイズを指定するために使用されます。このコンテキストでは、オフセットは相対アドレスと呼ばれることもあります

IBM System / 360命令では、特定の命令内に埋め込まれた12ビットのオフセットは、0から4096バイトの範囲を提供しました。たとえば、無条件分岐命令(X'47F0Fxxx ')内で、xxx 12ビット16進オフセットは、分岐先のベースレジスタ(15)からのバイトオフセットを提供しました。プログラムまたはハードウェア割り込みなしで実行するには、命令をハーフワード境界に揃える必要があるため、オフセットが奇数の場合、プログラムチェックが発生します(ベースレジスタ自体にも奇数アドレスが含まれている場合を除く) 。

前の例では、segment:offsetの形式でメモリ位置にアドレス指定する間接的な方法について説明しました。たとえば、メモリ位置0xF867を参照するとします。これを実現する1つの方法は、最初に開始アドレス0xF000でセグメントを定義し、次に0x0867のオフセットを定義することです。さらに、16進セグメントをシフトして、最終的な絶対メモリアドレスに到達することもできます。ここで注意すべきことの1つは、さまざまな方法で最終的な絶対アドレスに到達できることです。