fbpx
Wikipedia

Memory map

In computer science, a memory map is a structure of data (which usually resides in memory itself) that indicates how memory is laid out. The term "memory map" can have different meanings in different contexts.

PC BIOS memory map

BIOS for the IBM Personal Computer and compatibles provides a set of routines that can be used by operating system or applications to get the memory layout. Some of the available routines are:

BIOS Function: INT 0x15, AX=0xE801:[1]

This BIOS interrupt call is used to get the memory size for 64MB+ configurations. It is supported by AMI BIOSses dated August 23, 1994 or later. The caller sets AX to 0xE801 then executes int 0x15. If some error has happened, the routine returns with CF (Carry Flag) set to 1. If no error, the routine returns with CF clear and the state of registers is described as following:

Register Value description
EAX Extended memory between 1M and 16M, in KB. (Maximum value: 0x3C00 = 15360KB).
EBX Count of 64K blocks above 16M.
ECX Configured memory 1M to 16M, in KB.
EDX Count of configured 64K blocks above 16M.

BIOS Function: INT 0x15, AX=0xE820 - GET SYSTEM MEMORY MAP:[2]

Input:

Register Value description
EAX 0x0000E820
EBX Continuation value or 0x0 to start at beginning of map.
ECX Size of buffer for result (20 bytes).
EDX 0x534D4150 (ASCII for 'SMAP')
ES:DI segment:offset location of the buffer for result.

SMAP buffer structure:

Offset Size Value description
0 QWORD (8 bytes) Base address of memory map region referred to by EBX.
8 QWORD (8 bytes) Length in bytes.
16 DWORD (4 bytes) Type of address range.

How used: The operating system shall allocate an SMAP buffer in memory (20 bytes buffer). Then set registers as specified in "Input" table. On first call, EBX should be set to 0. Next step is to call INT 0x15. If no error, the interrupt call returns with CF clear and the buffer filled with data representing first region of the memory map. EBX is updated by BIOS so that when the OS calls the routine again, The next region is returned in the buffer. BIOS sets EBX to zero if all done.

See also

  • BIOS
  • RAMMap by Mark Russinovich

References

  1. ^ "15E801".
  2. ^ "15E820".


memory, confused, with, memory, mapped, file, computer, science, memory, structure, data, which, usually, resides, memory, itself, that, indicates, memory, laid, term, memory, have, different, meanings, different, contexts, fastest, most, flexible, cache, orga. Not to be confused with Memory mapped file In computer science a memory map is a structure of data which usually resides in memory itself that indicates how memory is laid out The term memory map can have different meanings in different contexts It is the fastest and most flexible cache organization that uses an associative memory The associative memory stores both the address and content of the memory word further explanation needed In the boot process a memory map is passed on from the firmware in order to instruct an operating system kernel about memory layout It contains the information regarding the size of total memory any reserved regions and may also provide other details specific to the architecture In virtual memory implementations and memory management units a memory map refers to page tables or hardware registers which store the mapping between a certain process s virtual memory layout and how that space relates to physical memory addresses In native debugger programs a memory map refers to the mapping between loaded executable or library files and memory regions These memory maps are used to resolve memory addresses such as function pointers to actual symbols PC BIOS memory map EditBIOS for the IBM Personal Computer and compatibles provides a set of routines that can be used by operating system or applications to get the memory layout Some of the available routines are BIOS Function INT 0x15 AX 0xE801 1 This BIOS interrupt call is used to get the memory size for 64MB configurations It is supported by AMI BIOSses dated August 23 1994 or later The caller sets AX to 0xE801 then executes int 0x15 If some error has happened the routine returns with CF Carry Flag set to 1 If no error the routine returns with CF clear and the state of registers is described as following Register Value descriptionEAX Extended memory between 1M and 16M in KB Maximum value 0x3C00 15360KB EBX Count of 64K blocks above 16M ECX Configured memory 1M to 16M in KB EDX Count of configured 64K blocks above 16M BIOS Function INT 0x15 AX 0xE820 GET SYSTEM MEMORY MAP 2 Input Register Value descriptionEAX 0x0000E820EBX Continuation value or 0x0 to start at beginning of map ECX Size of buffer for result 20 bytes EDX 0x534D4150 ASCII for SMAP ES DI segment offset location of the buffer for result SMAP buffer structure Offset Size Value description0 QWORD 8 bytes Base address of memory map region referred to by EBX 8 QWORD 8 bytes Length in bytes 16 DWORD 4 bytes Type of address range How used The operating system shall allocate an SMAP buffer in memory 20 bytes buffer Then set registers as specified in Input table On first call EBX should be set to 0 Next step is to call INT 0x15 If no error the interrupt call returns with CF clear and the buffer filled with data representing first region of the memory map EBX is updated by BIOS so that when the OS calls the routine again The next region is returned in the buffer BIOS sets EBX to zero if all done See also EditBIOS RAMMap by Mark RussinovichReferences Edit 15E801 15E820 This computer science article is a stub You can help Wikipedia by expanding it vte Retrieved from https en wikipedia org w index php title Memory map amp oldid 1144705740, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.