- 积分
- 2870
- 最后登录
- 2024-3-24
- 精华
- 2
- 阅读权限
- 50
- 主题
- 85
- UID
- 3322572
- 帖子
- 7001
- PB币
- 34744
- 威望
- 10
- 贡献
- 0
- 技术
- 4738
- 活跃
- 929
- UID
- 3322572
- 帖子
- 7001
- PB币
- 34744
- 贡献
- 0
- 技术
- 4738
- 活跃
- 929
|
xlm2013 发表于 2015-1-12 00:20
我取得得原始文件后缀名是.bin的然后编译成.dsl然后再编译成.aml这个就不行了有错误就编译出一个dsdt.aml~ ...
贴子第一段就解释过了。
另外,这是我在其它贴子里更详细的解释:
好吧,关于大家经常遇到的 “编译之后打开,怎么又有错误了?” 这样的问题。楼主在我的反编译贴已经解释过了。 https://bbs.pcbeta.com/viewthread-1475332-1-1.html
但还有人觉得奇怪,那我就再解释一次:
一般,我们在Window、Linux、Mac下提取到的DSDT都是从BIOS里直接读取的、已经编译好的字节码文件。这样,问题就随之产生了,即aml是编译好的文件,我们不能直接查看其中的内容(它可不是简单的文本文件),我们使用软件打开aml文件,其实是在做一个对单独文件的反编译操作,把字节码文件反编译回到源代码,展现在软件里。而反编译的操作常常会很难避免地产生许多错误(特别是对单独的文件反编译)。就像是中文和英文之间不能进行无缝转换一样。(而且,字节码文件,可不是英语,你可以把它看成是火星语)
(给有编程知识的人:aml是一种中间代码,字节码,有点像Java。还不是二进制文件。因为,各个操作系统,实现的解析aml的方法不同,所以,才把aml定义为中间代码的形式。简单的说,aml跨平台。)
软件打开单一文件,执行的命令是 iasl -d DSDT.aml。软件不会像我们视频中的那样,去找相关的SSDT一起反编译。这样,对单独的一个文件反编译,得到的错误会非常多。因为DSDT和SSDT的联系非常紧密,只反编译其中一样,会有很多的东西找不到。
综上,只要记住,dsl是可以编辑的文本文件,aml是火星语。dsl没有错就行,不要去打开aml。
|
|