In QEMU, an operating system can run above software emulated CPU. How can be a CPU emulated by software? I want to know about detail.
If CPU is
Please see this file for the C-level modelling of the state of an ARM CPU as done by QEMU.
It's pretty straight-forward, and (of course) as you suspect the registers (and all other state) are modelled as C variables.
The core structure begins:
typedef struct CPUARMState {
/* Regs for current mode. */
uint32_t regs[16];
/* Frequently accessed CPSR bits are stored separately for efficiency.
This contains all the other bits. Use cpsr_{read,write} to access
the whole CPSR. */
uint32_t uncached_cpsr;
uint32_t spsr;