IBM Basic Assembly Language 및 후속 제품
IBM Basic Assembly Language and successors기본 조립 언어(BAL)는 IBM System/360 및 후속 메인프레임에서 사용되는 낮은 수준의 프로그래밍 언어에 일반적으로 사용되는 용어다.원래 "기본 어셈블리 언어"는 주 메모리가 8KB밖에 없는 시스템에서 IBM Basic Programming Support(BPS/360)의 제어 하에 실행되도록 설계된 극도로 제한된 방언에만 적용되었으며, 따라서 "Basic"이라는 단어만 사용하였다.그러나, 풀네임과 이니셜리즘 "BAL"은 거의 즉시 시스템/360에 있는 모든 조립 언어 방언과 그 후손들에게 대중적으로 사용되어졌다.BPS/360용 BAL은 1964년 System/360과 함께 도입되었다.
시스템/370, 시스템/390, 시스템 z를 통한 다른 시스템/360 운영 체제 및 Sperry Corporation에서 만든 UNIVAC 시리즈 90 메인프레임, 그리고 현재 Fujitsu에서 만든 BS2000 메인프레임에서 구문을 계승하고 확장했다.가장 최근에 파생된 언어는 IBM HLASM(High-Level Assembler)으로 알려져 있다. 이 조립자 제품군을 이용하는 프로그래머들은 이들을 ALC(Assembly Language Coding용) 또는 단순히 "조립자"라고도 부른다.
BAL은 또한 "Branch And Link" 명령의 니모닉이다.[1]
일반적 특성
IBM 메인프레임의 아키텍처는 수년간 시스템/360, 시스템/370, 시스템/370 XA, ESA/370, ESA/390, z/Architecture를 포함한 여러 가지 확장을 거쳤다.이들 아키텍처 각각은 이전 아키텍처의 대부분의 특징과 호환성을 유지했다.BAL은 이러한 기계의 기본 명령 집합을 사용한다.따라서 COBOL과 같은 제3세대 언어보다 하드웨어에 가깝다.
명령 집합은 다음과 같이 하드웨어가 지원하는 낮은 수준의 작업으로 구성된다.
지시 | 니모닉 | 설명 |
---|---|---|
로드 | L | 값을 메모리에서 등기로 복사하다. |
스토어 | 세인트 | 값을 레지스터에서 메모리로 복사하다. |
비교 | C | 레지스터 값과 메모리의 값을 비교하다 |
시프트 | SLL, SRL | 대장의 비트를 왼쪽 또는 오른쪽으로 움직이다. |
시작 하위 채널 | SSCH | 채널 명령어 문자열을 사용하여 하위 채널 I/O 작업 시작 |
이러한 운영의 극히 단순성은 조립자로 작성된 프로그램의 소스코드가 보통 COBOL이나 포트란의 동등한 프로그램보다 훨씬 길다는 것을 의미한다.과거에는 이러한 단점을 보완하기 위해 수작업으로 코딩된 조립 프로그램의 속도가 종종 느껴졌지만, 컴파일러 최적화, 메인프레임용 C, 기타 진보와 함께 조립자는 많은 매력을 잃었다.그러나 IBM은 조립업체를 계속 업그레이드하고 있으며, 속도나 매우 세밀한 제어의 필요성이 가장 중요할 때 여전히 사용된다.그러나, BAL에 대한 IBM의 모든 승계자들은 훨씬 더 컴팩트한 소스 코드를 작성할 수 있는 정교한 매크로 시설을 포함했다.
모든 운영체제 기능을 수준 높은 언어로 접근할 수 있는 것은 아니라는 점도 조립기를 이용하는 이유다.메인프레임 운영 체제의 응용 프로그램 인터페이스는 일반적으로 운영 체제 루틴을 호출하기 위해 SVC(Supervisor Call) [z/OS] 또는 진단(DIAG) [z/VM] 하드웨어 명령을 호출하는 조립 언어 "매크로" 명령 집합으로 정의된다.조립자 서브루틴을 사용함으로써 고도의 언어로 작성된 프로그램에서 운영체제 서비스를 이용할 수 있다.
조립자 문 형식
조립자 언어 문장의 형식은 연속적인 버전은 대부분의 제한을 완화했지만 80열 펀치 카드의 레이아웃을 반영한다.
- 옵션 문 라벨 또는 이름은 1열에서 시작하는 1 ~ 6개의 영숫자 입니다.첫 번째 문자는 알파벳이어야 한다.이후 버전은 레이블에 사용되는 법적 문자에 @, #, 달러를 더하고 크기를 8자로 늘린 다음 거의 무제한 길이로 늘렸다.`
- 조작 코드 또는 "네모닉"은 빈칸으로 문 라벨에서 분리된 1열의 오른쪽에 있는 모든 열에서 시작할 수 있다.작동 코드는 기계 명령어일 뿐(매크로를 사용할 수 없음)이며, 보통 1, 2, 3 또는 드물게 4글자가 된다.운영 코드는 최대 8자까지 허용하도록 강화되었다가 나중에는 사실상 무제한으로 되었다.
- 피연산자 필드는 운전코드 오른쪽의 어느 열에서나 시작할 수 있으며, 최소한 1개의 공백으로 운전코드로부터 분리된다.공백은 피연산자에서 문자 상수를 제외하고 유효하지 않다.하나 이상의 피연산자로 구성된 피연산자 필드는 운영코드에 따라 선택사항이다.
- 선택적 설명은 하나 이상의 공백으로 구분된 피연산자 필드 오른쪽에 나타날 수 있다.
- 기본 어셈블리 언어는 문장의 연속성을 허용하지 않는다.이후 버전의 조립자는 계속 진행 중인 문장의 72열에 빈칸이 아닌 문자의 출현으로 계속된다는 것을 나타낸다.기본 어셈블리 언어에는 72열이 비어 있어야 한다.
- "전체 카드 설명"은 1열의 별표(*)로 표시된다.
- 식별 순서 필드로 불리는 73-80 카드 컬럼은 프로그래머가 어떤 목적으로든 사용할 수 있지만, 대개 뒤죽박죽이 된 카드 덱을 장착하기 위한 시퀀스 번호를 포함하고 있다.
또한 기본 어셈블리 언어는 25열에서 시작하는 문장으로 대체 문 형식을 허용하며, 1열에서 시작하는 동일한 카드에 조립된 지침을 펀칭할 수 있다.이 옵션은 이후 버전의 조립자에서는 계속되지 않았다.
지시사항의 종류
조립자로 작성된 프로그램의 소스 코드에는 세 가지 주요 유형의 지침이 있다.
기계 지침(메모닉)
기계 설명서와 일대일 관계가 있다.전체 니모닉 명령 집합은 각 프로세서의 작동 원리[2] 매뉴얼에 설명되어 있다.예:
* 이것은 주석 줄임말 * 'Z'라는 레이블이 붙은 * 위치에 저장된 전체 단어 정수 로드IGGI'는 일반 레지스터 3: L 3, GIGHGGY SLA 4,5에서 일반 레지스터 4의 값을 5비트 MVC TARGET, SOURCE 위치 'SOURCE'에서 'TARGET' AP Count,=P'1로 옮기고 메모리 위치 'COUNT'(십진수 포맷) B의 값에 1을 추가한다.l branch to label 'NEXT' HERE EQUE * 이것은 라벨 CLC TARGET,=C'ADDRESS' 프로그램 라벨 'THERE'와 같은 경우 메모리 위치 'TARGET'를 문자열 'ADDRESS' BE THERE branch와 비교
일반적으로 수용되는 표준은 결코 의무적인 것은 아니지만, 연상 기법을 사용한 일반 목적 레지스터의 식별을 포함한다.X86 어셈블리 언어와 같은 일부 다른 시스템의 조립자와는 달리 레지스터 니모닉은 예약된 기호가 아니라 프로그램의 다른 곳에 있는 EQU 문을 통해 정의된다.이것은 조립자 언어 프로그램의 가독성을 향상시키고 레지스터 사용의 상호 참조를 제공한다.따라서 일반적으로 조립자 프로그램에서 다음을 볼 수 있다.
R3 EQU 3 ...L R3, 지그기
몇 가지 주목할 만한 지시 연상법은 다음과 같다.BALR
스택을 사용하기 전에 반송 주소를 레지스터에 저장하는 통화의 경우,SVC
,DIAG
그리고ZAP
후자는 SuperZ의 이름에 영감을 주었다.[1]가명 , cf를 사용하는 프로그래머에 의한 AP 유틸리티. 무료 온라인 컴퓨팅 사전의 SuperZap.
시스템/360 기계지시는 길이(2 ~ 6바이트)의 반말 1개, 2개 또는 3개다.원래 운전코드 필드의 처음 두 비트에 의해 지정된 네 가지 명령 형식이 있었다; z/Architecture는 추가 형식을 추가했다.
조립자 지시사항
조립자 지시사항은 다른 시스템에 대한 지시사항이라고도 하며, 코드 생성 프로세스 중에 다양한 작업을 수행하도록 조립자에게 요청하는 사항이다.예를 들어.CSECT
"여기서 코드 섹션 시작"을 의미한다.DC
객체 코드에 배치할 상수를 정의한다.
매크로 및 조건부 어셈블리
기본 조립자 언어는 매크로를 지원하지 않는다.이후 조립자 버전은 프로그래머가 명령어를 함께 매크로로 그룹화하여 라이브러리에 추가할 수 있도록 허용하는데, 그 다음 C의 전처리기 시설이나 관련 언어와 같은 파라미터로 다른 프로그램에서 호출할 수 있다.매크로에는 다음과 같은 조건부 조립자 지침이 포함될 수 있다.AIF
('if' constructure'), 선택한 파라미터에 따라 다른 코드를 생성하는 데 사용된다.그것은 이 조립자의 거시적인 설비를 매우 강력하게 만든다.C의 멀티라인 매크로는 예외지만, 조립자의 매크로 정의는 쉽게 수백 개의 라인이 될 수 있다.
운영 체제 매크로
대부분의 프로그램은 운영체제의 서비스를 요구할 것이고 OS는 그러한 서비스를 요청하기 위한 표준 매크로를 제공한다.이것은 유닉스 시스템 호출과 유사하다.예를 들어 MVS(Layer z/OS)에서는 스토리지(GETURT 매개 변수를 사용하여)가 메모리 블록을 동적으로 할당하고 GET는 파일에서 다음 논리 레코드를 검색한다.
유닉스 시스템 호출과는 달리 매크로는 운영체제 전반에 걸쳐 표준화되지 않는다."순차 파일"을 쓰는 것만큼 간단한 것 조차도 Z/VSE와 Z/OS에서 다르게 코딩된다.
예
다음 파편은 조립자에서 "SEX = 'M'이면 MERS에 1을 더하고, 그렇지 않으면 MERS에 1을 더하라"는 논리가 어떻게 수행되는지 보여준다.
CLI SEX, C'M' Male?BNE IS_FEM 만약 그렇지 않다면 L 7,MALES 현재 값 등록 7 LA 7,1(7)에 MALES 저장소에 1 ST 7,7,MALES 저장소에 결과 B GO_ON 완료 이 부분 IS_FEM EQE * 라벨 L 7,FEMALES Load 등록 7 LA 7,1(7)에 여성 1의 현재 값 추가 1 ST 7, FEMales가 결과 GO_ON EQUE * - 나머지 프로그램 - * MERS DC F'0' 카운터(초기=0) MERS용 여성 DC F'0' 카운터(초기=0) (초기=0)
다음은 유비쿼터스 헬로 월드 프로그램이며, OS/VS1 또는 MVS와 같은 IBM 운영 체제에서 실행될 경우 운영자의 콘솔에 '헬로 월드'라는 단어를 표시한다.
HELLO CGP 이 프로그램의 이름은 'HELLO' * OPSYS 또는 호출자로부터 입력 시 여기에 15포인트를 등록하십시오.STM 14,12,12(13) 저장 레지스터 14,15 및 0 ~ 12 호출자 저장 영역 LR 12,15 기본 레지스터 설정 프로그램의 진입점 주소를 사용하여 기본 레지스터 설정 Hello,12 PGM 기반 LA 15,Save Now Point를 위해 사용하는 Tell 어셈블러 자체 저장 영역 ST 15,8(13)전진 체인 ST 13,4(15) 뒤로 체인 LR 13,15 R13을 새로운 저장 영역 * -끝 하우스키핑(대부분의 프로그램과 유사함) - WTO 'Hello World' Write To Operator(운영 체제 매크로) * L 13,4(13) 복원 주소의 주소로 설정호출자 제공 저장 영역 XC 8(4,13),8(13) 진입로 12와 같이 LM 14,12,12(13) 복원 레지스터 삭제 '사용' SR 15,15 반환 코드(R15)가 0 BR 14가 되도록 레지스터 15를 0으로 설정 * SAVE로 복귀DS 18F 호출 프로그램 레지스터를 저장하기 위한 18개의 전체 단어 정의 END HELLO 이것이 프로그램의 끝이다.
WTO
운영 체제 호출을 생성하는 조립자 매크로.레지스터를 저장하고 나중에 복원 및 반환하기 때문에 이 작은 프로그램은 다음과 같이 운영 체제 JCL(Job Control Language)에서 직접 호출하는 배치 프로그램으로 사용할 수 있다.
// 집행부 PGM=HELLO
또는, 대안적으로, 그러한 프로그램의 서브루틴으로 콜리딩될 수 있다.
Call '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 인 상태에서 표현은 3개의 용어로 제한된다.
기본 운영 체제 조립기
기본 운영 체제는 두 개의 조립기 버전을 가지고 있다.둘 다 16KB 메모리가 필요하고, 하나는 테이프 상주형이고 다른 하나는 디스크형이다.[5]: pp.7–8
조립자 D
조립자 D는 메모리 크기가 16KB인 기계의 DOS/360 조립자였다.그것은 두 가지 버전으로 나왔다.최소 16KB 메모리가 있는 시스템의 경우 10KB 변종, 24KB가 있는 시스템의 경우 14KB 변종.64KB 이상의 DOS 기기를 위한 F-레벨 조립기도 사용할 수 있었다.D 조립자들은 상위 버전의 거의 모든 기능을 제공했다.[6]: p.7
조립자 E 및 F
Assembler 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 조립자에서는 찾을 수 없는 많은 특징들, 즉 카드 이미지 소스 데이터셋을 업데이트하라는 지시, 즉 공통적이고 암묵적인 정의를 가지고 있었다.SETA
조립 [11]변수
조립자 G
"Assembler G"는 Waterloo 대학교(Assembler F는 오픈 소스였다/is source)가 1970년대에 Assembler F를 수정한 세트다.개선사항은 대부분 입출력 처리 및 조립품의 속도를 상당히 높이는 버퍼링 개선에서 나타난다.[12]"Assembler G"는 결코 IBM 제품이 아니었다.
조립자 H
조립자 H 버전 2는 1981년에 발표되었으며 AMODE 및 RMODE 명령을 포함한 확장 아키텍처(XA)에 대한 지원을 포함한다.[13]: p.3–28 1994년 마케팅에서 철수했고 1995년 지원이 종료됐다.그것은 고급 조립공으로 대체되었다.[14]
조립자 XF
Assembler XF는 새로운 시스템/370 아키텍처 지침을 포함하는 Assembler F의 업그레이드된 제품이다.이 버전은 OS/VS 및 DOS/VS 시스템을 위한 공통 조립체를 제공한다.다른 변화들로는 표현과 매크로 처리에 대한 제한을 완화하는 것을 포함한다.조립자 XF는 최소 64KB(가상)의 파티션/지역 크기를 필요로 한다.권장 사이즈는 128KB이다.[15]: p.73
하이 레벨 조립기
1992년 면허 프로그램으로 발표된 HLASM(High Level Assembler, HLASM)은 "시스템/370(TM) 및 시스템/390(TM) 운영 환경의 기본 번역기가 된다"고 발표했다.조립자는 MVS, VSE 및 VM 운영 체제와 승계자를 지원한다.릴리즈 6을 기준으로 IBM Z의 Linux에서 실행할 수 있으며 ELF 또는 COP 오브젝트 파일을 생성할 수 있다.[16]주로 사용적합성 개선사항의 많은 목록을 특징으로 하며, 조립자 H에 대한 SLAC(Stanford Linear Accelerator) 수정사항을 포함하고 있다. 추가된 기능들 중에는CSECT
/DSECT
위치 카운터의 경우, 현재 활성화된 "사용" 레지스터 목록, 교차 참조에 변수가 읽혀지거나 기록되는지 여부를 나타내는 표시, 혼합 케이스 기호 이름 허용.[17]지침(읽기 전용 제어 섹션)은 조립자가 섹션 단위로 재진입을 확인할 수 있도록 한다. RSECT
HLASM은 2012년 현재 IBM 메인프레임 시스템의 현재 조립 업체다.[18]: p.43
전문 버전
IBM System/360 Model 44 PS 어셈블리
IBM System/360 Model 44 Programming System Assembler는 OS/360 및 DOS/360 조립자 언어의 "선택된 하위 집합"인 언어를 처리한다.스토리지-스토리지(SS) 명령이나 바이너리로 변환(Secondary)을 지원하지 않는다.CVB
), 십진법으로 변환한다().CVD
)), 직접 읽음 (RDD
) 및 직접 작성(WRD
) 지시사항.[19]모델 44에만 해당되는 4가지 지침: Change Priority Mask(우선순위 마스크 변경)가 포함되어 있다.CHPM
)), 특수 PSW 로딩(Load PSW Load Special)(LPSX
)), 직접 단어 읽기(RDDW
) 및 직접 단어 쓰기(WRDW
그것은 또한 다른 시스템의 유틸리티 프로그램에 의해 수행되는 기능인 소스 프로그램을 업데이트하기 위한 지시도 포함한다.SKPTO
,REWND
,NUM
,OMIT
그리고ENDUP
) 명명된 공통 및 암묵적으로 정의된 공통 기능을 제공한다.&SETA
기호도 있지만 일부 제한도 있다.[19]: pp.53, 73
IBM System/360 TSS 조립기
시스템/360 모델 67 시간 공유 시스템의 조립자는 고유한 TSS 기능을 지원하기 위한 지침에서 많은 차이가 있다.그PSECT
지시어는 프로그램에 의해 사용된 상호 접속 가능한 주소 상수와 수정 가능한 데이터를 포함하는 프로토타입 제어 섹션을 생성한다.[20]: p.143
비 IBM 조립자
특수 환경을 위한 IBM 호환 조립자가 여러 명 있었다.[21]
- 유니시스의 유니백 90/60, 90/70, 90/80 시리즈는 머신 시리즈가 S/360과 S/370과 유사한 작업이었기 때문에 IBM 형식 조립자를 받아들이도록 설계되었다.
- 후지쯔 BS2000 시리즈도 유니백과 같은 자원으로부터 370여 개의 워크리케이트로 제작되어, 유럽 일부 지역에서 여전히 사용되고 있다.[22]
- Dignus LLC Systems/ASM은 HLASM과 호환되는 조립자로, IBM 시스템에서 기본적으로 또는 교차 조립자로 실행할 수 있다.[23]
- 돈 히긴스가 쓴 프리웨어 PC/370은 이후 마이크로 포커스가 구입했다.
- z390은 Don Higgins가 작성한 조립자 및 System 390 에뮬레이터로 자바에서 프로그래밍되어 있다.오픈 소스로, http://www.z390.org/에서 이용할 수 있다.
- 펜 주립 대학교는 시스템 370 조립자와 통역을 포함하는 ASSE라는 패키지를 작성했다.
- Tachyon Software LLC는 Windows, Linux/x86, Linux for S/390 및 zSeries, AIX 및 Solaris에서 실행되는 Tachyon Assembler Workbench를 판매한다.[24]
- GNU Assembler(가스)는 OS/390 및 IBM Z 상의 Linux용 GNU Compiler Collection(gcc)의 일부다.이 조립자는 IBM 아키텍처의 다른 조립자와 호환되지 않는 고유한 구문을 가지고 있다.
참고 항목
- IBM 시스템/360
- 어셈블리 언어
- ASS 조립기
- PC 기반 IBM 호환 메인프레임 – 호환 가능한 시스템 또는 가상 시스템의 목록
- 디스어셈블러 – 조립 공정 역방향, 기계 코드에서 조립식 소스 재구성
참조
- ^ a b "HLASM - List of all Opcodes, Extended Mnemonics and Function Codes, Sorted by Mnemonic". Retrieved January 14, 2013.
- ^ IBM Corporation. IBM System/360 Principles of Operation (PDF). Retrieved Dec 6, 2018.
- ^ a b IBM Corporation (1965). IBM System/360 Basic Programming Support Basic Assembler Language (PDF).
- ^ IBM Corporation (1964). IBM 7090/7094 Support Package for IBM System/360 (PDF).
- ^ IBM Corporation (1965). IBM System/360 Basic Operating System Language Specifications Assembler ('16K Disk/Tape) (PDF).
- ^ 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. "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 (2008). High Level Assembler for Linux on zSeries User's Guide (PDF).
- ^ IBM Corporation. "Announcement Letter Number 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.
- ^ 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.
- ^ Fujitsu ASEMH 매뉴얼은 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 Programmer를 위한 일러스트레이션 가이드.공간 생성(2012).
외부 링크
![]() | 위키북스에는 360 조립이라는 주제에 관한 책이 있다. |