我嘗試檢查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