I am trying to understand the concept of CPU/memory addressing. If I understand correctly, a CPU with a 24-bit address bus can provide 2^24=16,777,216 addresses. That means it can address 16,777,216 memory locations ? Can I say that is the same as it can address 16 MB or memory ? Does that mean 16M Bytes or 16M words ? Isn't the word length in this case 24-bit which mean's it's not a 'byte' but a 'word'. How long are the words here, how do I know that ? If there were 8-bit (1 byte) then I would understand it being 16MB but 8-bit words don't need a 24-bit address bus anyway. I'm still quite confused about all this.
On the other hand, does a 16-bit word represent and address space of 2^16 = 65.536 ? If so, what is the unit here ? 65.536 words, bytes, locations ? Again, if the word is 16-bit it can't be bytes, right ?
If there's someone who can demistify this for me I would be very grateful.
Thanks.