Assembly 7c00H之前的内存用于什么?

Assembly 7c00H之前的内存用于什么?,assembly,operating-system,kernel,bootloader,microprocessors,Assembly,Operating System,Kernel,Bootloader,Microprocessors,如果引导加载程序的代码是从内存adrress 0x7c00存储的,那么在前面的内存中存储了什么以及它的用途是什么 我刚刚开始学习汇编和引导加载程序,发现我们使用[ORG 0x7c00],因为我们的代码将从这个地址开始存储。现在在youtube上的一些教程中,他们也将这个地址放在bp和sp中,那么这个空间是否用于存储临时数据,并在使用堆栈调用函数后保存返回地址?我有点困惑,因为在这些教程中,不是每个人都使用这些堆栈指针,甚至有些人不使用此地址作为bp和sp,而是使用高于7c00的位置。内存组织如下

如果引导加载程序的代码是从内存adrress 0x7c00存储的,那么在前面的内存中存储了什么以及它的用途是什么


我刚刚开始学习汇编和引导加载程序,发现我们使用[ORG 0x7c00],因为我们的代码将从这个地址开始存储。现在在youtube上的一些教程中,他们也将这个地址放在bp和sp中,那么这个空间是否用于存储临时数据,并在使用堆栈调用函数后保存返回地址?我有点困惑,因为在这些教程中,不是每个人都使用这些堆栈指针,甚至有些人不使用此地址作为bp和sp,而是使用高于7c00的位置。

内存组织如下:

从0x00到0x03FF->实模式中断向量表

从0x0400到0x04FF->BIOS数据区

从0x0500到0x7BFF->未使用

从0x7C00到0x7DFF->RAM中的引导扇区

从0x7E00到0x09\u FFFF->未使用

从0x0A_0000到0x0A_FFFF->彩色视频RAM(VRAM)

从0x0B_0000到0x0B_7FFF->单色VRAM

从0x0B_8000到0x0B_FFFF->视频文本RAM

从0x0C_000到0x0C_7FFF->视频ROM BIOS

从0x0C_8000到0x0E_FFFF->BIOS阴影区

从0x0F_0000到0x0F_FFFF->系统BIOS

RAM中0x7C00处的引导扇区将RAM分为两个区域。当我开发引导加载程序时,我使用0x500到0x7BF之间的RAM区域作为工作RAM来放置堆栈、局部变量等。我使用剩余的未使用RAM区域从硬盘加载二进制文件。 二进制文件可以是任何文件,但通常这是所谓的引导过程的第二阶段

有关我如何开发引导加载程序的所有详细信息,请访问:

内存组织如下:

从0x00到0x03FF->实模式中断向量表

从0x0400到0x04FF->BIOS数据区

从0x0500到0x7BFF->未使用

从0x7C00到0x7DFF->RAM中的引导扇区

从0x7E00到0x09\u FFFF->未使用

从0x0A_0000到0x0A_FFFF->彩色视频RAM(VRAM)

从0x0B_0000到0x0B_7FFF->单色VRAM

从0x0B_8000到0x0B_FFFF->视频文本RAM

从0x0C_000到0x0C_7FFF->视频ROM BIOS

从0x0C_8000到0x0E_FFFF->BIOS阴影区

从0x0F_0000到0x0F_FFFF->系统BIOS

RAM中0x7C00处的引导扇区将RAM分为两个区域。当我开发引导加载程序时,我使用0x500到0x7BF之间的RAM区域作为工作RAM来放置堆栈、局部变量等。我使用剩余的未使用RAM区域从硬盘加载二进制文件。 二进制文件可以是任何文件,但通常这是所谓的引导过程的第二阶段

有关我如何开发引导加载程序的所有详细信息,请访问:
00000h
003ffh
的内存用于中断向量表,
00400h
004ffh
是BIOS数据区,之后的所有内容都可以自由使用。BIOS将引导加载程序加载到
7c00h
,因为这是即使在内存为32 kB的原始IBM PC上也保证可用的最后一个地址,允许引导加载程序将内核加载到地址
00600h
或类似地址。internet上有一些PC内存映射。看看他们!从
00000h
003ffh
的内存用于中断向量表,
00400h
004ffh
是BIOS数据区,之后的所有内容都可以免费使用。BIOS将引导加载程序加载到
7c00h
,因为这是即使在内存为32 kB的原始IBM PC上也保证可用的最后一个地址,允许引导加载程序将内核加载到地址
00600h
或类似地址。internet上有一些PC内存映射。看看他们!