ACPI 中文文档ACPI 中文文档
首页
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
第 19 章
第 20 章
第 21 章
附录 A
首页
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
第 19 章
第 20 章
第 21 章
附录 A
  • 第 20 章

    • 总览
    • 20.1. 记号约定
    • 20.2. AML 语法定义
    • 20.3. AML 字节流字节值
    • 20.4. 命名空间中名称的 AML 编码

20. ACPI 机器语言(AML)规范

本章正式定义 ACPI 机器语言(AML),它是在兼容 ACPI 的操作系统上用于 ACPI 控制方法的虚拟机语言。ACPI 控制方法可以直接用 AML 编写,但人们通常使用 ASL 编写,然后再编译为 AML。

AML 是由 ACPI AML 解释器处理的语言。它主要是一种声明式语言。最好不要将其视为代码流,而应将其视为一组声明,这些声明会由 ACPI AML 解释器在定义块加载时编译到 ACPI 命名空间中。例如,请注意,DefByte 在 ACPI 命名空间中分配了一个具有字节大小初始值的匿名整数变量,并传入一个初始值。AML 流中用于定义该初始值的字节并不是变量存储位置的地址。

OEM 或平台固件供应商需要编写 ASL,并且能够以单步方式执行 AML 以进行调试。(调试器和其他 ACPI 控制方法语言工具预计应是 AML 级工具,而不是源代码级工具。)ASL 翻译器实现者必须理解如何读取 ASL 并生成 AML。AML 解释器作者必须理解如何执行 AML。

AML 和 ASL 是不同的语言,尽管它们关系密切。

所有兼容 ACPI 的操作系统都必须支持 AML。给定用户可以定义某种任意源语言(用于替代 ASL),并编写工具将其翻译为 AML。但是,ACPI 工作组将支持单一语言 ASL 的单一翻译器。

小节

  • 20.1. 记号约定
  • 20.2. AML 语法定义
  • 20.3. AML 字节流字节值
  • 20.4. 命名空间中名称的 AML 编码
Next
20.1. 记号约定