8086对内存访问

一,大概分段的用途

0XF0000~0XFFFFF:

ROM-BIOS,主板上的芯片提供;

0XA0000~0XEFFFF:

特定的外围设备提供。每个外部设备接口,包括各种板卡,如网卡,显卡,键盘接口电路,硬件控制器等,都有自己的只读存储器(ROM),类似于BIOS芯片,这些ROM中提供了它自己的功能调用例程,以及本设备的初始化代码。按照规范,前两个单元的内容是0X55和0XAA,第三个单元是本ROM中以512字节为单位的代码长度(即多少个512字节),从第四个单元开始,就是实际的ROM代码。物理地址有一部分是留给外围设备的,如果设备存在,那么它自带的ROM会映射到分配给它的地址范围。

0X00000~0X9FFFF:

常规内存,内存条提供;

二,详细信息如下:

地址范围 作用
0XF0000~0XFFFFF

ROM(ROM-BIOS),固化了开机要执行的指令.

8086在加电或者复位后,CS=0XFFFF,IP=0X0000,即:0xFFFF0,

这里通常是一个跳转指令:jmp 0xf000:0xe05b,(也就是物理地址0xFE05B),

执行ROM-BIOS代码,会把MBR代码加载到物理地址0X07C00(0X0000:0X7C00)处,

然后执行指令jmp 0X0000,0X7C00跳过去执行。

0XE0000~0XEFFFF  
0XD0000~0XDFFFF  
0XC0000~0XCFFFF  
0XB0000~0XBFFFF 0XB8000~0XBFFFF,映射到显卡,用来显示文本。
0XA0000~0XAFFFF  
0X90000~0X9FFFF  
0X80000~0X8FFFF  
0X70000~0X7FFFF  
0X60000~0X6FFFF  
0X50000~0X5FFFF  
0X40000~0X4FFFF  
0X30000~0X3FFFF  
0X20000~0X2FFFF  
0X10000~0X1FFFF  
0X00000~0X0FFFF MBR(主引导扇区程序)被加载到0X0000:0X7C00处

参考:

原文地址:https://www.cnblogs.com/a-s-m/p/13607310.html