Microsoft ASL 编译器

Microsoft ACPI 源语言 (ASL) 编译器版本 5.0 支持高级配置和电源接口规范修订版 5.0(ACPI 5.0 规范)中的功能。 ASL 编译器随 Windows 驱动程序工具包 (WDK) 一起分发。

下载 Windows 驱动程序工具包 (WDK)

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>
选项 说明
打印此帮助消息。
nologo 禁止显示徽标横幅。
Fo=<AMLFile> 重写 DefinitionBlock 中的 AML 文件名。
Fa=<ASMFile> 生成一个名为 <ASMFile> 的 .ASM 文件。
Fn=<NSDFile> 生成一个名为 <NSDFile> 的命名空间转储文件。
d 以文本形式转储二进制文件。
u 将 AML 文件取消汇编到 .ASL 文件(默认值)或 .LST 文件。
tab=<TabSig> 将 ASL 表取消汇编到 .ASL 文件(默认值)或 .LST 文件。 将非 ASL 表转储到 .TXT 文件。 如果 <TabSig> 为“*”,则会将所有表转储到 ACPI.TXT。 <TabSig> 也可以是表的物理地址。
c 从表创建二进制文件。

使用 Microsoft ASL 编译器的 ACPI-table-load 功能

在系统开发期间,有一种方法可以模拟各种 ACPI BIOS 结构并在开发系统上测试。 Windows 操作系统允许从 Windows 注册表(而不是 PC 的 BIOS ROM)加载某些 ACPI 表。 使用此功能需要管理员权限,还需要在系统上启用测试签名。 在支持 UEFI 安全启动的系统中,无法启用测试签名,并且除非禁用 UEFI 安全启动或在系统上安装 Windows 调试策略,否则无法使用编译器的表加载功能。

若要使用表加载功能,要重载的 ACPI 表必须满足以下要求:

  • 要重载的表必须已存在于系统的 BIOS ROM 中。 例如,DSDT 可以重载;但是,如果计算机没有 SSDT,则无法强制从此注册表替代机制加载 SSDT。

  • 该表必须包含 Windows ACPI 解释器(Acpi.sys 驱动程序)常用的 AML 代码。

  • 加载版本号最高的表。 加载到注册表中进行测试的表的版本号必须高于 BIOS ROM 中的同一个表。

  • 要加载的表必须采用编译 (AML) 格式,并加载到注册表中的正确位置,同时指定正确的参数。 所述的机制旨在处理加载表和配置注册表的所有方面。

警告

本主题中所述的过程可能会使 Windows 系统处于不可启动状态。 在尝试此处概述的过程之前,请确保有权访问同一台计算机上具有 NTFS 文件系统支持(即“安全生成”)的另一个操作系统。 此过程仅适用于系统开发人员和测试人员,不应在任何对于开发或生产目的至关重要的计算机上使用。

ACPI-table-load 用法

若要将 ACPI 表加载到注册表中用作测试,将按如下所示调用 ASL 编译器:

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

其中,AMLFile 是编译的 AML 文件的名称,其中包含要加载到注册表中的表。

选项 说明
-v 详细模式。 打开实用工具的额外调试输出。
-d 删除。 从注册表中删除以前加载的 AML 文件,并删除所有关联的注册表项。

更多资源