기본 어셈블리 언어
Basic Assembly Language패러다임 | 어셈블리어 |
---|---|
개발자 | IBM |
처음 등장 | 1964 |
OS | IBM 기본 프로그래밍 지원, 기본 운영 체제/360 |
면허증. | 공짜 |
패러다임 | 어셈블리어 |
---|---|
개발자 | IBM |
처음 등장 | 1992 |
안정적 방출 | 버전 1 릴리스 6 |
OS | IBM MVS/ESA 및 후속 제품, VM/ESA 및 후속 제품, VSE/ESA 및 후속 제품 |
면허증. | 전매의 |
웹사이트 | https://www.ibm.com/products/high-level-assembler-and-toolkit-feature |
주요 구현 | |
고급 조립자 |
BAL(Basic Assembly Language)은 1964년에 도입되어 IBM Basic Programming Support(BPS/360)의 일부로 오직 8KB의 메인 메모리와 입력/출력을 위한 카드 리더, 카드 펀치 및 프린터만 있는 IBM System/360 메인프레임 시스템에서 사용되는 매우 제한된 어셈블리 언어입니다.BAL용 기본 어셈블러는 기본 운영 체제/360(BOS/360)의 일부로도 제공되었습니다.
어떤 사람들은 BAL이라는 용어를 다른 어셈블러 언어를 가리키기 위해 사용했습니다. 마치 그들이 일반 제품을 가리키기 위해 Kodak과 Xerox와 같은 상표가 붙은 용어를 사용했던 것처럼, 이러한 사용법은 [citation needed]퇴색되었습니다.
시스템/360에서 IBM Z까지의 다른 운영 체제, 스페리 코퍼레이션이 만든 유니박 시리즈 90 메인프레임, 후지쯔가 현재 만든 BS2000 메인프레임의 어셈블러는 구문을 상속하고 확장했습니다.최신 파생 언어는 IBM HLASM(High-Level Assembler)으로 알려져 있습니다.이 어셈블러 제품군을 사용하는 프로그래머는 ALC, (어셈블러 코딩용) 또는 단순히 "어셈블러"라고도 합니다.
일반적인 특성
BAL은 어셈블리어이므로 System/360, System/370, System/370-XA, ESA/370, ESA/390 및 z/Architecture를 포함한 IBM 메인프레임 아키텍처의 기본 명령어 집합을 사용합니다.
기계 명령의 단순성은 어셈블러로 작성된 프로그램의 소스 코드가 코볼이나 포트란과 같은 동등한 프로그램보다 훨씬 길다는 것을 의미합니다.과거에는 수작업으로 코딩된 어셈블러 프로그램의 속도가 이러한 단점을 보완하는 것으로 느껴졌지만, 컴파일러 최적화, 메인프레임용 C 및 기타 발전으로 어셈블러의 매력은 많이 사라졌습니다.그러나 IBM은 어셈블러를 계속 업그레이드하고 있으며, 속도 또는 매우 미세한 제어가 가장 중요할 때에도 여전히 사용됩니다.그러나 BAL의 모든 IBM 후속 제품에는 훨씬 더 콤팩트한 소스 코드를 작성할 수 있는 정교한 매크로 기능이 포함되어 있습니다.
어셈블러를 사용하는 또 다른 이유는 모든 운영 체제 기능이 고급 언어로 액세스될 수 없다는 것입니다.메인프레임 운영 체제의 응용 프로그램 인터페이스는 어셈블리 언어 "매크로" 명령어 집합으로 정의되며, 일반적으로 SVC(예: on z/OS) 또는 Diagnostic(DIAG) 명령어를 호출하여 운영 체제 루틴을 호출합니다.어셈블러 서브루틴을 사용하여 고급 언어로 작성된 프로그램에서 운영 체제 서비스를 사용할 수 있습니다.
어셈블리 문 형식

