Question:

In an 8-bit microcontroller, if the program counter is 16-bit wide, then the maximum addressable memory space is:

Show Hint

Remember these standard binary exponential values:
- \(2^{10} = 1\text{ k}\) (Kilo)
- \(2^{20} = 1\text{ M}\) (Mega)
Therefore, a 16-bit address line gives \(2^{16} = 2^6 \times 2^{10} = 64\text{ kB}\) of addressable space.
Updated On: Jun 23, 2026
  • \(64\text{ kB}\)
  • \(128\text{ bytes}\)
  • \(1\text{ MB}\)
  • \(256\text{ kB}\)
Show Solution
collegedunia
Verified By Collegedunia

The Correct Option is A

Solution and Explanation

Concept: In computer architecture, the data width and the address width serve distinct roles:
8-bit Microcontroller Data Width: Indicates that the processor's internal data bus, registers, and Arithmetic Logic Unit (ALU) handle data in 8-bit blocks. This means each unique memory address stores exactly 1 Byte (\(1\text{ Byte} = 8\text{ bits}\)) of data.
Program Counter (PC) Bit Width: The bit width of the Program Counter or address bus determines the total number of unique binary memory addresses the processor can access. For an \(n\)-bit address bus width, the maximum number of unique memory addresses is given by \(2^n\).

Step 1: Calculating the total number of unique memory addresses.

We are given that the Program Counter is 16 bits wide (\(n = 16\)). The total number of unique memory addresses the microcontroller can reference is: \[ \text{Total Addresses} = 2^{16} \] Using index rules to break down the calculation: \[ 2^{16} = 2^6 \times 2^{10} \] We know that \(2^6 = 64\) and \(2^{10} = 1024\). Multiplying these together: \[ \text{Total Addresses} = 64 \times 1024 = 65,536 \text{ distinct locations} \]

Step 2: Determining the total memory capacity in bytes.

Since each individual address location stores exactly 1 Byte of data, the total storage capacity across all addressable space is: \[ \text{Total Memory Space} = 65,536 \text{ locations} \times 1\text{ Byte/location} = 65,536\text{ Bytes} \]

Step 3: Converting bytes into standard kilobytes (kB).

In computer memory metrics, 1 kilobyte (\(\text{kB}\)) is defined as exactly \(1024\text{ Bytes}\) (\(2^{10}\) bytes). To convert our total byte value into kilobytes, we divide by 1024: \[ \text{Memory Space in kB} = \frac{65,536\text{ Bytes}}{1024\text{ Bytes/kB}} \] \[ \text{Memory Space in kB} = 64\text{ kB} \] This shows that a 16-bit program counter can address a maximum memory space of \(64\text{ kB}\), which matches Option (A).
Was this answer helpful?
0
0