【问题标题】:sucess compile but fail execute assemble MRC instruction on iOS?成功编译但在 iOS 上执行汇编 MRC 指令失败?
【发布时间】:2011-12-14 06:06:43
【问题描述】:

我尝试在 iOS (iPad/iPhone) 代码中检查 ARM 架构 ID,例如

"mrc p15,0,r1,c0,c0,0"

指令通过编译但无法执行,Xcode 显示"EXC_BAD_INSTRUCTION"。 有什么建议吗?

【问题讨论】:

    标签: ios assembly arm


    【解决方案1】:

    来自 ARMv7 架构参考手册:

    MRC

    从协处理器移动到 ARM 内核寄存器会导致协处理器 将值传输到 ARM 内核寄存器或条件标志。如果 没有协处理器可以执行指令,未定义指令 产生异常。

    显然,没有从哪里读取值。

    【讨论】:

      【解决方案2】:

      您不能将 MRC 与某些特定寄存器一起使用。 仅在超级用户模式下才允许此类访问。 也就是说,当操作系统启动时。

      之后您将无法访问此寄存器。

      您可能想访问循环计数器?不 ? 我认为这在 iOS 上是不可能的。

      【讨论】:

      • 谢谢你的想法。实际上我想知道他们支持的指令集(SIMD、Thumb、NEON),我希望这是在 Android 和 iOS 上工作的独特方式
      • 有人发现苹果将USEREN寄存器设置为0,表示不能访问性能计数器,但架构/指令集也被禁止?
      猜你喜欢
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      相关资源
      最近更新 更多