Quote by JasonJo
wow thanks for the detailed post!
btw, i meant 500kb = 8 million bits. so the MAR must be able to store addresses oh that range, sorry for the confusion. so the question is now, how many binary bits does it take to store up to 8 million? thanks guys

No, you don't care about the bits, because the computer can't directly retrieve an arbitrary individual bit from memory.
and i guess if i have 20 bits for an address field, maximum memory size would be 2^20 1 ? like if i have 4 bits, the highest number i can store is 15 or 2^4  1? am i getting it?

If you have 4 bits, what are the numbers you can store? Write them all down and count them up.