1. A method of simulating a device in a computer system operable in both a secure mode and a non-secure mode, comprising: receiving a first exception caused by a first non-secure instruction, and in response thereto, executing one or more secure operations to determine a first memory address accessed by the first non-secure instruction; determining that the first memory address is included in a set of memory addresses associated with the device; and performing one or more secure simulation operations based on the first non-secure instruction.