Microsoft ASL 컴파일러

Microsoft ASL(ACPI 원본 언어) 컴파일러 버전 5.0은 고급 구성 및 전원 인터페이스 사양, 수정 버전 5.0(ACPI 5.0 사양)의 기능을 지원합니다. ASL 컴파일러는 WDK(Windows 드라이버 키트)와 함께 배포됩니다.

WDK(Windows 드라이버 키트) 다운로드

ASL 컴파일러(asl.exe)는 설치된 WDK의 Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify 및 Tools\x64\ACPIVerify 디렉터리에 있습니다( 예 C:\Program Files (x86)\Windows Kits\10\Tools\<build #>\<build architecture>\ACPIVerify: ).

먼저 SDK를 설치한 다음 WDK를 설치해야 합니다. 두 키트의 빌드 번호가 일치해야 합니다.

명령줄 옵션

ASL 컴파일러는 여러 명령줄 옵션을 지원합니다. 버전 정보 및 사용 가능한 명령줄 옵션을 나열하려면 명령 프롬프트 창에서 "asl /?" 명령을 실행합니다.

ASL 컴파일러 사용

ASL 컴파일러는 다음 명령줄 옵션을 지원합니다.

asl /?
asl [/nologo] /d <BinFile>
asl [/nologo] /u [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <AMLFile>
asl [/nologo] /tab=<TabSig> [/c] [/Fa=<ASMfile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>]
asl [/nologo] [/Fo=<AMLFile>] [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <ASLFile>
옵션 Description
? 이 도움말 메시지를 인쇄합니다.
nologo 로고 배너를 표시하지 않습니다.
Fo=<AMLFile> DefinitionBlock에서 AML 파일 이름을 재정의합니다.
Fa=<ASMFile> 를 생성합니다. ASMFile>이라는 이름의 <ASM 파일입니다.
Fn=<NSDFile> 이름이 NSDFile인 <NameSpace Dump 파일을 생성합니다>.
d 이진 파일을 텍스트 형식으로 덤프합니다.
u AML 파일을 에 언어셈블합니다. ASL 파일(기본값) 또는 입니다. LST 파일.
tab=<TabSig> ASL 테이블을 로 언어셈블합니다. ASL 파일(기본값) 또는 입니다. LST 파일. 비 ASL 테이블을 .TXT 파일에 덤프합니다. TabSig>가 '*'이면 <모든 테이블이 ACPI.TXT 덤프됩니다. <TabSig> 는 테이블의 실제 주소일 수도 있습니다.
c 테이블에서 이진 파일을 만듭니다.

Microsoft ASL 컴파일러의 ACPI 테이블 로드 기능 사용

시스템 개발 중에 다양한 ACPI BIOS 구문을 시뮬레이션하고 개발 시스템에서 테스트하는 방법을 사용하는 것이 유용합니다. Windows 운영 체제를 사용하면 PC의 BIOS ROM 대신 Windows 레지스트리에서 특정 ACPI 테이블을 로드할 수 있습니다. 이 기능을 사용하려면 관리자 권한이 필요하며 시스템에서 테스트 서명을 사용하도록 설정해야 합니다. UEFI 보안 부팅을 지원하는 시스템의 경우 테스트 서명을 사용하도록 설정할 수 없으며 UEFI 보안 부팅을 사용하지 않도록 설정하거나 Windows 디버그 정책이 시스템에 설치되어 있지 않으면 컴파일러의 테이블 로드 기능을 사용할 수 없습니다.

테이블 로드 기능을 사용하려면 오버로드할 ACPI 테이블이 다음 요구 사항을 충족해야 합니다.

  • 오버로드할 테이블은 시스템의 BIOS ROM에 이미 있어야 합니다. instance 경우 DSDT를 오버로드할 수 있지만 컴퓨터에 SSDT가 없으면 이 레지스트리 재정의 메커니즘에서 SSDT를 강제로 로드할 수 없습니다.

  • 테이블에는 일반적으로 Windows ACPI 인터프리터(Acpi.sys 드라이버)에서 사용하는 AML 코드가 포함되어야 합니다.

  • 버전 번호가 가장 높은 테이블이 로드됩니다. 테스트를 위해 레지스트리에 로드된 테이블의 버전 번호는 BIOS ROM의 동일한 테이블보다 높아야 합니다.

  • 로드할 테이블은 AML(컴파일) 형식이어야 하며 올바른 매개 변수가 지정된 올바른 위치에 있는 레지스트리에 로드되어야 합니다. 여기에 설명된 메커니즘은 테이블을 로드하고 레지스트리를 구성하는 모든 측면을 처리하도록 설계되었습니다.

경고

이 항목에 설명된 프로세스는 Windows 시스템을 부팅할 수 없는 상태로 둘 수 있습니다. 여기에 설명된 절차를 시도하기 전에 동일한 컴퓨터에서 NTFS 파일 시스템 지원(즉, "안전한 빌드")을 사용하여 다른 운영 체제에 액세스할 수 있는지 확인합니다. 이 프로세스는 시스템 개발자 및 테스터만을 위해 제공되며 개발 또는 프로덕션 목적으로 중요한 컴퓨터에서는 사용하지 않아야 합니다.

ACPI 테이블 로드 사용량

테스트 목적으로 ACPI 테이블을 레지스트리에 로드하기 위해 ASL 컴파일러는 다음과 같이 호출됩니다.

asl.exe /loadtable [-v] [-d] <AMLFile>

여기서 AMLFile은 레지스트리에 로드할 테이블을 포함하는 컴파일된 AML 파일의 이름입니다.

옵션 Description
-v 자세한 정보 표시 모드. 유틸리티에서 추가 디버깅 출력을 켭니다.
-d 삭제합니다. 레지스트리에서 이전에 로드한 AML 파일을 제거하고 연결된 모든 레지스트리 키를 삭제합니다.

추가 리소스