ljk19841115 发表于 2008-7-5 22:21:09

关于port80的问题~

想手工做一个简单的bios。就是能开机以后从port80丢出一个值(从网页上看的,但做了以后不行??)~~~

*.asm中
1. 对ICH9 中register RCBA Root Complex Base Address 填值。
2. 进入 Flat_Mode 对 GCS(Reserved Page Route) bit2 支0,让port80 走LPC。
3. 向port80 丢值。
*.exe
4. 用 ml。exe 编译*。asm 生成的*。exe, 去掉头200h。
*.rom
5. 剩下的代码添加到一个*.rom中,位置是ffff 0000
6. 在fffffff0 放e9 0d 00 想跳到ffff 0000执行程序。
7. 用烧录器烧到ROM中,开机
~~~~失败~~~~~~
小弟才学bios试了一天还是不行特来请教~~~先谢谢各位大侠了!!~~~

harisan3 发表于 2008-7-8 15:33:17

可以參考這邊的作法...
http://biosengineer.blogspot.com/2007/11/x86-bios1.html

harisan3 发表于 2008-7-8 15:35:49

做法如下,我把它貼出來了......

COLDBOOT:
CLI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 1. Enable big real mode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
....
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 2. Set RCRB base address
;; 3. Config ICH9 Register
;; 4. Out 99h to Port 80h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
....
mov dx, 0cfch
mov eax,RCRB_BaseAddr
out dx, eax
....
and BYTE PTR es:, NOT (04h) ; RCRB+xxxxh bit 2=0 Output to LPC
....
fPostCode:
mov al,099h
mov dx,80h
out dx,al
jmp fPostCode ;無窮回圈ㄧ直顯示99h
...
...
wbinvd ; ...begins here on power up
PUBLIC POWER
POWER:
JMP COLDBOOT ; first jump
DB '11/14/07',00,00,00 ; My release marker

ljk19841115 发表于 2008-7-8 19:11:54

其实我就是看了上面的文章才开始做的哈~~~~~~但没成功~!不知道各位大侠是否有成功~??

xtdumpling 发表于 2008-7-9 23:36:17

不知道可不可以把弄好的rom文件传来看看?
页: [1]
查看完整版本: 关于port80的问题~