I think that the question is worded incorrectly since none of the options seem to be correct. The option would've been c) address bus in case the question would've asked about the amount of memory which can be accessed at a time. using Physical address extension allows the cpu to access a larger address space than the limitation set by the address bus/ underlying architecture and is supported by 32 bit intel chips.
https://en.wikipedia.org/wiki/Physical_Address_Extension
A better option would be the minimum of [chip support, OS limit, disk space]
Virtual memory upper limits are set by the OS: for example, on 32-bit Windows the limit is 16TB, and on 64-bit Windows the limit is 256TB.
reference:- http://stackoverflow.com/questions/6608820/is-virtual-memory-infinite