zoukankan      html  css  js  c++  java
  • int 15h

    int 15h
    ax=0e820h 用来获取内存信息
    ebx=0 int 15h每次会設它的值,来继续找下一个ARDS,我们要在首次调用是置0,以后注意不要对它操作。
    es:di int 15h会返回ARDS到es:di,所以我们要每次设定好,以使ARDS保存在我们想要保存的地方
    ecx=20  有些bios会根据ecx的值来填充es:di,有些则默认填充20,所以统一起见ecx=20
    edx=0534d4150h bios会使用此值来对信息校验
    设定好上述值然后调用中断就可以了
    如果我们想读出所有的内存信息只要通过循环每次di+20就可以,为了判断信息结束,要判断cf是否为1并且ebx=0.

    ARDS是一个数据结构,存储着一块地址的信息。
    它的结构如下
    偏移        意义
    0        基地址低32位
    4        基地址高32位
    8        长度低32位
    12        长度低32位
    16        类型                类型取值1表示可用ram    2表示正被使用或被保留,os不能使用。

    总是感觉表达不太好,可能还不太了解吧

  • 相关阅读:
    python小练习
    python学习笔记
    google测试之道读书笔记一
    webservice头部认证
    我们需要什么样的测试?
    pt-ioprofile在CentOS7上无法运行的解决办法
    推荐Nginx系列文章
    linux开启coredump的3种方法
    55, select/poll returned error
    centos ftp安装
  • 原文地址:https://www.cnblogs.com/Jinux/p/2440730.html
Copyright © 2011-2022 走看看