# What's the maximum memory address space that the processor can access directly if it connected to a 16-bit memory?

The question is the following: 3. Given a hypothetical microprocessor which generates a 16-bit address (assume that the program counter and address registers are 16 bits wide) and has a 16 bit data bus. a) What is the maximum memory address space that the processor can access directly if it connected to a "16-bit memory"? b) What is the maximum memory address space that the processor can access directly if it is connected to an "8-bit memory"?

It feels like the answer to both would be 2^16, which is equivalent to 24KiB. It also feel natural to say that an 8-bit memory can tranfer 8 bits and a 16 bit memory can transfer 8 or 16 bit words.

But the problem is that the actual answer booklet says the following: In cases (a) and (b), the microprocessor will be able to access 2^16 = 64K bytes; the only difference is that with an 8-bit memory each access will transfer a byte, while with a 16-bit memory an access may transfer a byte or a 16-byte word.

So 1) 64K? Isn't the unit suppose to be KiB? I am very confused. 2) 16-byte word? Shouldn't it be a 16-bits word?

The microprocessor can access $$2^{16} = 65536$$ memory addresses, regardless of the size of data held at each memory address.
If each memory address holds one byte ($$8$$ bits) of data then the total memory size that can be addressed directly is $$2^{16} \text{ bytes}$$, which is $$2^6 \text{ KiB} = 64 \text{ KiB}$$.
On the other hand, if each memory address holds two bytes ($$16$$ bits) then the total memory size that can be addressed directly is $$2 \times 2^6 \text{ KiB} = 128 \text{ KiB}$$.