Link to home
Start Free TrialLog in
Avatar of Pancake_Effect
Pancake_EffectFlag for United States of America

asked on

Can someone convert memory address (hex) into MB for me?

Long story short, can someone convert this hex number memory address for me into MB?

0x000000022bffffff
---------------------------------------------

Long Story, I have to do some memory mapping to fix a problem with a crappy foxconn mobo to accept my fermi motherboard haha. That is the hex number I got from my mobo, I just don't understand how to view that as a MB form.

This is the guide I'm following:

vladh4x0r wrote:
cjmc45321988, just wrote a walkthrough for you below -- beer appreciated :D. It is a manual process that involves memory address computations, and was never meant to be user-friendly -- blame your mainboard BIOS writers for having to clean up after them. If you get stuck somewhere, post the specific step (and the output of the commands), and we can try to help further. In the future, please provide the relevant hardware configuration - in this case at minimum the Windows version (and 32-bit vs 64-bit), amount of RAM installed, and exact mainboard model.

To summarize:

1) Boot into 64-bit Linux, run these commands, and save the output:
dmesg | grep e820
cat /proc/mtrr

2) Get the last memory address (from the first command). In the above example, it's 0x1AC000000 in hex, or 6848MB:
[ 0.000000] BIOS-e820: 0000000100000000 - 00000001ac000000 (usable)

3) Compute the last address covered by write-back MTRRs (from the second command). In the above example, it's 6144MB + 512MB = 6656MB or 0x1A0000000 in hex:
reg02: base=0x180000000 (6144MB), size= 512MB: write-back, count=1

3) If the sizes are the same, stop here - this is not the problem. If the sizes are different, the first number is expected to be larger than the second number. Take the smaller number. This is the top address of your cached memory. In the example above, it is 0x1A0000000 hex, or 6656MB.

4) Boot into Windows, and change the current Windows boot loader entry to truncate the memory at this lower address. Make a backup copy of the current loader entry first, in case of error. For Windows 7, the steps are (must run from a command prompt that has been "run as administrator"):
bcdedit /copy {current} /d "Windows 7 - copy"
bcdedit /set {current} truncatememory 0x1A0000000
Avatar of Joe Winograd
Joe Winograd
Flag of United States of America image

I haven't read the long story yet, but the short story is:
022BFFFFFF = 9,328,132,095

Regards, Joe
Avatar of Pancake_Effect

ASKER

Is that in bit or bytes etc?

This is in reference for my system memory so I need it in MB.

Looks too big too be in MB I think

Basically in the long story the poster states:



Let the last memory address (from the first command). In the above example, it's 0x1AC000000 in hex, or 6848MB

But that is someone else's computer, so I imagine mine is different number since I have more memory. My number is showing 0x000000022bffffff when I do the commands. But 9,328,132,095 looks too big to be in MB.
ASKER CERTIFIED SOLUTION
Avatar of Joe Winograd
Joe Winograd
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Our messages just crossed, but I think I answered your last question.
8896 is the number I was looking for. Thank you very much Joe!
You're very welcome!
Sorry to bother you again, but while I have you here for a moment do you know what

8704MB would be if we convert this number back to a memory address? NOTE: I know this is a different number than the 8896.

Edit: Created new question post for this

https://www.experts-exchange.com/questions/28233924/Convert-8704MB-into-hex-for-me.html
8704MB = 0x220000000

See detailed explanation at new question. Cheers, Joe
Actually,
MB = 1,000,000 bytes  (10^6)
MiB = 1,048,576 bytes (2^20)

https://en.wikipedia.org/wiki/Mebibyte