ios使用了arm處理器,並根據裝置的硬體效能開發了不同的指令集.arm處理器下的指令集有:
所有的指令集原則上向下相容,新的指令集會相容原來的指令集,只是不能充分利用硬體的優勢無法發揮更好的效能.如iphone4s的cpu預設使用armv7指令集,但是也同時相容armv6指令集,之前使用armv6架構打包的軟體依然可以在iphone4s上使用,只是會慢一點.而且arm指令集出現在真機裝置上,模擬器使用x86架構,沒有arm指令集.
在xcode中,與指令集有關的設定主要有三個:
為了盡可能多地支援多種裝置,打包時需要根據需要生成支援多種指令集的二進位制檔案,習慣上稱為通用二進位制檔案(fat binary 或者universal binary).如果擁有了所有源**的訪問許可權,可以通過設定xcode來打包支援對應指令集集合的二進位制檔案,但是實際開發中,多數情況你只能拿到打包好的檔案,而實際上並不需要那麼多指令集,如果全部打包在應用裡就會導致應用包體積增大,這時就需要根據需要進行二進位制檔案的拆分組合.拆分組合二進位制檔案可以使用mac自帶的lipo工具.
對於包含多種指令集的通用二進位制檔案,如果只需要其所支援指令集的子集,則可以使用
lipo source_binary_file -thin armxx -output arm_armxx
其中:source_binary_file:原始二進位制檔案
armxx:需要分離的指令集,如armv7,armv7s,arm64,arm64e
arm_armxx:分離之後的二進位制檔名
進行拆分.例如,只需要arm64指令集:
lipo source_binary_file -thin arm64 -output arm_arm64
合併不同指令集集合的二進位制檔案,可以使用
lipo -create armxx armyy ... -output arm_destination_file
其中:armxx, armyy:為支援固定指令集的二進位制檔案;
... : 原檔案的數目可以為多個
arm_destination_file: 最終合成的支援多指令集機構的通用二進位制檔案
這裡有乙個注意點就是:
合併之後的通用二進位制檔案體積會比合併之前各個檔案的體積之和大.
mysql bin指令集 mysql指令集
一 連線mysql。1 連線到本機上的mysql。首先開啟dos視窗,然後進入目錄mysql bin,再鍵入命令mysql u root p,回車後提示你輸密碼.注意使用者名稱前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼.如果剛安裝好mysql,超級使用者root是沒有密...
gbip指令集 GB CPU 指令與指令集
gb cpu 指令與指令集 到目前為止,雖然 cpu 已經擁有了算術邏輯單元 alu 進行算術邏輯運算和使用暫存器儲存資料,但它仍然缺少一些正常工作時需要的資訊.就像建築工人無法僅僅依靠材料和工具憑空造出一棟高樓大廈,除非建築師能為其提供詳細的建築圖紙.cpu 也是一樣的,開發者需要通過某種方式告訴...
RISC V指令集介紹 整數基本指令集
前段時間在修改 picorv32 核心 乙個riscv 32的cpu核心 閱讀了一下riscv指令集的手冊。在此,做一下簡單記錄。rv32i 32位risc v整數指令集 1.暫存器 32個x暫存器,rv32下x reg是32位寬 x0 硬連線 常數0 x1 x31 31個通用reg pc 額外的使...