64-bithexoffsetmemory-addressbase-address

How to calculate the target physical address given the base address and the memory


So given I have a 64 bit machine. I know that the memory of the address where my program loads is )

0x8000:0000 and 

I need to find the destination memory address such that from 0x8000:0000 , I have at least 512 MB between.

So how do I find out what this destination memory is?

The calculation I did was 8000:0000 + 0x20000000 = result is the destination. But I am not entirely sure if it is correct. So I would need some help in here. Can anyone help me on this?


Solution

  • Something like 0x8000:0000 is typically used to represent a an address in segment:offset notation, when used with a segmented memory architecture. Is that what you're dealing with here? If so, 0x8000:0000 = 0x80000. And 0x80000 + 0x20000000 = 0x20080000.