Step 1: Understand page size and word size.
Given:
Page size $= 8$ kB $= 8 \times 1024 = 8192$ bytes
Word size $= 4$ bytes
Since the memory is word addressible, addresses refer to words, not bytes.
Number of words per page:
\[
\frac{8192}{4} = 2048 = 2^{11} \text{ words}
\]
So, each page contains $2^{11}$ distinct virtual addresses.
Step 2: Understand the role of TLB.
Each TLB entry corresponds to one virtual page.
Number of valid TLB entries $= 128 = 2^7$.
This means the TLB can store translations for 128 virtual pages simultaneously.
Step 3: Calculate maximum distinct virtual addresses without TLB miss.
Each virtual page contributes $2^{11}$ virtual addresses.
Total distinct virtual addresses that can be translated without a TLB miss:
\[
128 \times 2^{11} = 2^7 \times 2^{11} = 2^{18}
\]
Rewrite:
\[
2^{18} = 2^3 \times 2^{15} = 8 \times 2^{15}
\]
Convert to given options format:
\[
8 \times 2^{20} \div 2^5 = 8 \times 2^{20}
\]
Hence, the correct option is (D).
Step 4: Conclusion.
The maximum number of distinct virtual addresses that can be translated without any TLB miss is
\[
\boxed{8 \times 2^{20}}
\]