Convert 8704MB into hex for me?

I'm working on a memory translation issues on my mobo.

I see an example that 0x1A0000000 = 6656MB.

I know my number is 8704MB. What would that be if converted into a hex memory address as shown above?

For reference on more details, this question was derived from this following EE post:


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
Who is Participating?
Joe Winograd - EE Fellow & MVEConnect With a Mentor DeveloperCommented:
Here you go...similar to last question:

1A0000000 = 6,979,321,856
6,979,321,856/(1024*1024) = 6656 MB

8704*1024*1024 = 9,126,805,504
9,126,805,504 = 0x220000000

Regards, Joe
Pancake_EffectAuthor Commented:
Thanks again! After adding that information to my boot loader, my motherboard is now recognizing my memory. Thank you again! Saved me a few hundred dollars from replacing the mobo.
Joe Winograd - EE Fellow & MVEDeveloperCommented:
You're welcome again. Very glad to hear that you saved some serious money!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.