If you have a byte-addressable memory (i.e every byte in the memory has an address) and an address bus of size 12 (i.e 12 wires in the address bus or 12 bits in the Memory Address Register). How much maximum RAM can you support ?
If there are just 2 bits in the address, then there can only be 4 addresses, viz.
00, 01, 10, 11
If 3 bits are allowed in the address, then we can have maximum 8 addresses:
000, 001, 010, 011, 100, 101, 110, 111
So, if we have n bits to store an Address (n-bits in Address Register) or n-wires to transfer the address (Address bus of size 10), then we can have RAM of 2n addresses.
Now there are 2n addresses, and each address is of 1 byte (because its a byte-addressable memory, so every byte will have a unique address or every address will be of 1-byte long).
Hence, total memory will be equal to
size of each address * number of addresses = 8 * 2n
If n=12 (as given in the question)
Size of memory = 8 * 212 bits = 212 bytes = 22 Kilo Bytes (210 Bytes = 1 KB) = 4 KB