首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QEMU CPU仿真原理

QEMU CPU仿真原理
EN

Stack Overflow用户
提问于 2013-01-02 16:26:52
回答 1查看 2.1K关注 0票数 10

在QEMU中,操作系统可以在软件仿真CPU上运行。如何能被软件模仿的CPU?,我想知道细节。

如果CPU被软件模拟,寄存器是否用主机系统内存?进行仿真?

假设有ARM装配代码

代码语言:javascript
复制
LDRB r0, [r1], #1

如何在x86环境中进行模拟?

我的猜测是,仿真软件保留了r0 (4字节)、r1 (4字节)的内存映射空间,然后更新相应内存位置的寄存器值。我说错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-02 16:32:08

有关由QEMU完成的ARM CPU状态的C级建模,请参见这个文件

它非常直接,而且(当然)正如您所怀疑的那样,寄存器(和所有其他状态)都被建模为C变量。

核心结构开始于:

代码语言:javascript
复制
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;
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14125524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档