⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 booting-memory_check_6.htm

📁 编写自己的操作系统
💻 HTM
📖 第 1 页 / 共 4 页
字号:
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT 
face="Times New Roman TUR" size=5><STRONG>1.6.2 INT 15h, AX=E820h - Query System 
Address Map</STRONG></FONT></SPAN></SPAN></SPAN></P><FONT size=+0><FONT 
size=+0><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT 
size=+0><FONT face="Times New Roman TUR"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT 
size=3><FONT face="Times New Roman TUR" size=4></FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><BR><FONT 
face="Times New Roman TUR">E820h只能在Real Mode下使用。</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><BR><FONT 
face="Times New Roman TUR">这个中断调用返回所有被安装在主机上的RAM,以及被BIOS所保留的物理内存范围的内存映象。<BR><BR>输入:</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=1>
  <TBODY>
  <TR>
    <TD><STRONG><FONT face="Times New Roman TUR">Register</FONT></STRONG></TD>
    <TD><STRONG><FONT face="Times New Roman TUR">Meaning</FONT></STRONG></TD>
    <TD><STRONG><FONT 
  face="Times New Roman TUR">Description</FONT></STRONG></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">EAX</FONT></TD>
    <TD><FONT face="Times New Roman TUR">功能码</FONT></TD>
    <TD><FONT face="Times New Roman TUR">E820h</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">EBX</FONT></TD>
    <TD><FONT face="Times New Roman TUR">后续值</FONT></TD>
    <TD><FONT 
      face="Times New Roman TUR">放置着"后续值",这个值是为了得到下一块物理内存段,它应该指定上一次调用此程序所返回的值,如果这是第一次调用,EBX必须被指定为0。</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">ES:DI</FONT></TD>
    <TD><FONT face="Times New Roman TUR">缓冲指针</FONT></TD>
    <TD><FONT 
    face="Times New Roman TUR">指向一个地址范围描述符结构,BIOS将会填充此结构。<BR></FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">ECX</FONT></TD>
    <TD><FONT face="Times New Roman TUR">缓冲大小</FONT></TD>
    <TD><FONT 
      face="Times New Roman TUR">缓冲指针所指向的地址范围描述符结构的大小,以Byte为单位,无论ES:DI所指向的结构如何设置,BIOS最多将会填充ECX个字节,必需被BIOS以及调用者所支持的最小尺寸是20个字节,未来的实现将会扩展此限制。</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">EDX</FONT></TD>
    <TD><FONT face="Times New Roman TUR">标志</FONT></TD>
    <TD><FONT face="Times New Roman TUR">'SMAP' - 
      BIOS将会使用此标志,对调用者将要请求的系统映象信息进行校验,这些信息会被BIOS放置到ES:DI所指向的结构中。<BR></FONT></TD></TR></TBODY></TABLE></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><BR><BR><FONT 
face="Times New Roman TUR">输出:</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=1>
  <TBODY>
  <TR>
    <TD><STRONG><FONT face="Times New Roman TUR">Register</FONT></STRONG></TD>
    <TD><STRONG><FONT face="Times New Roman TUR">Meaning</FONT></STRONG></TD>
    <TD><STRONG><FONT 
  face="Times New Roman TUR">Description</FONT></STRONG></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">CF</FONT></TD>
    <TD><FONT face="Times New Roman TUR">进位标志</FONT></TD>
    <TD><FONT face="Times New Roman TUR">不进位表示没有错误,否则则存在错误。</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">EAX</FONT></TD>
    <TD><FONT face="Times New Roman TUR">标志</FONT></TD>
    <TD><FONT face="Times New Roman TUR">'SMAP'</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">ES:DI</FONT></TD>
    <TD><FONT face="Times New Roman TUR">缓冲指针</FONT></TD>
    <TD><FONT face="Times New Roman TUR">返回的地址范围描述符结构指针,和输入值相同。</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">ECX</FONT></TD>
    <TD><FONT face="Times New Roman TUR">缓冲大小</FONT></TD>
    <TD><FONT 
      face="Times New Roman TUR">BIOS所填充在地址范围描述符中的字节数量,被BIOS所返回的最小值是20个字节。</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">EBX</FONT></TD>
    <TD><FONT face="Times New Roman TUR">后续</FONT></TD>
    <TD>
      <P><FONT 
      face="Times New Roman TUR">这里放置着为了等到下一个地址描述符所需要的"后续值",这个值的实际形势倚赖于具体的BIOS的实现,调用者不必要关心它的具体形式,只需要在下次迭代的时候,将其原封不动的放置到EBX中,就可以通过它获取下一个地址范围描述符。如果它的值为0,则表示它是最后一个地址范围描述符。</FONT></P>
      <P><FONT 
      face="Times New Roman TUR">一定注意,只有这个后续值为零,并且CF没有进位的时候,才表示这是最后一个地址范围描述符。</FONT></P></TD></TR></TBODY></TABLE></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><BR><STRONG><FONT 