어셈블러 언어 문 형식은 80열 천공 카드의 레이아웃을 반영하지만, 이후 버전에서는 대부분의 제한이 완화되었습니다.
- 선택적 문 레이블 또는 이름은 열 1로 시작하는 영숫자 문자열입니다.첫 번째 문자는 알파벳이어야 합니다.이후 버전에서는 레이블에 사용되는 합법적인 문자에 @, #, $ 및 _를 추가하고 처음 6자에서 8자로 크기를 늘린 다음 거의 무제한 길이로 늘렸습니다.
- 작업 코드 또는 "니모닉"은 1열 오른쪽의 임의의 열에서 시작할 수 있으며, 문 레이블에서 공백으로 구분됩니다.작업 코드는 기계 명령어(매크로를 사용할 수 없음)로만 구성되어 일반적으로 1, 2, 3 또는 거의 4자로 구성됩니다.작업 코드는 최대 8자까지 사용할 수 있도록 향상되었으며 이후에는 사실상 무제한 길이로 변경되었습니다.
- 피연산자 필드는 작업 코드에서 공백 하나 이상으로 구분된 작업 코드 오른쪽의 임의 열에서 시작할 수 있습니다.공백은 문자 상수를 제외한 피연산자에서 사용할 수 없습니다.하나 이상의 피연산자로 구성된 피연산자 필드는 작업 코드에 따라 선택 사항입니다.
- 선택적 주석은 피연산자 필드의 오른쪽에 하나 이상의 공백으로 구분하여 표시될 수 있습니다.
- 기본 어셈블리 언어에서는 문을 계속할 수 없습니다.이후 버전의 어셈블리어는 계속 중인 명령문의 72열에 공백이 아닌 문자가 나타나면 계속됨을 나타냅니다.기본 어셈블리 언어를 사용하려면 72열이 비어 있어야 합니다.
- "전체 카드 설명"은 1열에 별표(*)로 표시됩니다.
- 식별 시퀀스 필드라고 불리는 카드 열 73-80은 프로그래머가 어떤 목적으로든 사용할 수 있지만, 일반적으로 뒤섞인 카드 데크를 다시 정렬하기 위한 시퀀스 번호를 포함합니다.
기본 어셈블리 언어는 또한 명령문이 25열로 시작하는 대체 명령문 형식을 허용하므로, 어셈블리된 명령어를 1열로 시작하는 동일한 카드에 펀치할 수 있습니다.이 옵션은 이후 버전의 어셈블리어에서는 계속되지 않았습니다.
지침 유형
어셈블러로 작성된 프로그램의 소스 코드에는 세 가지 주요 유형의 명령어가 있습니다.
조립자 지침
다른 시스템에서 명령어, 유사 연산 또는 유사 연산이라고도 하는 어셈블리 명령어는 코드 생성 프로세스 중에 다양한 연산을 수행하도록 어셈블리에 요청하는 것입니다.예를 들어.CSECT
"여기서 코드 섹션 시작"을 의미합니다.DC
개체 코드에 배치할 상수를 정의합니다.
더 중요한 조립자 지침 중 하나는USING
S/360 아키텍처의 잘린 주소 지정을 지원합니다.어셈블리가 상대 주소에 사용해야 하는 기본 레지스터 및 오프셋을 결정하는 데 사용됩니다.BAL에서는 형식으로 제한되었습니다.
기준 사용, reg-1, ..., reg-n
기계 명령(니모닉)
기계 명령과 일대일 관계가 있습니다.전체 니모닉 명령 집합은 각 명령 집합에 대한 작동 원리[1] 설명서에 설명되어 있습니다.예:
이것은 설명 라인 * 'IGGY'라는 라벨이 붙은 * 위치에 저장된 전체 단어 정수를 일반 레지스터 3에 로드합니다: L3, ZIGGY SLA 4,5는 일반 레지스터 4의 값을 5비트 MVC TARGET으로 이동하고, 소스는 위치 'SOURCE'에서 'TARGET' AP Count로 이동합니다.=P'1'은 메모리 위치 'COUNT'의 값에 1을 추가합니다.(10진수로 채워진 형식) B NEXT 무조건 분기에서 'NEXT' 레이블을 지정합니다. * 이는 CLC TARGET,=C 'ADDRESS' 레이블입니다. 프로그램 레이블 'THERE'와 동일한 경우 메모리 위치 'TARGET'를 문자열 'ADDRESS' BE' 분기로 비교합니다.
일반적으로 허용되는 표준은 필수는 아니지만, 니모닉으로 범용 레지스터를 식별하는 것을 포함합니다.X86 어셈블리 언어와 같은 일부 다른 시스템의 어셈블리어와 달리 레지스터 니모닉은 예약된 기호가 아니라 프로그램의 다른 부분에 있는 EQU 문을 통해 정의됩니다.이것은 어셈블리어 프로그램의 가독성을 향상시키고 레지스터 사용에 대한 상호 참조를 제공합니다.따라서 일반적으로 어셈블러 프로그램에서 다음을 볼 수 있습니다.
R3 EQU 3...LR3, 지그기
몇 가지 주목할 만한 명령 니모닉은 다음과 같습니다.BALR
[a] 반송 주소와 상태 코드를 레지스터에 저장하는 통화의 경우,SVC
,[b] DIAG
그리고[c]ZAP
후자는[2] SuperZ의 이름에 영감을 주었습니다.프로그래머가 가명을 사용한 AP 유틸리티WAMOZART
cf. 무료 온라인 컴퓨팅 사전의 SuperZap.
시스템/360 기계 명령은 1, 2 또는 3개의 반단어 길이(2-6바이트)입니다.원래는 4개의 명령어 형식이 있었는데, 운영 코드 필드의 처음 2비트에 의해 지정되었습니다. z/Architecture는 추가 형식을 추가했습니다.
매크로 및 조건부 어셈블리
기본 어셈블리 언어는 매크로를 지원하지 않습니다.이후의 어셈블러 버전에서는 프로그래머가 명령어를 매크로로 그룹화하여 라이브러리에 추가할 수 있으며, 이는 C 및 관련 언어의 전처리기 기능과 같은 매개 변수를 사용하여 다른 프로그램에서 호출될 수 있습니다.매크로는 다음과 같은 조건부 어셈블리 명령을 포함할 수 있습니다.AIF
('if' 구성), 선택한 매개 변수에 따라 다른 코드를 생성하는 데 사용됩니다.이것은 이 조립자의 매크로 기능을 매우 강력하게 만듭니다.C의 여러 줄 매크로는 예외이지만 어셈블리의 매크로 정의는 쉽게 수백 줄이 될 수 있습니다.
운영 체제 매크로
대부분의 프로그램은 운영 체제의 서비스를 필요로 하며, OS는 이러한 서비스를 요청하기 위한 표준 매크로를 제공합니다.이는 유닉스 시스템 호출과 유사합니다.예를 들어, MVS(이후 z/OS)의 경우 ACTIVE 매개 변수가 있는 STORY가 메모리 블록을 동적으로 할당하고 GET가 파일에서 다음 논리 레코드를 검색합니다.
이러한 매크로는 운영 체제에 따라 다릅니다. IBM 메인프레임 어셈블리 언어는 메모리 할당, I/O 작업 수행 등을 위한 운영 체제 독립적인 문 또는 라이브러리를 제공하지 않으며, 다양한 IBM 메인프레임 운영 체제는 시스템 서비스 수준에서 호환되지 않습니다.예를 들어, 순차적 파일을 작성하는 경우 z/OS와 z/VSE에서 다르게 코딩됩니다.
예
다음 조각은 "만약 SEX = 'M'이면 남성에 1을 추가하고, 그렇지 않으면 여성에 1을 추가하라"는 논리가 어셈블러에서 어떻게 수행되는지 보여줍니다.
CLI SEX, C'M' 수컷? BNE IS_FEM 그렇지 않으면 L7 주변에 분기, MALES 레지스터 7 LA 7에 MALES의 전류 값 로드, 1(7) 1 ST 7 추가,남성은 결과 저장 BGO_ON 이 부분으로 완료됨 IS_FEMEQ * 라벨 L 7, 여성은 여성의 전류 값을 레지스터 7 LA 7에 로드, 1(7) 7에 추가, 1 ST 7,여성은 결과 GO_ON EQU * - 프로그램의 나머지 부분 - * 남성의 경우 MALES DC F'0' 카운터(208=0), 여성의 경우 MALES DC F'0' 카운터(208=0)를 저장합니다.
다음은 유비쿼터스 Hello 월드 프로그램으로, OS/VS1 또는 MVS와 같은 IBM 운영 체제에서 실행하면 운영자의 콘솔에 'Hello World'라는 단어가 표시됩니다.
HELLO CSECT 이 프로그램의 이름은 'HELLO' * OPSYS 또는 발신자 입력 시 15포인트를 여기에 등록합니다. STM 14,12,12(13) 발신자의 Save 영역 LR 12,15에 레지스터 14,15 및 0~12를 저장합니다. HELLO를 사용하여 프로그램의 진입점 주소로 기본 레지스터 설정,12 조립자에게 우리가 pgm. base LA 15,SAVE Now Point에 사용하는 레지스터를 알려줍니다. ST 15,8(13) 전방 체인 ST 13,4(15) 후방 체인 LR 13,15 R13을 새 저장 영역 주소로 설정 * - 하우스키핑 종료(대부분의 프로그램에서 유사) - WTO 'Hello World' 운영자에게 쓰기(운영 체제 매크로) * L13,4(13) 발신자가 제공한 저장 영역에 주소 복원 XC 8(4,13),8(13) 전방 체인 지우기 LM 14,12,12(13) DROP 12 항목으로 레지스터 복원 'USING' SR 15의 반대,15 반환 코드(R15)가 0이 되도록 레지스터 15를 0으로 설정합니다. 14 호출자로 돌아가기 * SAVE DS 18F 호출 프로그램 레지스터를 저장하기 위해 18개의 전체 단어 정의 END HELLO 이것으로 프로그램은 끝입니다.
WTO
는 운영 체제 호출을 생성하는 어셈블리 매크로입니다.레지스터를 저장하고 나중에 복원 및 반환하기 때문에 이 작은 프로그램은 다음과 같이 운영 체제 JCL(Job control language)에 의해 직접 호출되는 배치 프로그램으로 사용할 수 있습니다.
// EXEC PGM=HELLO
또는 다음과 같은 프로그램에서 서브루틴으로 호출할 수 있습니다.
'안녕하세요'를 호출
버전

