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
  • 第 19 章

    • 总览
    • 19.1. ASL 2.0 符号运算符和表达式
    • 19.2. ASL 语言语法
      • 19.2.1. ASL 语法表示法
      • 19.2.2. ASL 名称和路径名项
      • 19.2.3. ASL 根项和次级项
      • 19.2.4. ASL 数据和常量项
      • 19.2.5. ASL 操作码项
      • 19.2.6. ASL 基本(终结)项
        • 19.2.6. ASL 基本(终结)项
        • 19.2.6. ASL 基本(终结)项(续 2)
      • 19.2.7. ASL 参数关键字项
      • 19.2.8. ASL 资源模板项
    • 19.3. ASL 概念
      • 19.3.1. ASL 名称
      • 19.3.2. ASL 字面常量
      • 19.3.3. ASL 资源模板
      • 19.3.4. ASL 宏
      • 19.3.5. ASL 数据类型
    • 19.4. ASL 运算符摘要
    • 19.5. 按类型划分的 ASL 操作符摘要
    • 19.6. ASL 运算符参考
      • 19.6.1. AccessAs(更改字段单元访问)
      • 19.6.2. Acquire(获取互斥量)
      • 19.6.3. Add(整数加法)
      • 19.6.4. Alias(声明名称别名)
      • 19.6.5. And(整数按位与)
      • 19.6.6. Argx(方法参数数据对象)
      • 19.6.7. BankField(声明 Bank/Data 字段)
      • 19.6.8. Break(从 While 中中断)
      • 19.6.9. BreakPoint(执行断点)
      • 19.6.10. Buffer(声明缓冲区对象)
      • 19.6.11. Case(用于条件执行的情况表达式)
      • 19.6.12. Concatenate(连接数据)
      • 19.6.13. ConcatenateResTemplate(连接资源模板)
      • 19.6.14. CondRefOf(有条件地创建对象引用)
      • 19.6.15. Connection(声明字段连接属性)
      • 19.6.16. Continue(继续最内层外围 While)
      • 19.6.17. CopyObject(复制并存储对象)
      • 19.6.18. CreateBitField(创建 1 位缓冲区字段)
      • 19.6.19. CreateByteField(创建 8 位缓冲区字段)
      • 19.6.20. CreateDWordField(创建 32 位缓冲区字段)
      • 19.6.21. CreateField(创建任意长度缓冲区字段)
      • 19.6.22. CreateQWordField(创建 64 位缓冲区字段)
      • 19.6.23. CreateWordField(创建 16 位缓冲区字段)
      • 19.6.24. CSI2Bus(CSI-2 串行总线连接资源描述符宏)
      • 19.6.25. DataTableRegion(创建数据表操作区域)
      • 19.6.26. Debug(调试器输出)
      • 19.6.27. Decrement(整数递减)
      • 19.6.28. Default(Switch 中的默认执行路径)
      • 19.6.29. DefinitionBlock(声明定义块)
      • 19.6.30. DerefOf(解引用对象引用)
      • 19.6.31. Device(声明设备包)
      • 19.6.32. Divide(整数除法)
      • 19.6.33. DMA(DMA 资源描述符宏)
      • 19.6.34. DWordIO(DWord I/O 资源描述符宏)
      • 19.6.35. DWordMemory(DWord 内存资源描述符宏)
      • 19.6.36. DWordSpace(DWord 空间资源描述符宏)
      • 19.6.37. EISAID(EISA ID 字符串到整数转换宏)
      • 19.6.38. Else(替代执行)
      • 19.6.39. ElseIf(替代/条件执行)
      • 19.6.40. EndDependentFn(结束依赖功能资源描述符宏)
      • 19.6.41. Event(声明事件同步对象)
      • 19.6.42. ExtendedIO(扩展 IO 资源描述符宏)
      • 19.6.43. ExtendedMemory(扩展 Memory 资源描述符宏)
      • 19.6.44. ExtendedSpace(扩展地址空间资源描述符宏)
      • 19.6.45. External(声明外部对象)
      • 19.6.46. Fatal(致命错误检查)
      • 19.6.47. Field(声明字段对象)
      • 19.6.48. 查找最左侧置位位
      • 19.6.49. 查找最右侧置位位
      • 19.6.50. FixedDMA(DMA 资源描述符宏)
      • 19.6.51. FixedIO(固定 IO 资源描述符宏)
      • 19.6.52. For(条件循环)
      • 19.6.53. Fprintf(创建并存储格式化字符串)
      • 19.6.54. FromBCD(将 BCD 转换为 Integer)
      • 19.6.55. Function(声明控制方法)
      • 19.6.56. GpioInt(GPIO 中断连接资源描述符宏)
      • 19.6.57. GpioIo(GPIO 连接 IO 资源描述符宏)
      • 19.6.58. I2CSerialBusV2(I2C 串行总线连接资源描述符(版本 2)宏)
      • 19.6.59. If(条件执行)
      • 19.6.60. Include(包含附加 ASL 文件)
      • 19.6.61. Increment(整数递增)
      • 19.6.62. Index(成员对象的索引引用)
      • 19.6.63. IndexField(声明索引/数据字段)
      • 19.6.64. Interrupt(中断资源描述符宏)
      • 19.6.65. IO(IO 资源描述符宏)
      • 19.6.66. IRQ(中断资源描述符宏)
      • 19.6.67. IRQNoFlags(中断资源描述符宏)
      • 19.6.68. LAnd(逻辑与)
      • 19.6.69. LEqual(逻辑等于)
      • 19.6.70. LGreater(逻辑大于)
      • 19.6.71. LGreaterEqual(逻辑大于或等于)
      • 19.6.72. LLess(逻辑小于)
      • 19.6.73. LLessEqual(逻辑小于或等于)
      • 19.6.74. LNot(逻辑非)
      • 19.6.75. LNotEqual(逻辑不等于)
      • 19.6.76. Load(加载定义块)
      • 19.6.77. LoadTable(从 XSDT 加载定义块)
      • 19.6.78. Localx(方法局部数据对象)
      • 19.6.79. LOr(逻辑或)
      • 19.6.80. Match(查找对象匹配)
      • 19.6.81. Memory24(内存资源描述符宏)
      • 19.6.82. Memory32(内存资源描述符宏)
      • 19.6.83. Memory32Fixed(内存资源描述符宏)
      • 19.6.84. Method(声明控制方法)
      • 19.6.85. Mid(提取 Buffer 或 String 的一部分)
      • 19.6.86. Mod(整数取模)
      • 19.6.87. Multiply(整数乘法)
      • 19.6.88. Mutex(声明同步/互斥对象)
      • 19.6.89. Name(声明命名对象)
      • 19.6.90. NAnd(整数按位 NAND)
      • 19.6.91. NoOp Code(空操作)
      • 19.6.92. NOr(整数按位 NOR)
      • 19.6.93. Not(整数按位取反)
      • 19.6.94. Notify(通知对象发生事件)
      • 19.6.95. Offset(更改当前字段单元偏移)
      • 19.6.96. ObjectType(获取对象类型)
      • 19.6.97. One(常量值为一的整数)
      • 19.6.98. Ones(全 1 常量整数)
      • 19.6.99. OperationRegion(声明操作区域)
      • 19.6.100. Or(整数按位或)
      • 19.6.101. Package(声明 Package 对象)
      • 19.6.102. PinConfig(引脚配置描述符宏)
      • 19.6.103. PinFunction(引脚功能描述符宏)
      • 19.6.104. PinGroup(引脚组描述符宏)
      • 19.6.105. PinGroupConfig(引脚组配置描述符宏)
      • 19.6.106. PinGroupFunction(引脚组功能配置描述符宏)
      • 19.6.107. PowerResource(声明电源资源)
      • 19.6.108. Printf(创建并存储格式化字符串)
      • 19.6.109. QWordIO(QWord IO 资源描述符宏)
      • 19.6.110. QWordMemory(QWord Memory 资源描述符宏)
      • 19.6.111. QWordSpace(QWord 空间资源描述符宏)
      • 19.6.112. RawDataBuffer(原始数据缓冲区)
      • 19.6.113. RefOf(创建对象引用)
      • 19.6.114. Register(通用寄存器资源描述符宏)
      • 19.6.115. Release(释放 Mutex 同步对象)
      • 19.6.116. Reset(重置 Event 同步对象)
      • 19.6.117. ResourceTemplate(资源到缓冲区转换宏)
      • 19.6.118. Return(从方法执行中返回)
      • 19.6.119. Revision(常量修订整数)
      • 19.6.120. Scope(打开命名作用域)
      • 19.6.121. ShiftLeft(整数左移)
      • 19.6.122. ShiftRight(整数右移)
      • 19.6.123. Signal(发出同步 Event 信号)
      • 19.6.124. SizeOf(获取数据对象大小)
      • 19.6.125. Sleep(毫秒休眠)
      • 19.6.126. SPISerialBusV2(SPI 串行总线连接资源描述符(版本 2)宏)
      • 19.6.127. Stall(短时间停顿)
      • 19.6.128. StartDependentFn(起始依赖函数资源描述符宏)
      • 19.6.129. StartDependentFnNoPri(起始依赖函数资源描述符宏)
      • 19.6.130. Store(存储对象)
      • 19.6.131. Subtract(整数减法)
      • 19.6.132. Switch(根据表达式选择要执行的代码)
      • 19.6.133. ThermalZone(声明热区)
      • 19.6.134. 定时器(获取 64 位定时器值)
      • 19.6.135. ToBCD(将整数转换为 BCD)
      • 19.6.136. ToBuffer(将数据转换为 Buffer)
      • 19.6.137. ToDecimalString(将数据转换为十进制字符串)
      • 19.6.138. ToHexString(将数据转换为十六进制字符串)
      • 19.6.139. ToInteger(将数据转换为整数)
      • 19.6.140. ToPLD(创建 _PLD Buffer 对象)
      • 19.6.141. ToString(将 Buffer 转换为 String)
      • 19.6.142. ToUUID(将字符串转换为 UUID 宏)
      • 19.6.143. UARTSerialBusV2(UART 串行总线连接资源描述符版本 2 宏)
      • 19.6.144. Unicode(字符串到 Unicode 转换宏)
      • 19.6.145. VendorLong(长厂商资源描述符)
      • 19.6.146. VendorShort(短厂商资源描述符)
      • 19.6.147. Wait(等待同步事件)
      • 19.6.148. While(条件循环)
      • 19.6.149. WordBusNumber(Word 总线编号资源描述符宏)
      • 19.6.150. WordIO(Word IO 资源描述符宏)
      • 19.6.151. WordSpace(Word Space 资源描述符宏)
      • 19.6.152. XOr(整数按位异或)
      • 19.6.153. Zero(常量零整数)

