주소 상수

Address constant

IBM System/360에서 현재 z/Architecture까지 주소 상수 또는 "adcon"컴퓨터 메모리에 있는 위치의 주소를 포함하는 어셈블리 언어 데이터 유형이다.주소 상수는 4바이트 미만의 애드콘이 일반적으로 길이, 상대 주소 또는 인덱스 값과 같은 작은 정수에 대한 식을 보유하기 위해 사용되며 주소를 전혀 나타내지 않지만 1, 2, 3, 4바이트 길이일 수 있다.주소 상수는 조립자 언어 "DC" 문을 사용하여 정의된다.

다른 컴퓨터 시스템들은 다른 이름들이 사용될 수 있지만 유사한 시설을 가지고 있다.

주소 상수의 유형

애드콘은 보통 4바이트의 다시 연결 가능한 주소를 저장하지만 상수의 길이를 지정할 수 있다.예를 들어,AL1(stuff)주로 다시 연결 가능한 값이 있는 작은 상수에 유용한 1바이트 애드콘을 정의한다.다른 애드콘 유형도 마찬가지로 길이 사양을 가질 수 있다.

V 타입 애드콘은 링크 편집기로 해결할 외부 참조를 저장한다.

Y는 2바이트(하프워드) 주소에 사용된다.'Y' 애드콘은 최대 32K바이트의 스토리지를 직접 처리할 수 있으며, 초기 시스템/360 조립자가 'Y' 데이터 유형을 지원하지 않았기 때문에 널리 사용되지 않는다.초기 DOS/360BOS/360 시스템은 Y 애드콘을 더 많이 사용했는데, 이 시스템이 실행되는 기계는 스토리지가 제한적이기 때문이다.현재 'AL2()'라는 표기법은 16비트 값을 정의하기 위해 'Y()'보다 우선하여 일반적으로 사용된다.

Q 어드레스 상수는 실제 주소가 아니라 Linux 글로벌 오프셋 표와 유사한 외부 더미 섹션변위를 포함한다(Position-독립 코드 참조).J 애드콘은 외부 더미 섹션의 누적 길이를 보유하도록 연결 편집기에 의해 설정되며, 실제로 주소를 포함하지 않는다.

다른 유형의 어드레스 상수는 PSCT를 다루는 TSS/360에 특별한 의미를 가진 R과 4비트 일반 레지스터 번호와 12비트 변위를 포함하는 16비트 값, 주소와 동일한 형식이 지침서에 인코딩되는 기본 변위 형식으로 어드레스를 저장하는 S이다.

System z는 타입 AD, JD, QD, VD를 지원하는데, 타입 'A', 'J', 'Q', 'V'의 8바이트(이중 워드) 버전을 나타내 64비트 주소를 보유한다.

재결합성

'DC'의 공칭값은 괄호로 묶은 식 목록이다.표현은 절대적일 수 있고, 다시 연결될 수 있거나, 복잡하게 다시 연결될 수 있다.

절대식은 조립 시간에 완전히 평가될 수 있으며 연결 편집기에 의해 추가 처리가 필요하지 않다.예를 들어,DC A(4900796)절대 공칭 값을 갖는다.

다시 연결 가능한 표현식은 다음 코드 'ACON'에서 프로그램이 연결되었을 때 링크 편집기에 의해 재배치되어야 하는 하나 이상의 용어를 포함하는 표현식이다.

LAB DC H'0'...ACON DC A(LAB-4)

복잡하게 다시 연결 가능한 표현식은 다른 소스 모듈의 주소에 관련된 용어를 포함한다.예를 들어,DC A(X-Y)여기서 'X'와 'Y'는 서로 다른 모듈에 있다.

이 모든 것이 유효한 애드콘의 것이다.

ADCONS DS 0A 암묵적 길이 4와 실제 길이 0 DC A(FEADA)의 정렬된 라벨, 위에서처럼 정렬된 4바이트 단어로, DC AL4(FEADA) 3바이트 단어의 경계 DC AL3(FEADA)에 정렬된 (필요하지는 않음) 변수의 절대 주소alent of the above (maximum 16 megabytes)          DC    AL2(FIELDA-TABLES)     two byte offset from 'TABLES' label to start of 'FIELDA'          DC    AL2(L'FIELDA)          a two byte length of the field called 'FIELDA' (=26 in decimal)          DC    AL1(C'A')              hexadecimal value of the EBCDIC캐릭터 트레일러 키트 포함(16진법으로. =C1)DCA(FIELDA-C'A의)4바이트 정렬하여, 절대 주소, >, FIELDA DCA(*)의 시작에서 4바이트기 전에 192바이트 정렬하여, 이 adcon의 주소(*'here 것을 의미합니다'라고)DCS(SUBRTNA)이 프로그램 브랜드 2바이트,시켰습니다 base+displacement 주소입니다. "SUBRTNA"          DC    X'47F0',S(SUBRTNA)     an unconditional branch instruction (built using an S-type address constant)          DC    SL2(SUBRTNA)           a 2 byte, UNALIGNED base+displacement address of the program label "SUBRTNA" STAB     DC    SL2(SUBRTNA,SUBRTNB,SUBRTNC,.etc.)AN ARRAY OF unaligned S-TYPE ADCONS  * INDIRECT DC    A(*+4)                 address of next byte after this adcon (the V-type adcon)          DC    V(SUBRTNX)             address of an external subroutine entry point          DC    AL1(−1)                a one byte negative value (= x'FF'), often used as a table de-limiter . SUBRTNA   DS    0Ystart of (internal) sub-routine A .         instructions go here . TABLES   DS    0Y                     base address for tables section (halfword aligned) LENGTHS  DC    Al2(5,27,56,83,127,32563)   an arbitrary array of 6 x 2 byte hex lengths (defined by their decimal values) PARMLIST  DC   A(HERE,THERE,EVWHERE,-1)  an array of 3x 4 byte aligned pointers to various field labels/entrypoints *                                        with additional negative value end-pointer (=X'FFFFFFFF'). . ZERO_255 DC    256AL1(*-ZERO_255)               an array of 256 single byte hex values 00-FF * ---------end of adcon examples ---------------- * FIELDA   DC    C'ABCDEFGHIJKLMNOPQRSTUVWX문자열이 들어 있는 필드(애드콘이 아님) = A-Z

참고 항목

포인터(컴퓨터 과학)

외부 링크