Объем и тип ОЗУ

Тема в разделе "WASM.ASSEMBLER", создана пользователем Crash, 12 сен 2006.

  1. Crash

    Crash New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2004
    Сообщения:
    73
    Привет всем!

    Как можно определить объем и тип ОЗУ? Нужен код на tasm'е.
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Объем можно узнать используя int 15h
    AH = 88h Extended memory size
    Exit:
    For DOS and Windows 3.x (AT Compatible):
    AX Amount of extended memory to 64 MB, in 1 kB blocks
    For Windows NT 3.1 and OS/2 2.11 and 2.20:
    AX Amount of extended memory to 64 MB in 1 kB blocks
    3C00 = 15 MB or > 64 MB (Test further with
    INT 15 E8)

    AH = E8h Big Memory size (over 64 kB)
    AL = 01h Big Memory Size, 16 Bit
    (Windows NT 3.1 and OS/2 2.11 and 2.20)
    Exit:
    Carry 0 => E801 Supported
    AX Memory 1 MB to 16 MB, in 1 kB blocks
    BX Memory above 16 MB, in 64 kB blocks
    CX Configured memory 1 MB to 16 MB, in 1 kB blocks
    DX Configured memory above 16 MB, in 64 kB blocks

    AL = 81h Big Memory Size, 32-Bit Protected Mode
    (Windows NT 3.1 and OS/2 2.11 and 2.20)
    Exit:
    Carry 0 => E881 supported
    EAX Memory 1 MB to 16 MB, 1 kB blocks
    EBX Memory above 16 MB, 64 kB blocks
    ECX Configured memory 1 MB to 16 MB, 1 kB blocks
    EDX Configured memory above 16 MB, 64 kB blocks

    Тип и объем ОЗУ можно узнать через DMI структкры (типа 6). За подробностями BIOS_DMI_20.pdf
    Также можно SPD блоки напрямую прочитать с планок памяти.