오프셋(컴퓨터 과학)
Offset (computer science)컴퓨터 과학에서 어레이 또는 다른 데이터 구조 객체 내의 오프셋은 객체의 시작과 특정 요소 또는 점(아마도 같은 객체 내) 사이의 거리(위치)를 나타내는 정수입니다.거리 개념은 개체의 모든 요소가 동일한 크기(일반적으로 바이트 또는 워드로 지정됨)인 경우에만 유효합니다.
예를 들어,A
포함하는 문자 배열로서"abcdef"
, 문자를 포함하는 네 번째 요소'd'
시작부터 3의 오프셋이 있다.A
.
어셈블리 언어
컴퓨터 엔지니어링 및 저수준 프로그래밍(어셈블리 언어 등)에서 오프셋은 일반적으로 특정 절대 주소에 도달하기 위해 기본 주소에 추가된 주소 위치의 수를 나타냅니다.오프셋의 이(원래) 의미에서는 오프셋의 크기를 지정하는 데 기본 주소 단위(일반적으로 8비트 바이트)만 사용됩니다.이 컨텍스트에서는 오프셋을 상대 주소라고 부르기도 합니다.
IBM System/360 명령에서는 특정 명령 내에 포함된 12비트 오프셋이 0 ~ 4096바이트의 범위를 제공했습니다.예를 들어 무조건 분기 명령(X'47F0Fxx') 내에서 xxx 12비트 16진수 오프셋은 기본 레지스터(15)에서 분기할 바이트 오프셋을 제공합니다.프로그램이나 하드웨어 인터럽트 없이 실행하기 위해 명령어를 반단어 경계에 맞춰야 했기 때문에 홀수 오프셋은 프로그램 체크를 일으킨다(기본 레지스터 자체에도 홀수 주소가 포함되어 있지 않은 경우).
위의 예에서는 segment: offset 형식으로 메모리 위치를 간접적으로 지정하는 방법을 설명합니다.예를 들어 메모리 위치 0xF867을 참조한다고 가정합니다.이를 실현하기 위한 한 가지 방법은 처음에 시작 주소가 0xF000인 세그먼트를 정의한 후 오프셋을 0x0867로 정의하는 것입니다.또, 최종의 절대 메모리 주소에 도달하기 위해서, 16 진수의 세그먼트(segment)를 시프트 할 수도 있습니다.여기서 한 가지 주의할 점은 다양한 방법으로 최종 절대 주소에 도달할 수 있다는 것입니다.