19.2.6. ASL 基本(终结)项

> AccessAsTerm := > > > AccessAs ( > > AccessType, // AccessTypeKeyword > > AccessAttribute // Nothing | ByteConstExpr | AccessAttribKeyword | ExtendedAccessAttribTerm > > )

> AcquireTerm := > > > Acquire ( > > SyncObject, // SuperName => Mutex > > TimeoutValue // WordConstExpr > > ) => Boolean // True 表示操作超时且未获取到 Mutex

> AddCompoundTerm := > > > Addend1-Result // TermArg => Integer => Target += Addend2 // TermArg => Integer => Integer

> AddSymbolicTerm := > > > Addend1 // TermArg => Integer + Addend2 // TermArg => Integer => Integer

> AddTerm := > > > Add ( > > Addend1, // TermArg => Integer > > Addend2, // TermArg => Integer > > Result // Target > > ) => Integer

> AliasTerm := > > > Alias ( > > SourceObject, // NameString > > AliasObject // NameString > > )

> AndCompoundTerm := > > > Source1-Result // TermArg => Integer => Target > > &= > > Source2 // TermArg => Integer > > => Integer

> AndSymbolicTerm := > > > Source1 // TermArg => Integer > > & > > Source2 // TermArg => Integer > > => Integer

> AndTerm := > > > And ( > > Source1, // TermArg => Integer > > Source2, // TermArg => Integer > > Result // Target > > ) => Integer

> ArgTerm := > > > Arg0 | Arg1 | Arg2 | Arg3 | Arg4 | Arg5 | Arg6

> BankFieldTerm := > > > BankField ( > > RegionName, // NameString => OperationRegion > > BankName, // NameString => FieldUnit > > BankValue, // TermArg => Integer > > AccessType, // AccessTypeKeyword > > LockRule, // LockRuleKeyword > > UpdateRule // UpdateRuleKeyword > > ) {FieldUnitList}

> BreakPointTerm := > > > BreakPoint

> BreakTerm := > > > Break

> BufferTerm := > > > Buffer ( > > BuffSize // Nothing | TermArg => Integer > > ) {StringData | ByteList} => Buffer

> CaseTerm := > > > Case ( > > Value // DataObject > > ) {TermList}

> ConcatResTerm := > > > ConcatenateResTemplate ( > > Source1, // TermArg => Buffer > > Source2, // TermArg => Buffer > > Result // Target > > ) => Buffer

> ConcatTerm := > > > Concatenate ( > > Source1, // TermArg => SuperName > > Source2, // TermArg => SuperName > > Result // Target > > ) => Buffer | String

> ConnectionTerm := > > > Connection ( > > ConnectionResource // NameString | ResourceMacroTerm > > )

> CondRefOfTerm := > > > CondRefOf ( > > Source // NameString | ArgTerm | LocalTerm | DerefOfTerm > > Destination // Target > > ) => Boolean

> ContinueTerm := > > > Continue

> CopyObjectTerm := > > > CopyObject ( > > Source, // TermArg => DataRefObject > > Result, // NameString | LocalTerm | ArgTerm > > ) => DataRefObject

> CreateBitFieldTerm := > > > CreateBitField ( > > SourceBuffer, // TermArg => Buffer > > BitIndex, // TermArg => Integer > > BitFieldName // NameString > > )

> CreateByteFieldTerm := > > > CreateByteField ( > > SourceBuffer, // TermArg => Buffer > > ByteIndex, // TermArg => Integer > > ByteFieldName // NameString > > )

> CreateDWordFieldTerm := > > > CreateDWordField ( > > SourceBuffer, // TermArg => Buffer > > ByteIndex, // TermArg => Integer > > DWordFieldName // NameString > > )

> CreateFieldTerm := > > > CreateField ( > > SourceBuffer, // TermArg => Buffer > > BitIndex, // TermArg => Integer > > NumBits, // TermArg => Integer > > FieldName // NameString > > )

> CreateQWordFieldTerm := > > > CreateQWordField ( > > SourceBuffer, // TermArg => Buffer > > ByteIndex, // TermArg => Integer > > QWordFieldName // NameString > > )

> CreateWordFieldTerm := > > > CreateWordField ( > > SourceBuffer, // TermArg => Buffer > > ByteIndex, // TermArg => Integer > > WordFieldName // NameString > > )

> DataRegionTerm := > > > DataTableRegion ( > > RegionName, // NameString > > SignatureString, // TermArg => String > > OemIDString, // TermArg => String > > OemTableIDString // TermArg => String > > )

> DebugTerm := > > > Debug

> DecSymbolicTerm := > > > Minuend // TermArg => Integer > > -- > > => Integer

> DecTerm := > > > Decrement ( > > Minuend // SuperName > > ) => Integer

> DefaultTerm := > > > Default {TermList}

> DefinitionBlockTerm := | DefinitionBlock ( | AMLFileName, // String | TableSignature, // String | ComplianceRevision, // ByteConst | OEMID, // String | TableID, // String | OEMRevision // DWordConst | ) {TermList}

> DerefOfTerm := | DerefOf ( | Source // NameString | ArgTerm | LocalTerm | RefOfTerm | CondRefOfTerm | // IndexTerm | MethodInvocationTerm | ) => DataRefObject

> DeviceTerm := | Device ( | DeviceName // NameString | ) {TermList}

> DivideCompoundTerm := | Dividend-Result // TermArg => Integer => Target | /= | Divisor // TermArg => Integer | => Integer

> DivideSymbolicTerm := > > > Dividend // TermArg => Integer > > / > > Divisor // TermArg => Integer > > => Integer

> DivideTerm := > > > Divide ( > > Dividend, // TermArg => Integer > > Divisor, // TermArg => Integer > > Remainder, // Target > > Result // Target > > ) => Integer // 返回 Result

> EISAIDTerm := > > > EISAID ( > > EisaIdString // StringData > > ) => DWordConst

> ElseIfTerm := > > > ElseIf ( > > Predicate // TermArg => Integer > > ) {TermList} ElseTerm

> ElseTerm := > > > Else {TermList} | ElseIfTerm | Nothing

> 事件项 := > > > Event ( > > EventName // 名称字符串 > > )

> 外部项 := > > > External ( > > ObjName, // 名称字符串 > > ObjType, // 无 | 对象类型关键字 > > ResultType, // 无 | 参数类型包 > > ParameterTypes // 无 | 参数类型包 > > )

> 致命项 := > > > Fatal ( > > Type, // 字节常量表达式 > > Code, // 双字常量表达式 > > Arg // TermArg => 整数 > > )

> 字段项 := > > > Field ( > > RegionName, // 名称字符串 => OperationRegion > > AccessType, // 访问类型关键字 > > LockRule, // 锁规则关键字 > > UpdateRule // 更新规则关键字 > > ) {FieldUnitList}

> 查找最左置位项 := > > > FindSetLeftBit ( > > Source, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> 查找最右置位项 := > > > FindSetRightBit ( > > Source, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> For 项 := > > > For ( > > Initialize, // 无 | TermArg => 计算数据 > > Predicate, // 无 | TermArg => 计算数据 > > Update // 无 | TermArg => 计算数据 > > ) {TermList}

> Fprintf 项 := > > > Fprintf ( > > TermArg, > > String, > > PrintfArgList > > ) => 字符串

> FromBCD 项 := > > > FromBCD ( > > BCDValue, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> 函数项 := > > > Function ( > > FunctionName, // 名称字符串 > > ReturnType, // 无 | 参数类型包 > > ParameterTypes // 无 | 参数类型包 > > ) {TermList}

> If 项 := > > > If ( > > Predicate // TermArg => 整数 > > ) {TermList}

> 包含项 := > > > Include ( > > FilePathName // 字符串数据 > > )

> 自增符号项 := > > > Addend // SuperName => 整数 > > ++ > > => 整数

> 自增项 := > > > Increment ( > > Addend // SuperName > > ) => 整数

> 索引字段项 := > > > IndexField ( > > IndexName, // 名称字符串 => FieldUnit > > DataName, // 名称字符串 => FieldUnit > > AccessType, // 访问类型关键字 > > LockRule, // 锁规则关键字 > > UpdateRule // 更新规则关键字 > > ) {FieldUnitList}

> 索引符号项 := > > > Source // TermArg => <字符串 | 缓冲区 | 包项> > > [Index] // TermArg => 整数 > > => 对象引用

> 索引项 := > > > Index ( > > Source, // TermArg => <字符串 | 缓冲区 | 包项> > > Index, // TermArg => 整数 > > Destination // 目标 > > ) => 对象引用

> 逻辑与符号项 := > > > Source1 // TermArg => 整数 > > && > > Source2 // TermArg => 整数 > > => 布尔值

> 逻辑与项 := > > > LAnd ( > > Source1, // TermArg => 整数 > > Source2 // TermArg => 整数 > > ) => 布尔值

> 逻辑等于符号项 := > > > Source1 // TermArg => 计算数据 > > == > > Source2 // TermArg => 计算数据 > > => 布尔值

> 逻辑等于项 := > > > LEqual ( > > Source1, // TermArg => 计算数据 > > Source2 // TermArg => 计算数据 > > ) => 布尔值

> 逻辑大于等于符号项 := > > > Source1 // TermArg => 计算数据 > > >= > > Source2 // TermArg => 计算数据 > > => 布尔值

> 逻辑大于等于项 := > > > LGreaterEqual ( > > Source1, // TermArg => 计算数据 > > Source2 // TermArg => 计算数据 > > ) => 布尔值

> 逻辑大于符号项 := > > > Source1 // TermArg => 计算数据 > > > > > Source2 // TermArg => 计算数据 > > => 布尔值

> 逻辑大于项 := > > > LGreater ( > > Source1, // TermArg => 计算数据 > > Source2 // TermArg => 计算数据 > > ) => 布尔值

> 逻辑小于等于符号项 := > > > Source1 // TermArg => 计算数据 > > <= > > Source2 // TermArg => 计算数据 > > => 布尔值

> 逻辑小于等于项 := > > > LLessEqual ( > > Source1, // TermArg => 计算数据 > > Source2 // TermArg => 计算数据 > > ) => 布尔值

> 逻辑小于符号项 := > > > Source1 // TermArg => 计算数据 > > < > > Source2 // TermArg => 计算数据 > > => 布尔值

> 逻辑小于项 := > > > LLess ( > > Source1, // TermArg => 计算数据 > > Source2 // TermArg => 计算数据 > > ) => 布尔值

> 逻辑不等于项 := > > > LNotEqual ( > > Source1, // TermArg => 计算数据 > > Source2 // TermArg => 计算数据 > > ) => 布尔值

> 逻辑不等于符号项 := > > > Source1 // TermArg => 计算数据 > > != > > Source2 // TermArg => 计算数据 > > => 布尔值

> 逻辑非符号项 := > > > ! > > Source // TermArg => 整数 > > => 布尔值

> 逻辑非项 := > > > LNot ( > > Source, // TermArg => 整数 > > ) => 布尔值

> 逻辑或符号项 := > > > Source1 // TermArg => 整数 > > || > > Source2 // TermArg => 整数 > > => 布尔值

> 加载表项 := > > > LoadTable ( > > SignatureString, // TermArg => 字符串 > > OemIDString, // TermArg => 字符串 > > OemTableIDString, // TermArg => 字符串 > > RootPathString, // 无 | TermArg => 字符串 > > ParameterPathString, // 无 | TermArg => 字符串 > > ParameterData // 无 | TermArg => 数据引用对象 > > ) => 布尔值 // True(非零)表示表已成功加载

> 加载项 := > > > Load ( > > Object, // 名称字符串 > > Result // SuperName => 布尔值 – True(非零) // 表示表已成功加载 > > ) => 布尔值 // True(全 1)表示表已成功加载

> 局部变量项 := > > > Local0 | Local1 | Local2 | Local3 | Local4 | Local5 | Local6 | Local7

> 逻辑或项 := > > > LOr ( > > Source1, // TermArg => 整数 > > Source2 // TermArg => 整数 > > ) => 布尔值

> 匹配项 := > > > Match ( > > SearchPackage, // TermArg => Package > > Op1, // 匹配操作关键字 > > MatchObject1, // TermArg => 计算数据 > > Op2, // 匹配操作关键字 > > MatchObject2, // TermArg => 计算数据 > > StartIndex // TermArg => 整数 > > ) => <全 1 | 整数>

> 方法项 := > > > Method ( > > MethodName, // 名称字符串 > > NumArgs, // 无 | 字节常量表达式 > > SerializeRule, // 无 | 序列化规则关键字 > > SyncLevel, // 无 | 字节常量表达式 > > ReturnType, // 无 | 参数类型包 > > ParameterTypes // 无 | 参数类型包 > > ) {TermList}

> Mid 项 := > > > Mid ( > > Source, // TermArg => <缓冲区 | 字符串> > > Index, // TermArg => 整数 > > Length, // TermArg => 整数 > > Result // 目标 > > ) => <缓冲区 | 字符串>

> 取模复合项 := > > > Dividend-Result // TermArg => 整数 => 目标 > > %= > > Divisor // TermArg => 整数 > > => 整数

> 取模符号项 := > > > Dividend // TermArg => 整数 > > % > > Divisor // TermArg => 整数 > > => 整数

> 取模项 := > > > Mod ( > > Dividend, // TermArg => 整数 > > Divisor, // TermArg => 整数 > > Result // 目标 > > ) => 整数 // 返回 Result

> 乘法复合项 := > > > Multiplicand-Result // TermArg => 整数 => 目标 > > *= > > Multiplier // TermArg => 整数 > > => 整数

> 乘法符号项 := > > > Multiplicand // TermArg => 整数 > > * > > Multiplier // TermArg => 整数 > > => 整数

> 乘法项 := > > > Multiply ( > > Multiplicand, // TermArg => 整数 > > Multiplier, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> 互斥体项 := > > > Mutex ( > > MutexName, // 名称字符串 > > SyncLevel // 字节常量表达式 > > )

> 名称项 := > > > Name ( > > ObjectName, // 名称字符串 > > Object // 数据对象 > > )

> 与非项 := > > > NAnd ( > > Source1, // TermArg => 整数 > > Source2, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> 空操作项 := > > > NoOp

> 或非项 := > > > NOr ( > > Source1, // TermArg => 整数 > > Source2, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> 通知项 := > > > Notify ( > > Object, // SuperName => <热区 | 处理器 | 设备> > > NotificationValue // TermArg => 整数 > > )

> 按位非符号项 := > > > ~ > > Source // TermArg => 整数 > > => 整数

> 按位非项 := > > > Not ( > > Source, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> 对象类型项 := > > > ObjectType ( > > Object // 名称字符串 | ArgTerm | LocalTerm | DebugTerm | > > // RefOfTerm | DerefOfTerm | IndexTerm > > ) => 整数

> 偏移项 := > > > Offset ( > > ByteOffset // 整数数据 > > )

> 操作区域项 := > > > OperationRegion ( > > RegionName, // 名称字符串 > > RegionSpace, // 区域空间关键字 > > Offset, // TermArg => 整数 > > Length // TermArg => 整数 > > )

> 或复合项 := > > > Source1-Result // TermArg => 整数 => 目标 > > |= > > Source2 // TermArg => 整数 > > => 整数

> 或符号项 := > > > Source1 // TermArg => 整数 > > | > > Source2 // TermArg => 整数 > > => 整数

> 或项 := > > > Or ( > > Source1, // TermArg => 整数 > > Source2, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> 包项 := > > > Package ( > > NumElements // 无 | 字节常量表达式 | TermArg => 整数 > > ) {PackageList} => Package

> PLD 关键字 := > > > PLD_Revision | PLD_IgnoreColor | PLD_Red | PLD_Green | PLD_Blue | PLD_Width | PLD_Height | PLD_UserVisible | PLD_Dock | PLD_Lid | PLD_Panel | PLD_VerticalPosition | PLD_HorizontalPosition | PLD_Shape | PLD_GroupOrientation | PLD_GroupToken | PLD_GroupPosition | PLD_Bay PLD_Ejectable | PLD_EjectRequired | PLD_CabinetNumber

> PLD 关键字列表 := > > > PLDKeyword = StringDataPLD_Revision | PLDKeyword = IntegerDataPLD_Revision | PLDKeyword = StringDataPLD_Revision, PLDKeywordListPLD_Revision, PLDKeyword = IntegerDataPLD_Revision, PLDKeywordListPLD_Revision

> 电源资源项 := > > > PowerResource ( > > ResourceName, // 名称字符串 > > SystemLevel, // 字节常量表达式 > > ResourceOrder // 字常量表达式 > > ) {TermList}

> Printf 参数列表 := > > > TermArg | TermArg , PrintfArgList

> Printf 项 := > > > Printf ( > > String, > > PrintfArgList > > ) => 字符串

> 处理器项 := > > > Processor ( > > ProcessorName, // 名称字符串 > > ProcessorID, // 字节常量表达式 > > PBlockAddress, // 双字常量表达式 | 无 (=0) > > PblockLength // 字节常量表达式 | 无 (=0) > > ) {TermList}

> 原始数据缓冲区项 := > > > RawDataBuffer ( > > BuffSize // 无 | 字常量 > > ) { ByteList} => RawDataBuffer

> 引用项 := > > > RefOf ( > > Source // 名称字符串 | ArgTerm | LocalTerm | DerefOfTerm > > ) => 对象引用

> 释放项 := > > > Release ( > > SyncObject // SuperName > > )

> 重置项 := > > > Reset ( > > SyncObject // SuperName > > )

> 返回项 := > > > Return ( > > Arg // 无 | TermArg => 数据引用对象 > > )

> 作用域项 := > > > Scope ( > > Location // 名称字符串 > > ) {TermList}

> 左移复合项 := > > > Source-Result // TermArg => 整数 => 目标 > > <<= > > ShiftCount // TermArg => 整数 > > => 整数

> 左移符号项 := > > > Source // TermArg => 整数 > > << > > ShiftCount // TermArg => 整数 > > => 整数

> 左移项 := > > > ShiftLeft ( > > Source, // TermArg => 整数 > > ShiftCount, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> 右移复合项 := > > > Source-Result // TermArg => 整数 => 目标 > > >>= > > ShiftCount // TermArg => 整数 > > => 整数

> 右移符号项 := > > > Source // TermArg => 整数 > > >> > > ShiftCount // TermArg => 整数 > > => 整数

> 右移项 := > > > ShiftRight ( > > Source, // TermArg => 整数 > > ShiftCount, // TermArg => 整数 > > Result // 目标 > > ) => 整数

> 发信号项 := > > > Signal ( > > SyncObject // SuperName > > )

> 求大小项 := > > > SizeOf ( > > DataObject // SuperName => <字符串 | 缓冲区 | 包> > > ) => 整数

> 睡眠项 := > > > Sleep ( > > MilliSeconds // TermArg => 整数 > > )

> 停顿项 := > > > Stall ( > > MicroSeconds // TermArg => 整数 > > )

> 存储符号项 := > > > Destination // SuperName > > = > > Source // TermArg => 数据引用对象 > > => 数据引用对象

> 存储项 := > > > Store ( > > Source, // TermArg => 数据引用对象 > > Destination // SuperName > > ) => 数据引用对象

> 减法复合项 := > > > Minuend-Result // TermArg => 整数 => 目标 > > -= > > Subtrahend // TermArg => 整数 > > => 整数

> 减法符号项 := > > > Minuend // TermArg => 整数 > > - > > Subtrahend // TermArg => 整数 > > => 整数

> 减法项 := > > > Subtract ( > > 被减数, // TermArg => Integer > > 减数, // TermArg => Integer > > 结果 // Target > > ) => Integer

> Switch项 := > > > Switch ( > > 谓词 // TermArg => ComputationalData > > ) {CaseTermList}

> ThermalZone项 := > > > ThermalZone ( > > ThermalZone名称 // NameString > > ) {TermList}

> Timer项 := > > > Timer => Integer

> ToBCD项 := > > > ToBCD ( > > 值, // TermArg => Integer > > 结果 // Target > > ) => Integer

> ToBuffer项 := > > > ToBuffer ( > > 数据, // TermArg => ComputationalData > > 结果 // Target > > ) => ComputationalData

> ToDecimalString项 := > > > ToDecimalString ( > > 数据, // TermArg => ComputationalData > > 结果 // Target > > ) => String

分页

  • 第 1 页
  • 第 2 页
Prev
19.2.5. ASL 操作码项
Next
19.2.7. ASL 参数关键字项