持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情
简介
在这一篇文章中简单说下什么是ACPI的源语言,简写为ASL。ASL 是一种定义 ACPI 对象的源语言,包括编写ACPI控制方法。OEM厂商和BIOS开发人员在ASL中定义对象和编写控制方法,然后使用翻译工具(编译器)来生成ACPI机器语言(AML)版本的控制方法。关于AML的相关定义,请期待下一篇ACPI机器语言(AML)规范。
一、什么是ASL
AML和ASL是不同的语言,尽管它们密切相关。每个兼容ACPI的操作系统都必须支持AML。一个特定的用户可以定义一些任意的源语言(以取代ASL),并写一个工具来把它翻译成AML。
一个 OEM 或 BIOS 供应商需要编写 ASL,并能够单步 AML 进行调试。(调试器和类似的工具应该是AML级工具,而不是源码级工具)。一个ASL翻译器实现者必须了解如何阅读ASL和生成AML。一个AML解释器作者必须了解如何执行AML。
一个完整的ASL参考资料,其中包括每个ASL运算符:运算符的调用语法,每个参数的类型,以及运算符的动作和使用说明。每个参数的类型,以及对操作符的动作和使用的描述。
二、ASL语法
ASL语法,它是正式的ASL规范,同时也是一个快速参考。
- 多个空白和一个空白是一样的。空白,(,),','和换行都是标记的分隔符。
- //标志着一个注释的开始,它从//继续到行的末端。
- /*标志着一个注释的开始,从/到下一个/。
- ""(引号)包围一个ASCII字符串。
- 数字常数可以用三种方式书写:普通十进制、八进制(使用Oddd)或 十六进制,使用符号Oxdd。
- Nothing表示一个空项。例如,{ Nothing }等同于{}。
Object := ObjectType FixedList VariableList;
三、完结
本文完结,下一篇讲AML。