1. In a smart mobile phone device having a memory and a processor therein, a method comprising: executing a virtual machine monitor to service one or more virtual machines, wherein the virtual machine monitor operates in a first part of the memory that is not accessible to any of the one or more virtual machines that are serviced by the virtual machine monitor; loading a protected program for one of the virtual machines into a second part of the memory; and protecting the protected program based on a range of memory locations or regions occupied by the protected program, wherein protecting the protected program comprises: (a) specifying in one or more registers of the processor, the range of memory locations or regions to be protected, and (b) selectively blocking a memory access attempt to the range of memory locations or regions to be protected based on an access type for the memory access attempt and based further on the memory access attempt having a location within the range of memory locations or regions to be protected.