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

关于port80的问题~

[复制链接]
发表于 2008-7-5 22:21:09 | 显示全部楼层 |阅读模式
想手工做一个简单的bios。就是能开机以后从port80丢出一个值(从网页上看的,但做了以后不行??)~~~: l' k; P, l8 _7 C" X- y% C/ W+ @

. m8 J, V, N* `: v1 u*.asm中
$ \' `/ t4 L) D1. 对ICH9 中register RCBA Root Complex Base Address 填值。
# a/ r/ ]  k( p7 ?2. 进入 Flat_Mode 对 GCS(Reserved Page Route) bit2 支0,让port80 走LPC。
* [$ h8 B; y8 m! u$ z3. 向port80 丢值。* r3 e- n, z# A$ ?4 @) W. H
*.exe
0 E9 K8 W( J3 [! J0 c4. 用 ml。exe 编译*。asm 生成的*。exe, 去掉头200h。% C5 J  M' G4 A, E
*.rom
9 |2 F, N1 ]1 f8 [5 F5. 剩下的代码添加到一个*.rom中,位置是ffff 00006 s; i* V2 o5 B% P$ w3 h" r
6. 在fffffff0 放e9 0d 00 想跳到ffff 0000执行程序。( D6 e% Y! J  Y
7. 用烧录器烧到ROM中,开机* r7 b2 T$ _1 b( ]1 P
~~~~失败~~~~~~
2 _+ \; d; B& R  U小弟才学bios试了一天还是不行特来请教~~~先谢谢各位大侠了!!~~~
发表于 2008-7-8 15:33:17 | 显示全部楼层
可以參考這邊的作法...+ z! X9 M9 Z2 p6 O
http://biosengineer.blogspot.com/2007/11/x86-bios1.html
回复

使用道具 举报

发表于 2008-7-8 15:35:49 | 显示全部楼层
做法如下,我把它貼出來了......! l: G3 D1 `& W  c: t% n7 k. R
% x% m6 d  o' d: z/ N) `0 Y. M1 M; ~
COLDBOOT:8 d( x# m3 U. q0 M
CLI( V: q) n* l" S9 L
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0 i$ q, s* {6 j& a+ r5 ~;; 1. Enable big real mode
; o' D5 E( w# V' C0 b;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 S  B8 E. R8 o2 S# O9 w) _....
2 I' L! Z+ v8 ~4 }1 p$ M8 B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ \+ m# ^9 e0 }" U1 M
;; 2. Set RCRB base address6 V' N& z& ]4 I3 k
;; 3. Config ICH9 Register
  R0 `! c9 Z3 J' t1 v; Z;; 4. Out 99h to Port 80h, }/ m2 l/ [, k3 l! V0 {
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
, @3 j3 v0 Y5 Z" A% u" g- T: l' B  Z....0 u) r: s4 d* m+ @
mov dx, 0cfch
9 ]5 {' w* k) ]; L4 |' A- xmov eax,RCRB_BaseAddr2 d* y, u: z  I( ~% H+ \
out dx, eax9 h& _/ h. X+ a2 T( @$ I) N
....
  D* x+ g% s" R/ w0 l- |and BYTE PTR es:[esi], NOT (04h) ; RCRB+xxxxh bit 2=0 Output to LPC
  E5 r/ k. s& j9 t8 @( z....
) p) F( G. C  JfPostCode:% I/ d* V/ G! W/ _$ n# u/ [4 E
mov al,099h" B2 ^3 L8 B+ n# f  t3 h& C
mov dx,80h1 n9 b) H# o' v8 C6 m; v) Q7 Q
out dx,al" [9 C; C2 W$ M3 t9 u/ @
jmp fPostCode ;無窮回圈ㄧ直顯示99h2 H$ r$ W, s% h
...
7 E" z" A" I4 p$ s.... j. _7 x: V$ b$ W# s
wbinvd ; ...begins here on power up, _( ?0 q+ ]0 X6 s! C1 {6 w8 @
PUBLIC POWER' M6 @/ s; g. O0 Z8 Y  l  s4 X
POWER:% ~! r5 q8 C/ \, Q( B) p& ?
JMP COLDBOOT ; first jump' b3 ?# z( A% i8 O; ]- Z. r
DB '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-6-4 19:02 , Processed in 3.301450 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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