I know this is probably a really dumb question, but this is a Question and Answer forum, so... on page 63 of the the book where it talks about Memory Address spaces, it says, "Both memories are 16-bit wide
and have a 15-bit address space, meaning that the maximum addressable size of each
memory is 32K 16-bit words."
Can someone hold my hand and walk me through how/why the maximum addressable size of each memory is 32K?
"Both memories are 16-bit wide" means that each memory word contains 16 bits of data.
"and [both] have a 15-bit address space" means that there are only 15 bits in the address values that are used to choose which word in the memory is read/written.
Since there are 15 bits that can be either 0 or 1, there are 2^15 = 32768 distinct combinations.
As to why only 15 bits are used for addresses, there is no easy way to use an address >= 32K in A-commands (@).