1. A nonvolatile memory card comprising: a nonvolatile semiconductor memory having a plurality of nonvolatile memory cells and capable of storing predetermined information; and a controller for giving an instruction of operation of said nonvolatile semiconductor memory on the basis of a command issued from the outside, wherein said nonvolatile semiconductor memory can store two or more pieces of firmware, and wherein said controller has a volatile semiconductor memory for storing said firmware, and when a firmware selecting instruction is made valid, said controller selects one arbitrary firmware from two or more pieces of firmware which can be stored in said volatile semiconductor memory, stores it in said volatile semiconductor memory, accesses said volatile semiconductor memory and executes a process by said firmware.