If i have 4 contiguos bytes (Example: 78h, F2h, 43h, A0h) in memory that refer to a 32-bit physical address. Then how can i form a 32-bit physical address out of these?

After forming the physical address how can i read contiguous data (1byte at a time) from that address and display each byte on screen?

If anyone knows about this then please reply. I am stuck in an application due to this.

9 Years
Discussion Span
Last Post by Ancient Dragon

You need to supply more information. What O/S and what CPU?

If you are writing a DOS application (with an x86 CPU running in real mode), then pointer values in RAM will be a physical addresses.

But if you are working in Linux or Windows with a x86 CPU then your CPU will be in Protected Mode. And addresses will not be physical addresses, but virtual addresses.

To translate from virtual addresses to physical addresses I think you need to write a device driver.

Then you need to worry about endianness, which can vary between CPU types and effect the byte ordering in pointers.

But I am guessing you might not really know what you are asking for when you refer to physical addresses and in fact just be refering to pointers in general, which are really virtual address pointers, for most O/S and most CPU types?.


Well, actually, i m trying to read SMBIOS information. SMBIOS is a region in BIOS that holds infomation about the Hardware of a system. information is stored Type-wise with each type holding info about a particular type of device. All these types are organized in blocks of memory known as Structure. Collection of all these structures is called SMBIOS Structure Table. Now the physical address of this table is read as f0h c2h 0fh 00h (a DWORD, describing 32-bit physical address where Structure table begins: as per SMBIOS specifications). So if These four bytes represent physical address, i guess i need to convert this physical address into virtual address in order to access the actual information. I dont know how to do this conversion. Can you help??? Thanks for the reply....


Oh! That's my Project partner. We both are working on this project. He has written a very long post. I have written it in short so that the reader hasnt got to spend much time reading that loooong post.


One of the two of you need to stop posting and have only one thread to discuss the issue. You can both post in the same thread, so I'm going to close this one.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.