title: principle of QEMU CPU emulation
body: <p>In QEMU, an operating system can run above software emulated CPU.
  <strong>How can be a CPU emulated by software?</strong>
  I want to know about detail.</p>
  
  <p><strong>If CPU is emulated by software does registers are emulated with host system memory?</strong></p>
  
  <p>Let say there is ARM assembly code</p>
  
  <pre><code>LDRB r0, [r1], #1
  </code></pre>
  
  <p><strong>How can this be emulated in x86 environment?</strong></p>
  
  <p>My guess is that emulating software keeps memory mapping space for <code>r0</code> (4 bytes), <code>r1</code> (4 bytes) and then updates the register value for corresponding memory location... Am I wrong?</p>