as 명령
용도
소스 파일을 읽고 어셈블합니다.
구문
as [ -a Option [:Option] ] [ -o ObjectFile ] [ -n Name ] [ -u ] [ -l [ ListFile ]] [ -W | -w ] [ -x [ XCrossFile ] [ -s [ ListFile ]] [ -m ModeName ] [-M] [-Eoff|on ] [ -p off|on ] [ -i ] [ -v ] [ 파일 ]
설명
as 명령은 이름 붙여진 File(규약에 따라 이 파일은 .s 접미어로 끝남)을 읽고 어셈블합니다. File을 지정하지 않으면 as 명령은 표준 입력을 읽고 어셈블합니다. 기본적으로 해당 출력은 a.out 이름의 파일에 저장됩니다. 출력은 XCOFF 파일 형식으로 저장됩니다.
as 명령의 모든 플래그는 선택사항입니다.
플래그
-a Option[:Option]
어셈블러 옵션을 지정합니다. 다음 옵션이 정의됩니다.
- 32
- 32비트모드에서 소스 파일을 어셈블하십시오. 이것이 디폴트 모드입니다. OBJECT_MODE 환경 변수를 사용하여 이 모드를 지정할 수도 있습니다.
- 64
- 64비트모드에서 소스 파일을 어셈블하십시오. OBJECT_MODE 환경 변수를 사용하여 이 모드를 지정할 수도 있습니다.
- align-접두부-csect= < yes/no>
- 필요한 경우 접두부가 있는 명령어를 포함하는 제어 섹션 (csect) 의 정렬이 최소한 64바이트경계로 증가되는지 여부를 지정합니다. 64바이트는 어셈블된 프로그램이 링크될 때 접두부가 있는 명령어가 올바르게 정렬되도록 하는 최소 정렬입니다. align-prefixed-csect 옵션에 yes 를 지정하면 필요한 경우 접두부가 있는 지시사항을 포함하는 csects의 맞추기가 늘어납니다. align-prefixed-csect 옵션에 no 를 지정하고 -w 플래그가 명령행에서 사용되는 경우, 접두부가 있는 명령어가 충분히 엄격하지 않은 맞추기를 사용하는 csect의 일부인 경우 경고 메시지가 표시됩니다. 자세한 정보는 .align pseudo-op를 참조하십시오.
- align-접두부-op= < yes/no>
접두부가 있는 명령어가 64바이트경계를 넘을 때 no-op 명령어를 갖는 명령어를 선행하여 접두부가 있는 명령어가 정렬되는지 여부를 지정합니다. align-prefixed-op 옵션에 대해 yes 를 지정하면 필요한 경우 접두부가 있는 지시사항이 정렬됩니다. align-prefixed-op 옵션에 no 를 지정하고 명령행에서 -w 플래그가 사용되는 경우 접두부가 있는 명령어가 64바이트경계를 넘으면 경고 메시지가 표시됩니다. 자세한 정보는 .align pseudo-op를 참조하십시오.
-a 매개변수를 사용하여 여러 옵션을 지정할 수 있습니다. 충돌하는 플래그를 지정하면 후속 플래그가 선행 플래그를 대체합니다. 다음 예에 표시된 대로 -a 매개변수를 사용하여 콜론으로 구분된 여러 옵션을 지정할 수 있습니다.-a 64:align-prefixed-csect=no- -l[ListFile]
- 어셈블러 리스트를 생성합니다. 파일 이름을 지정하지 않으면,
소스 파일 이름의 접미어 확장자를 .lst로 대체한 이름이
디폴트 이름이 됩니다. 관례적으로 소스 파일 접미어는 .s입니다. 예를 들어 다음과 같습니다.이 경우 다음과 같은 디폴트 이름을 생성합니다.
sourcefile.xyz소스 코드가 표준 입력으로부터 발생하고 어셈블러 리스트 파일 이름을 지정하지 않고 -l 플래그를 사용하면, 리스트 파일 이름은 a.lst입니다.sourcefile.lst - -m ModeName
- 어셈블리 모드를 나타냅니다. 이 플래그는 .machine
의사 조작(pseudo-op)보다 우선순위가 낮습니다.
이 플래그가 사용되지 않으며 어떠한 .machine 의사 조작도 소스 프로그램에 표시되지 않으면, 디폴트 어셈블리 모드가 사용됩니다. 기본 어셈블리 모드는 POWER®제품군/PowerPC® 교차점을 대상 환경으로 사용하지만 모든 POWER제품군/PowerPC 비호환성 오류( POWER제품군/PowerPC 교차점을 벗어난 명령어 및 잘못된 형식 오류 포함)를 명령어 경고로 처리합니다.
유효하지 않은 어셈블리 모드가 지정되고 소스 프로그램에 .machine 의사 연산이 없으면, 오류가 통보되고 디폴트 어셈블리 모드가 어셈블러의 패스 1에서 명령어의 유효성 확인을 위하여 사용됩니다.
-m 플래그를 사용하는 경우 ModeName 변수는 다음 값 중 하나를 지정할 수 있습니다.- ""
- POWER제품군/PowerPC 교집합을 대상 환경으로 하는 기본 어셈블리 모드를 명시적으로 지정하지만, POWER제품군/PowerPC 교집합을 벗어난 명령어와 잘못된 형식 오류는 명령어 경고로 처리합니다. -m과 널(null) 문자열 인수 사이에 공백이 있어야 합니다(두 개의 이중 인용 부호).
- com
- POWER제품군/PowerPC 교차 모드를 지정합니다. 소스 프로그램에는 POWER 제품군과 PowerPC 모두에 공통된 명령어만 포함할 수 있으며, 그 외의 명령어는 오류를 유발합니다. 유효하지 않은
형식의 명령어를 사용하면 오류가 발생하고, 어셈블리 프로세스는 중단되고, 그리고 오브젝트 코드가 생성되지 않습니다.
32비트 모드에서 어셈블할 때 기본값입니다.
주: 특정 POWER 계열 지침은 PowerPC 601 RISC 마이크로프로세서에서 지원되지만 PowerPC 구조를 준수하지 않습니다. 이 명령어는 com 어셈블리 모드를 사용할 때 오류 원인이 됩니다. - any
- 혼합 모드를 지정합니다. 어셈블러는 그 구조에 상관없이,
모든 식별 가능한 명령어에 대해 오브젝트 코드를 작성합니다. 이 모드는 주로 운영 체제 개발과 테스트 및 디버깅 목적으로 사용됩니다.참고: 모든 POWER 계열 및 PowerPC 비호환성 오류는 모든 어셈블리 모드를 사용할 때 무시되며 경고가 생성되지 않습니다.
- ppc
- PowerPC64비트 모드를 지정합니다. 소스 프로그램에는 PowerPC 명령어만 포함할 수 있습니다. 다른 명령어를 사용하면 오류가 발생합니다.참고:
- PowerPC 선택적 명령어는 모든 PowerPC 프로세서에서 구현되지 않으며 ppc 모드에 속하지 않습니다. ppc 어셈블리 모드를 사용하여 어셈블되는 소스 프로그램에 이 명령어가 표시되면 오류를 생성합니다.
- 특정 지침은 PowerPC 구조를 준수하지만 PowerPC 601 RISC 마이크로프로세서에서 지원되지 않습니다.
- ppc64
- PowerPC64비트 모드를 지정합니다. 소스 프로그램에는 64비트 PowerPC 명령어가 포함될 수 있습니다.
64비트 모드에서 어셈블할 때 기본값입니다.
- pwr
- POWER 모드를 지정합니다. 소스 프로그램은 POWER 구조의 POWER 구현에 유효한 명령어만 포함할 수 있습니다.
- pwr2 또는 pwrx
- POWER2 모드를 지정합니다. 소스 프로그램에는 POWER 아키텍처의 POWER2 구현에 유효한 지시사항만 포함될 수 있습니다. pwr2는 선호되는
값입니다. 대체 어셈블리 모드 값 pwrx는 pwr2가
나타내는 의미와 같습니다.참고: POWER 구현 명령어 세트는 POWER2 구현 명령어 세트의 서브세트입니다.
- pwr4 또는 620
- PowerPC64 모드를 지정합니다. 소스 프로그램은 POWER4 호환 가능 프로세서에 유효한 명령어만 포함할 수 있습니다.
- 601
- PowerPC 601 RISC 마이크로프로세서 모드를 지정합니다. 소스 프로그램에는 PowerPC 601 RISC 마이크로프로세서에 유효한 명령어만 포함될 수 있습니다.
PowerPC 601 RISC 마이크로프로세서 설계는 POWER 프로세서 기반 플랫폼이전에 완료되었습니다. 일부 PowerPC 명령어는 PowerPC 601 RISC 마이크로프로세서에서 지원되지 않습니다.
주의: PowerPC 601 RISC 마이크로프로세서 는 POWER Architecture 및 PowerPC 아키텍처에 포함되지 않은 일부 POWER 제품군 지시사항을 구현합니다. 이를 통해 기존 POWER 응용프로그램을 PowerPC 프로세서 기반 시스템에서 허용 가능한 성능으로 실행할 수 있습니다.PowerPC 601 RISC 마이크로프로세서 는 POWER 프로세서 기반 플랫폼 을 구현하며 일부 POWER 제품군 지시사항은 POWER 프로세서 기반 플랫폼에 포함되어 있지 않습니다. 이를 통해 기존 POWER 응용프로그램을 POWER 프로세서 기반 시스템에서 허용 가능한 성능으로 실행할 수 있습니다.
- 603
- PowerPC 603 RISC 마이크로프로세서 모드를 지정합니다. 소스 프로그램에는 PowerPC 603 RISC 마이크로프로세서에 유효한 명령어만 포함될 수 있습니다.
- 604
- PowerPC 604 RISC 마이크로프로세서 모드를 지정합니다. 소스 프로그램에는 PowerPC 604 RISC 마이크로프로세서에 유효한 명령어만 포함될 수 있습니다.
- ppc970 또는 970
- PowerPC 970 모드를 지정합니다. 소스 프로그램은 PowerPC 970 호환 가능 프로세서에 유효한 명령어만 포함할 수 있습니다.
- A35
- A35 모드를 지정합니다. 소스 프로그램은 A35에 대해 유효한 명령어만 포함할 수 있습니다.
- pwr5
- POWER5 모드를 지정합니다. 소스 프로그램에는 POWER5 호환 가능 프로세서에 유효한 명령어만 포함될 수 있습니다.
- pwr5x
- POWER5+ 모드를 지정합니다. 소스 프로그램에는 POWER5+ 호환 가능 프로세서에 유효한 명령어만 포함될 수 있습니다.
- pwr6
- POWER6 모드를 지정합니다. 소스 프로그램은 POWER6 호환 가능 프로세서에 유효한 명령어만 포함할 수 있습니다.
- pwr6e
- POWER6+ 모드를 지정합니다. 소스 프로그램은 POWER6+ 호환 가능 프로세서에 유효한 명령어만 포함할 수 있습니다.
- pwr7
- POWER7 모드를 지정합니다. 소스 프로그램은 POWER7 호환 가능 프로세서에 유효한 명령어만 포함할 수 있습니다.
- pwr8
- POWER8 모드를 지정합니다. 소스 프로그램은 POWER8 호환 가능 프로세서에 유효한 명령어만 포함할 수 있습니다.
- pwr9
- POWER9 모드를 지정합니다. 소스 프로그램은 POWER9 호환 가능 프로세서에 유효한 명령어만 포함할 수 있습니다.
pwr10
POWER10 모드를 지정합니다. 소스 프로그램에는 POWER10 호환 프로세서에 유효한 명령어만 포함할 수 있습니다.
- -M
- 입력 파일에 나열된 명령에 대해 유효한 어셈블리 모드를 나열하거나
지정된 어셈블리 모드에 유효한 명령어를 나열합니다.
-m 플래그와 함께 사용하는 경우 어셈블러는 -m 플래그로 지정된 어셈블리 모드에서 유효한 모든 명령어를 나열합니다. 명령행에 지정된 다른 모든 플래그가 유효해야 하지만, 이들은 무시됩니다. 입력 파일도 무시됩니다.
-m 플래그 없이 사용하는 경우 어셈블러는 지정된 입력 파일에서 또는 입력 파일을 지정하지 않은 경우 표준 입력에서 행을 읽습니다. 명령행에 지정된 다른 모든 플래그가 유효해야 하지만, 이들은 무시됩니다. 입력 행이 유효한 명령어 니모닉으로 시작된 경우 어셈블러는 명령어가 유효한 모든 어셈블리 모드를 인쇄합니다. 행이 레이블로 시작되면 유효한 명령어인지 행을 검사하기 전에 레이블이 제거됩니다. 유효한 명령어로 시작되지 않는 행은 무시됩니다. 대부분의 유효한 어셈블러 소스 파일은 -M 플래그를 사용할 때 명령어 니모닉이 피연산자에서 공백으로 분리되는 한, 입력 파일로 사용 가능합니다.
주: 어셈블러는 -M 플래그가 사용될 때 오브젝트 파일을 생성하지 않습니다. - -n 이름
- 어셈블러 리스트의 헤더에 나타나는 이름을 지정합니다. 기본적으로, 헤더에는 어셈블러 소스 파일의 이름이 있습니다.
- -o ObjectFile
- 어셈블리 프로세스의 출력을 a.out 파일 대신 지정된 파일에 기록합니다.
- -s[ListFile]
- POWER 계열 및 PowerPC 에 대한 니모닉 상호 참조가 어셈블러 목록에 포함되는지 여부를 표시합니다. 이 플래그를 생략하면, 니모닉 상호 참조는 생성되지 않습니다. 이 플래그를 사용하는 경우, 소스에 PowerPC 니모닉이 포함되어 있으면 어셈블러 목록에 POWER family 니모닉이 포함되고 소스에 POWER family 니모닉이 포함되어 있으면 PowerPC 니모닉이 포함됩니다.
니모닉 상호 참조는 POWER 제품군과 PowerPC의 니모닉이 다르지만 연산 코드, 기능 및 입력 피연산자 형식이 동일한 명령어로 제한됩니다.
-s 플래그는 어셈블러 리스트 형식을 변경하는 데 사용되므로, -l 플래그를 수반합니다. 두 옵션 플래그가 모두 사용되고 다른 어셈블러 목록 파일 이름( ListFile 변수로 지정)이 지정되면 -l 플래그와 함께 사용된 ListFile 변수에 지정된 목록 파일 이름이 사용됩니다. 어셈블러 리스트 파일 이름이 -l 또는 -s 플래그와 함께 지정되지 않으면, 디폴트 어셈블러 리스트 파일 이름은 소스 파일 이름의 접미어 확장자를 .lst로 대체하여 생성됩니다.
- -u
- 오류 메시지가 표시되지 않도록 정의되지 않은 기호를 extern으로 승인합니다. 그렇지 않으면, 정의되지 않은 기호에 대해서 오류 메시지가 플래그됩니다.
- -W
- 지시사항 경고 메시지 ( POWER 제품군 및 PowerPC 비호환성 경고) 를 포함하여 모든 경고 메시지 보고를 끕니다.
- -w
- 지시적 경고 메시지 ( POWER 제품군 및 PowerPC 비호환성 경고) 의 보고를 포함하여 경고 메시지 보고를 켭니다.참고: -W 또는 -w 가 지정되지 않으면 지시 경고가 보고되지만 다른 경고는 억제됩니다.
- -x[XCrossFile]
- 상호 참조 출력을 생성합니다. 파일 이름을 지정하지 않으면,
소스 파일 이름의 접미어 확장자를 .xref로 대체한 이름이
디폴트 이름이 됩니다. 관례적으로 접미어는 .s입니다. 예를 들어 다음과 같습니다.
sourcefile.xyz이 경우 다음과 같은 디폴트 이름을 생성합니다.sourcefile.xref참고: -x 플래그를 사용하면 어셈블러는 객체 파일을 생성하지 않습니다. - -E
- 새 v2.00 구문 (
-Eon) 으로 인한 오류를 보고할지 또는 무시할지 (-Eoff) 여부를 지정합니다. 기본적으로 v2.00 오류는 무시됩니다. - -p
- 새로운 v2.00 분기 예측(
-pon)을 사용할지 또는 이전 v2.00 분기 예측(-poff)을 사용할지 여부를 지정합니다. 기본적으로 이전 v2.00 분기 예측이 사용됩니다. - -i
- 분기 예측 접미어가 인코딩되도록 지정합니다. 기본적으로 이 옵션은 설정되지 않습니다. 이 옵션은 -p 옵션이 지정된 경우에 무시됩니다.
- -v
- 이 명령의 버전 번호를 표시합니다.
- file
- 소스 파일을 지정합니다. 파일을 지정하지 않으면, 표준 입력으로부터 소스 코드를 가져옵니다.
환경 변수
- 오브젝트 모드
- 어셈블러는 OBJECT_MODE 환경 변수의 설정을 따릅니다. -a32 또는 -a64 중 어느 것도 사용되지 않으면, 이 변수에 대해
환경을 검사합니다. 변수의 값이 다음 테이블에 나열된 값 이외의 값이면,
오류 메시지가 생성되고 어셈블러는 0이 아닌 리턴 코드를 가지고
종료합니다. 유효한 설정에 해당하는 동작은 다음과 같습니다.
- 오브젝트 모드 = 32
- 32비트 오브젝트 코드를 생성합니다. 디폴트 머신 설정은 com입니다.
- 오브젝트 모드 = 64
- 64비트 오브젝트 코드(XCOFF64 파일)를 작성합니다. 디폴트 머신 설정은 ppc64입니다.
- 오브젝트 모드 = 32_64
- 유효하지 않습니다.
- OBJECT_MODE = 기타
- 유효하지 않습니다.
예
- file.lst라는 이름의 리스트 파일과 file.o라는
이름의 오브젝트 파일을 생성하려면 다음과 같이 입력하십시오.
as -l -o file.o file.s - 601프로세서에서 실행되는 file.o 라는 오브젝트 파일을 생성하고 file.lst라는 어셈블러 목록 파일에서 POWER family 및 PowerPC 니모닉에 대한 상호 참조를 생성하려면 다음을 입력하십시오.
as -s -m 601 -o file.o file.s - 디폴트 어셈블리 모드를 사용하여 file.o 오브젝트 파일을 생성하고
니모닉 상호 참조 없이 xxx.lst 어셈블러 리스트 파일을 생성하려면 다음을 입력하십시오.
as -lxxx.lst -o file.o file.s
파일
- /usr/ccs/bin/as
- as 명령을 포함합니다.
- a.out
- 디폴트 출력 파일입니다.