IBM System/360 Model 20의 어셈블러를 제외하면 IBM 어셈블러는 대부분 상위 호환성이 있었습니다.차이점은 주로 허용되는 표현식의 복잡성과 매크로 처리에 있습니다.OS/360 어셈블러는 원래 메모리 요구 사항에 따라 지정되었습니다.
7090/7094 지원 패키지 어셈블리
이 교차 어셈블리는 7090 또는 7094 시스템에서 실행되며 시스템/360이 [3][4]개발 중인 동안 사용되었습니다.
기본 프로그래밍 지원 어셈블리
BPS를 위한 어셈블러는 진정한 "기본 어셈블러"입니다.카드에서 로드되도록 설계되었으며 8KB 시스템/360(모델 20 제외)에서 실행됩니다.매크로 명령이나 확장 니모닉(예: 조건 코드 2가 높은 비교를 나타내는 경우 BC 2 대신 분기하는 BH)을 지원하지 않습니다.단일 제어 섹션만 조립할 수 있으며 더미 섹션(구조 정의)을 허용하지 않습니다.괄호로 묶은 표현식은 허용되지 않으며 표현식은 '+', '-' 및 '*'[3]: pp.59–61 연산자만 있는 세 개의 용어로 제한됩니다.
기본 운영 체제 어셈블리어
기본 운영 체제에는 두 가지 어셈블러 버전이 있습니다.둘 다 16KB의 메모리가 필요합니다. 하나는 테이프 상주형이고 다른 하나는 [5]: pp.7–8 디스크입니다.
어셈블리 D
D 어셈블러는 메모리 크기가 16KB인 기계를 위한 DOS/360 어셈블러였습니다.두 가지 버전으로 출시되었습니다.최소 16KB의 메모리가 있는 컴퓨터의 경우 10KB 버전이고 24KB가 있는 컴퓨터의 경우 14KB 버전입니다.F 레벨 어셈블러는 64KB 이상의 도스 컴퓨터에도 사용할 수 있었습니다.D 어셈블러는 상위 [6]: p.7 버전의 거의 모든 기능을 제공했습니다.
어셈블리 E 및 F
어셈블러 E는 최소 32KB의 메인 스토리지를 갖춘 OS/360 시스템에서 실행되도록 설계되었으며 어셈블러 자체에 15KB가 [7]: p.2 필요합니다.어셈블러 F는 64KB 메모리가 있는 시스템에서 DOS/360 또는 OS/360으로 실행할 수 있으며 어셈블러에는 44KB가 [8][9][10]필요합니다.이러한 어셈블러는 OS/360의 표준 부분이며, 생성된 버전은 시스템 생성(SYSGEN) 시 지정되었습니다.
모델 44 프로그래밍 시스템 어셈블러
"특정 예외를 제외하고 IBM System/360 Model 44 Programming System Assembler Language는 IBM System/360 프로그래밍 지원에서 사용할 수 있는 언어의 선택된 하위 집합입니다."가장 중요한 것은 모델 44 어셈블러가 매크로 및 연속문을 지원하지 않았다는 점입니다.다른 시스템/360 어셈블러에서는 찾아볼 수 없는 많은 기능들이 있었습니다. 특히 카드 이미지 소스 데이터 세트를 업데이트하라는 지침, 이름이 common이고 다음과 같은 암묵적인 정의가 있습니다.SETA
어셈블리 [11]변수
어셈블리 G
"어셈블러 G"는 1970년대에 워털루 대학교에서 어셈블러 F를 수정한 것입니다(어셈블러 F는 오픈 소스였습니다/오픈 소스였습니다).향상된 기능은 대부분 입력/출력 처리를 개선하고 버퍼링을 개선하여 어셈블리 속도를 크게 [12]높입니다."어셈블러 G"는 결코 IBM 제품이 아니었습니다.
어셈블러
H 어셈블러는 F 어셈블러보다 더 빠르고 강력했지만 매크로 언어는 완전히 호환되지 않았습니다.
어셈블러 H 버전 2는 1981년에 발표되었으며 AMODE 및 RMODE [13]: p.3–28 지침을 포함한 확장 아키텍처(XA)에 대한 지원을 포함합니다.1994년에 마케팅에서 철수했고 1995년에 지원이 종료되었습니다.고급 조립자로 [14]대체되었습니다.
어셈블러 XF
어셈블러 XF는 새로운 시스템/370 아키텍처 지침이 포함된 어셈블러 F의 업그레이드입니다.이 버전은 OS/VS 및 DOS/VS 시스템을 위한 공통 어셈블리어를 제공합니다.다른 변경 사항에는 식 및 매크로 처리에 대한 제한 완화가 포함됩니다.어셈블러 XF에는 최소 64KB의 파티션/영역 크기가 필요합니다(가상).권장 크기는 128KB입니다.[15]: p.73
고급 조립자
HLASM은 1992년 6월 IBM의 Assembler H 버전 [16][17]2를 대체하여 출시되었습니다.시스템/370 및 시스템/390의 기본 변환기였으며 MVS, VSE 및 VM 운영 체제를 지원했습니다.2023년 현재 IBM은 z/Architecture 메인프레임 컴퓨터의 z/OS, z/VSE, z/VM 및 z/TPF 운영 체제용 어셈블러 프로그래밍 언어입니다.릴리스 6 이상은 Linux에서도 실행되며 ELF 또는 GOFF 개체 파일을 생성합니다(IBM [18]Z에서는 Linux라고도 함).IBM에서 근무하는 동안 John Robert Ehrman은 HLASM의[d] 수석 개발자였으며 "고급 [20]조립자의 아버지"로 간주됩니다.
이름에도 불구하고 HLASM 자체에는 일반적으로 높은 수준의 어셈블리어와 관련된 많은 기능이 없습니다.이름은 사용자 정의 함수를 작성하는 기능과 같은 추가 매크로 언어 기능에서 유래할 수 있습니다.어셈블러는 주로 어셈블러 H 및 어셈블러(XF)와 유사하며, SLAC(Stanford Linear Accelerator) 수정이 통합되어 있습니다.추가된 기능 중에는 다음과 같은 기능이 있습니다.CSECT
/DSECT
위치 카운터의[e] 경우 종속 및 레이블[f] 지정된 USING 문, 현재 활성 상태인 USING 문 목록, 교차 참조에서 변수를 읽거나 쓸지 여부를 나타내며 대/소문자 혼합 기호 [21]이름을 허용합니다.지침(읽기 전용 제어 섹션)을 통해 어셈블리는 섹션별로 재입장을 확인할 수 있습니다. RSECT
이전에 "문서화되지 않았으며 어셈블리 [22]: p.43 H에서 일관성 없이 구현되었습니다."
고급 어셈블러 툴킷
High Level Assembler 툴킷은 High Level Assembler에 별도로 제공되는 가격입니다.툴킷에는 다음이 [23]포함됩니다.
- 구조화된 프로그래밍 매크로 세트 -
- IF/ELSE/ENDIF
- 실행/종료
- STRTSRCH/오릴레스/엔드루프/엔드RCH
- CASE 엔트리/케이스/엔드케이스
- 선택/언제/그렇지 않으면/Endsel을 선택합니다.
- 분해기.
- "프로그램 이해 도구"(재설계 지원).
- Source XREF 유틸리티(상호 참조 기능).
- 대화형 디버그 기능입니다.
- 향상된 SuperC(소스 비교 도구).
전문 버전
IBM System/360 모델 44 PS 어셈블리어
IBM System/360 Model 44 Programming System Assembler는 OS/360 및 DOS/360 Assembler 언어의 "선택된 하위 집합"인 언어를 처리합니다.SS(Storage-to-Storage) 명령이나 이진 변환을 지원하지 않습니다.CVB
), 십진수로 변환(CVD
), 직접 읽기(RDD
) 및 직접 쓰기(WRD
)[24] 지침.모델 44에 고유한 네 가지 지침이 포함되어 있습니다. 우선 순위 마스크 변경(CHPM
), PSW 스페셜 로드(LPSX
), 직접 단어 읽기(RDDW
) 및 직접 단어 쓰기(WRDW
). 다른 시스템의 유틸리티 프로그램에 의해 수행되는 기능인 소스 프로그램을 업데이트하기 위한 지침도 포함합니다(SKPTO
,REWND
,NUM
,OMIT
그리고.ENDUP
) 명명된 공통 및 암묵적으로 정의된 를 제공합니다.&SETA
기호, 그러나 [24]: pp.53, 73 몇 가지 제한 사항도 마찬가지입니다.
IBM System/360 TSS 어셈블러
시스템/360 모델 67 시간 공유 시스템의 어셈블러는 고유한 TSS 기능을 지원하기 위한 지침에 여러 가지 차이점이 있습니다.그PSECT
디렉티브는 재배치 가능한 주소 상수와 [25]: p.143 프로그램에서 사용하는 수정 가능한 데이터를 포함하는 프로토타입 제어 섹션을 생성합니다.
비 IBM 어셈블러
특수 [26]환경을 위한 여러 IBM 호환 어셈블리어가 있습니다.
- Unisys의 Univac 90/60, 90/70 및 90/80 시리즈는 S/360 및 S/370과 유사한 작업이었기 때문에 IBM 형식의 어셈블리어를 수용하도록 설계되었습니다.
- Fujitsu BS2000 시리즈도 Univac과 동일한 리소스에서 370개의 워크로 제작되었으며 유럽 일부 [27]지역에서 여전히 사용되고 있습니다.
- Dignus LLC Systems/ASM은 IBM 시스템에서 기본적으로 또는 교차 [28]어셈블리로 실행할 수 있는 HLASM 호환 어셈블리입니다.
- 돈 히긴스가 작성한 프리웨어 PC/370은 나중에 마이크로 포커스에 의해 구입되었습니다.
- z390은 또한 돈 히긴스가 작성한 어셈블러이자 시스템 390 에뮬레이터이며 자바로 프로그래밍되어 있습니다.오픈 소스이며 http://www.z390.org/ 에서 이용할 수 있습니다.
- Penn State University는 시스템 370 어셈블리어 및 인터프리터를 포함하는 ASIST라는 패키지를 작성했습니다.
- Tachyon Software LLC는 Windows, Linux/x86, S/390 및 zSeries용 Linux, AIX [29]및 Solaris에서 실행되는 Tachyon Assembler Workbench를 판매합니다.
- GNU 어셈블러(가스)는 OS/390 및 IBM Z에서 Linux용 GNU 컴파일러 모음(gcc)의 일부입니다.이 어셈블러는 IBM 아키텍처의 다른 어셈블러와 호환되지 않는 고유한 구문을 가지고 있습니다.
트리비아
BAL은 "Branch And Link"[2] 지침의 니모닉이기도 합니다.
참고 항목
- IBM 시스템/360
- 어시스트 조립기
- PC 기반 IBM 호환 메인프레임 – 호환되는 컴퓨터 또는 가상 머신 목록
- 분해기 – 기계 코드에서 어셈블리와 유사한 소스를 재구성하는 어셈블리의 역 프로세스
메모들
- ^ BALR의 대부분의 용도는 다음으로 대체되었습니다.
BASR
및 이와 유사한 지침. - ^ 의 다양한 용도
SVC
으로 대체되었습니다.PC
설명. - ^ VM 용도 변경
DIAG
한 사람으로서HVC
설명. - ^ HLASM은 어셈블러 H에 대한 Greg Mushial의 향상된[19] 기능을 지원되는 제품에 통합하기 위해 공유 요구 사항을 준수했습니다.
- ^ 종속 USING은 레지스터 목록 대신 재배치 가능한 식을 지정하는 것입니다.
IHADCB, SYSPRINT 사용... TM DCBOPTCD, DCBOPTC 테스트 OPTCD in SYSPRINT...
- ^ 라벨이 붙은 USING은 라벨이 있는 표현식을 수식화함으로써 명시적으로 이를 참조하는 지침에만 영향을 미치는 것입니다.
LAR4,SYSIN LA5,IHADCB,R4를 사용할 때의 시스템 인쇄...IHADCB,R5...TMIN.DCBOFLGS,DCBOFTM SYSIN의 LGS 테스트...TM OUT.DCBOOPTCD,DCOPTCD 인쇄...
레퍼런스
- ^ IBM System/360 Principles of Operation (PDF). Systems Reference Library. IBM Corporation. A22-6821-0. Retrieved Dec 6, 2018.
- ^ a b "HLASM - List of all Opcodes, Extended Mnemonics and Function Codes, Sorted by Mnemonic". Retrieved January 14, 2013.
- ^ a b IBM System/360 Basic Programming Support Basic Assembler Language (PDF). Systems Reference Library. IBM Corporation. February 1965. C20-6503-0. Retrieved April 5, 2022.
- ^ IBM 7090/7094 Support Package for IBM System/360 (PDF). Systems Reference Library. IBM Corporation. November 1964. C28-6501-2. Retrieved April 5, 2022.
- ^ IBM System/360 Basic Operating System Language Specifications Assembler (16K Disk/Tape) (PDF). Systems Reference Library. IBM Corporation. December 1965. C24-3414-1. Retrieved April 5, 2022.
- ^ IBM Corporation (1970). IBM System/360 Disk and Tape Operating Systems Assembler Language (PDF).
- ^ IBM Corporation (1966). IBM System/360 Operating System Assembler (32K) Program Logic Manual (PDF).
- ^ IBM Corporation (1968). IBM System/360 Disk Operating System Assembler(F) Program Logic (PDF).
- ^ IBM Corporation (1971). IBM System/360 Assembler(F) Program Logic (PDF).
- ^ IBM Corporation (1974). IBM OS Assembler Language (PDF).
- ^ IBM Corporation (1966). IBM System/360 Model 44 Programming System Assembler Language (PDF). p. 73. Retrieved July 2, 2019.
- ^ Stanford Linear Accelerator Center. "GENERALIZED IBM SYSTEM 360 SOFTWARE MEASUREMENT (SLAC-PUB-715)" (PDF). Retrieved October 8, 2012.
- ^ IBM Corporation (1984). MVS/Extended Architecture Conversion Notebook (PDF).
- ^ IBM Corporation (20 December 1996). "5668-962 IBM Assembler H Version 2 Release 1.0". Retrieved October 8, 2012.
- ^ IBM Corporation (1973). OS/VS Assembler Programmer's Guide (PDF).
- ^ IBM Corporation. "IBM High Level Assembler and Toolkit Feature - Release History". Retrieved October 21, 2012.
- ^ IBM Corporation (5 May 1992). "Announcement Letter 292-244: IBM HIGH LEVEL ASSEMBLER/MVS & VM & VSE". Retrieved October 21, 2012.
- ^ IBM Corporation (2008). High Level Assembler for Linux on zSeries User's Guide (PDF).
- ^ Greg Mushial (July 20, 1983), "Module 24: SLAC Enhancements to and Beautifications of the IBM H-Level Assembler for Version 2.8", SLAC VM NOTEBOOK, Stanford Linear Accelerator Center
- ^ "Guide to the John R. Ehrman collection". Online Archive of California. X5621.2010. Archived from the original on 2022-10-15. Retrieved 2022-10-15. [1]
- ^ "IBM HIGH LEVEL ASSEMBLER/MVS & VM & VSE". Announcement letters. IBM Corporation. May 5, 1992. 292-244. Retrieved October 8, 2012.
- ^ IBM Corporation (1995). IBM High Level Assembler for MVS & VM & VSE Release 2 Presentation Guide (PDF). Archived from the original (PDF) on 2016-01-23.
- ^ IBM Corporation. "Toolkit Feature components". Retrieved October 21, 2012.
- ^ a b IBM Corporation (1966). IBM System/360 Model 44 Programming System Assembler Language (PDF).
- ^ IBM Corporation (1976). IBM Time Sharing System Assembler Programmer's Guide (PDF).
- ^ Alcock, David. "Dave's z/Architecture Assembler FAQ". Planet MVS. Retrieved December 15, 2012.
- ^ 후지쯔 ASSEMH 매뉴얼은 http://manuals.ts.fujitsu.com/index.php?id=1-2-2926-15435 에서 구할 수 있습니다(2016-02-27 검색).
- ^ Dignus, LLC. "Systems/ASM". Retrieved December 15, 2012.
- ^ Tachyon Software LLC. "Tachyon Software". Retrieved December 15, 2012.
- 추가 참조
- 러드, 앤서니z/Architecture Assembler 프로그래머를 위한 일러스트레이션된 가이드입니다.공간 생성(2012).
외부 링크
