我尝试检查ARM架构ID在IOS(iPad/iPhone的)码等成功编译但失败执行在iOS上安装MRC指令?
"mrc p15,0,r1,c0,c0,0"
指令通编译但无法执行时,Xcode显示"EXC_BAD_INSTRUCTION"
。 有什么建议吗?
我尝试检查ARM架构ID在IOS(iPad/iPhone的)码等成功编译但失败执行在iOS上安装MRC指令?
"mrc p15,0,r1,c0,c0,0"
指令通编译但无法执行时,Xcode显示"EXC_BAD_INSTRUCTION"
。 有什么建议吗?
从ARMv7的架构参考手册:
MRC
移动到ARM核心寄存器从协处理器使协处理器 传送一个值,以一个ARM核心寄存器或到条件标志。如果 没有协处理器可以执行该指令,则会产生一个未定义指令 异常。
显然,那里没有从哪里读取值。
您不能在某些特定的寄存器中使用MRC。 只有在超级用户模式下才允许使用此类访问。 这就是说什么时候操作系统启动。
之后,您将无法访问此寄存器。
您可能想要访问循环计数器?不是? 我认为这将不可能在iOS上。
谢谢你的想法。其实我想知道他们支持的指令集(SIMD,Thumb,NEON),我认为这是在Android和iOS上工作的独特方式。 – lcljesse
有人发现苹果将USEREN寄存器设置为0,这意味着无法访问性能计数器,但架构/指令集也被禁止? – lcljesse