face="Times New Roman TUR">&nbsp;</FONT></P><FONT face="Times New Roman TUR">
<HR width="100%" SIZE=1>
</FONT>
<P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt"></STRONG><STRONG></STRONG>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><FONT 
face="Times New Roman TUR" size=4>Address Range Descriptor 
Structure</FONT></STRONG></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT 
face="Times New Roman TUR"></FONT>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"></FONT><FONT 
face="Times New Roman TUR">地址范围描述符结构</FONT></SPAN></SPAN></FONT></FONT></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
<TABLE cellSpacing=0 cellPadding=0 rules=all width="100%" border=1 frame=border 
VALIGN="BASELINE" NOWRAP="1">
  <TBODY>
  <TR>
    <TD><SPAN 
      style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
      style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
      style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><STRONG><FONT 
      face="Times New Roman TUR">Offset</FONT></STRONG></SPAN></SPAN></SPAN></TD>
    <TD><STRONG><FONT face="Times New Roman TUR">Name</FONT></STRONG></TD>
    <TD><STRONG><FONT 
  face="Times New Roman TUR">Description</FONT></STRONG></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">0</FONT></TD>
    <TD><FONT face="Times New Roman TUR">BaseAddrLow</FONT></TD>
    <TD><FONT face="Times New Roman TUR">基地址的低32位</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">4</FONT></TD>
    <TD><FONT face="Times New Roman TUR">BaseAddrHigh</FONT></TD>
    <TD><FONT face="Times New Roman TUR">基地址的高32位</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">8</FONT></TD>
    <TD><FONT face="Times New Roman TUR">LengthLow</FONT></TD>
    <TD><FONT face="Times New Roman TUR">长度(字节)的低32位</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">12</FONT></TD>
    <TD><FONT face="Times New Roman TUR">LengthHigh</FONT></TD>
    <TD><FONT face="Times New Roman TUR">长度(字节)的高32位</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">16</FONT></TD>
    <TD><FONT face="Times New Roman TUR">Type</FONT></TD>
    <TD><FONT 
face="Times New Roman TUR">这个地址范围的地址类型</FONT></TD></TR></TBODY></TABLE></SPAN></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT 
face="Times New Roman TUR" size=3><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></SPAN></SPAN></FONT></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT 
face="Times New Roman TUR" size=3>其中Type的取值及其意义如下:<BR></FONT>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=1>
  <TBODY>
  <TR>
    <TD><STRONG><FONT face="Times New Roman TUR">Value</FONT></STRONG></TD>
    <TD><STRONG><FONT face="Times New Roman TUR">Name</FONT></STRONG></TD>
    <TD><STRONG><FONT 
  face="Times New Roman TUR">Description</FONT></STRONG></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">1</FONT></TD>
    <TD><FONT face="Times New Roman TUR">AddressRangeMemory</FONT></TD>
    <TD><FONT face="Times New Roman TUR">这个内存段是一段可以被OS使用的RAM</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">2</FONT></TD>
    <TD><FONT face="Times New Roman TUR">AddressRangeReserved</FONT></TD>
    <TD><FONT 
    face="Times New Roman TUR">这个地址段正在被使用,或者被系统保留,所以一定不要被OS使用</FONT></TD></TR>
  <TR>
    <TD><FONT face="Times New Roman TUR">Other</FONT></TD>
    <TD><FONT face="Times New Roman TUR">Undefined</FONT></TD>
    <TD><FONT 
      face="Times New Roman TUR">保留为未来使用,任何其它值都必需被OS认为是AddressRangeReserved</FONT></TD></TR></TBODY></TABLE></SPAN></SPAN></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></SPAN></SPAN></SPAN></P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -