找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 10092|回复: 4

关于port80的问题~

[复制链接]
发表于 2008-7-5 22:21:09 | 显示全部楼层 |阅读模式
想手工做一个简单的bios。就是能开机以后从port80丢出一个值(从网页上看的,但做了以后不行??)~~~$ e! v' K0 N; b- X, \4 g2 m

, H: T) [5 `) c, S' I*.asm中
3 F3 x7 ]! |7 P3 i- t0 p" H1. 对ICH9 中register RCBA Root Complex Base Address 填值。
& g. i4 ~, B' Z2. 进入 Flat_Mode 对 GCS(Reserved Page Route) bit2 支0,让port80 走LPC。
4 T6 }3 {2 _2 W. G* T" U3. 向port80 丢值。
. @- c* y! R$ z( o+ u1 [% P) l4 _*.exe
$ ^! g8 Y" X! C2 ^1 t4. 用 ml。exe 编译*。asm 生成的*。exe, 去掉头200h。! X% y6 F3 m# R# s  b6 d1 U0 H. _6 D2 ]
*.rom! |* P# p. Q2 E# M
5. 剩下的代码添加到一个*.rom中,位置是ffff 00008 `' ?* P( }7 B, F  l- a8 T7 V/ v! a
6. 在fffffff0 放e9 0d 00 想跳到ffff 0000执行程序。
$ |6 u: B3 I. f: W; `1 i: g7. 用烧录器烧到ROM中,开机* N+ B1 D- q; \0 O3 l. W
~~~~失败~~~~~~. K9 u# a3 x! {- C) [$ O* w' ]) T
小弟才学bios试了一天还是不行特来请教~~~先谢谢各位大侠了!!~~~
发表于 2008-7-8 15:33:17 | 显示全部楼层
可以參考這邊的作法...
4 c4 Z$ ?7 Q/ M7 e2 F5 @4 z$ phttp://biosengineer.blogspot.com/2007/11/x86-bios1.html
回复

使用道具 举报

发表于 2008-7-8 15:35:49 | 显示全部楼层
做法如下,我把它貼出來了......
1 G* u8 d2 o3 t0 p/ o, n4 m
, P8 K; o1 M8 Q" [0 F8 `8 aCOLDBOOT:7 l. @3 J0 {9 `' R4 s4 V
CLI
! _/ y+ s# H9 g% u) F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;: I+ i+ _% l4 M0 {. O
;; 1. Enable big real mode' M' V7 N  ~4 z3 e
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2 H# Y' R( |; V  a: P! {* ~* P
....& E/ E  S% N# x# Z4 G- n
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1 F4 W- ?9 K1 G' z" i) g: s1 s;; 2. Set RCRB base address
! F  M3 C" K( L;; 3. Config ICH9 Register
& N+ u1 ^8 J8 w; s;; 4. Out 99h to Port 80h
" g4 A" K  c5 I2 }" j;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;. u+ S  J7 M! t3 [! U6 F- g
....& Y- Y( z7 l; u( f! p1 q& \
mov dx, 0cfch' H# Z- u$ m( {6 i$ }9 J: r$ k
mov eax,RCRB_BaseAddr& A+ ~  ~* `4 r) W6 [- X
out dx, eax
4 h2 s4 f2 q( i+ A3 \. K....& G9 W+ ^- u; z2 C8 w6 m
and BYTE PTR es:[esi], NOT (04h) ; RCRB+xxxxh bit 2=0 Output to LPC: x  o* X! }3 r% z
....
2 m2 ]( H6 A+ R: U/ ^fPostCode:3 c9 k' I  d% j9 s; r' o
mov al,099h
0 `- ~# x9 V& \% Imov dx,80h
1 b$ _0 q) r6 E! G/ X2 E5 f0 b. Bout dx,al
; ?7 @" o3 o" H0 P5 U) j, Cjmp fPostCode ;無窮回圈ㄧ直顯示99h
; z1 I  r9 \% ~' |/ X2 n8 q" M...
. n" \4 N2 |; U5 J6 n.../ s6 r: k+ G7 e  r! a
wbinvd ; ...begins here on power up
7 |% W6 ?& x6 iPUBLIC POWER
$ i% J" `8 @  aPOWER:9 o: t$ Q: P$ X3 \9 g- h. ]9 G" ?: J& X' z
JMP COLDBOOT ; first jump
7 I/ g* ~+ n' c" F$ PDB '11/14/07',00,00,00 ; My release marker
回复

使用道具 举报

 楼主| 发表于 2008-7-8 19:11:54 | 显示全部楼层
其实我就是看了上面的文章才开始做的哈~~~~~~但没成功~!不知道各位大侠是否有成功~??
回复

使用道具 举报

发表于 2008-7-9 23:36:17 | 显示全部楼层
不知道可不可以把弄好的rom文件传来看看?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-4-25 03:28 , Processed in 0.096303 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表