[请益] 8086 system bios

楼主: erspicu (.)   2016-02-04 03:13:01
就我所知道 8086 system bios的位置 应该是从 f0000开始
http://files.osdev.org/mirrors/geezer/osd/ram/index.htm
http://duartes.org/gustavo/blog/post/how-computers-boot-up/
典型会有64KB ,因此范围从f0000到fffff
但我正在观摩的一个专案 8086tiny
https://github.com/adriancable/8086tiny
它把bios image加载到
// Load BIOS image into F000:0100, and set IP to 0100
read(disk[2], regs8 + (reg_ip = 0x100), 0xFF00);
等于是从 F0100 才开始加载
并且加载不是64KB是 ff00 byte
实际上令我纳闷的一点是 它提供的bios档也没那么大
7.48 KB (7,665 字节) 而已
目前还在思考作者为啥会这样写 有人能明白吗?
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2016-02-04 10:50:00
x86 reset是到FFFF:0000,在8086上等于是FFFF0他不一定要是完整的64K BLOCK,只要你能正确的MAP MMU任何位址都是可以执行的,另外,小型机器很可能对ROM做不完全解码来操作,所以BIOS很可能在MAP时可以有很多VIEW作为进入点。这样的优点是一块ROM可以对应很多的区块做不同用途而不避黏很多科IC
作者: wgst88w (清楚明“熙”)   2016-02-04 23:27:00
狼主真是软硬通吃阿,拜服、拜服。

Links booklink

Contact Us: admin [ a t ] ucptt.com