本站动态:
首页 > BIOS技术 > BIOS技术文章
AMI BIOS模块结构详解 完整版
来源:BIOS之家论坛 作者:fjr115 阅读: 发布时间:2009-09-14

转栽请注明:BIOS之家    作者:fjr115

首先在讲AMI BIOS模块结构前
需要向大家说一样东西
就是逻辑地址
逻辑地址的形式如:XXXX:XXXX
其中前四位是段地址   后四位是偏移地址
比如ABCD:1234
物理地址=段地址*10H+偏移地址
所以ABCD:1234的物理地址=ABCDH*10H+1234H=ACF04H
而ACF04H这个物理地址是相对于1M噶地址空间的
如果你的BIOS大小是1M噶话 那么物理地址就是ACF04H
如果BIOS不是1M的话 那么就要对物理地址进行换算
好 有条公式: BIOS文件在WINHEX中的地址 =  BIOS文件相对于1M空间的地址 - 常数
注:常数是根据每个BIOS的大小而确定的   常数=(1024-你BIOS的大小(KB))*1024
比如你的BIOS是512KB的话  那么常数就是  常数=(1024-512)*1024=524288D=80000H
所以ABCD:1234在512KB的BIOS中 BIOS文件在WINHEX中的地址就=ABCDH*10H+1234H-80000H=2CF04H
OK  现在各位应该明白逻辑地址转化为物理地址的方法了

 

用WINHEX打开AMI BIOS可以搜索到AMIBIOSC的字符串
这里隐含很多秘密
如下:(这个BIOS 512KB的)

 

用WINHEX打开AMI BIOS可以搜索到AMIBIOSC的字符串
这里隐含很多秘密
如下:(这个BIOS 512KB的)
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00067FE0   00 00 00 00 00 00 00 00  08 0A 41 4D 49 42 49 4F   ..........AMIBIO
00067FF0   53 43 30 38 30 30 06 CE  21 40 BC 75 0C 00 83 E7   SC0800.?@紆..冪

这里一共20H
具体结构如下:
0-2H                保留供将来使用
3H                   一般都是00 如果不是00的话 发BIOS给我
4-5H                BIOS映像版本
8H                   都是08的
9H                   都是0A的 (AMIBIOSC08的长度)
A-13H              AMIBIOSC
14-17H            BIOS 核心版本
18-1BH            BIOS校验位
1C-1DH            第一个模块的偏移地址
1E-1FH             第一个模块的段地址

由此可知 在这个BIOS里面第一个模块的逻辑地址是 E783:000C
所以物理地址=E7830H+000CH-80000H=6783CH
6783CH-8H就是第一个模块的地址了  至于为什么要-8H 你自己看一下就知道了
OK 第一个模块的地址找到了
继续研究一下第一个模块的头部 看看有什么秘密
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00067830   00 FF FF FF 98 07 00 00  F3 C3 B9 AA 10 00 1B E2
00067840   98 07 08 80 00 00 00 00  01 00 0C 00 20 35 01 00

其中 红色部分的14H就是模块头了
单独提取出来
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000000   98 07 00 00 F3 C3 B9 AA  10 00 1B E2 98 07 08 80
00000010   00 00 00 00


0-3H                   模块大小
4-7H                   校验位
8-9H                   下一个模块的偏移地址
A-BH                   下一个模块的段地址
C-DH                   模块大小
EH                       模块ID
FH                       模块属性

由此可知该模块的模块大小是0798H  校验位AAB9C3F3  下一个模块的地址为E21B:0010  模块ID为08
从此可以得知下一个模块的位置
如此类推
......................
直到最后一个模块

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000FD0   44 00 00 00 92 9F 03 15  FF FF FF FF 44 00 80 80
00000FE0   00 00 00 00 07 00 10 02  01 00 00 14 00 20 08 01

红色的就是模块头
最后一个模块的模块头的8-BH都是FF FF FF FF的  表示是最后一个模块了
OK    AMI BIOS模块机构详解到此完毕
 

BIOS之家论坛原贴地址:http://bbs.bios.net.cn/thread-92766-1-1.html

上一篇:通用SLIC直接备份工具SLIC_DUMP_ToolKit V1.06.08

下一篇:下面没有链接了
内容导航:
访问者在接受本网站服务,表示访问者接受本站“网站声明

促销商品
进口DIP8转SOP8、SOIC8
·商品编号:
·品牌:
·库存:100
·价格: 200.00 70.00
特价三剑
·商品编号:
·品牌:
·库存:50
·价格: 420.00 280.00
SWORD
·商品编号:
·品牌:
·库存:50
·价格: 100.00 85.00