Armv8是Armv7之后的一個重要架構(gòu)更新。其中一個主要的變化是引入了64的架構(gòu),即AArch64。AArch64狀態(tài)只有在Armv8架構(gòu)中才有。而且在AArch64狀態(tài)下執(zhí)行的代碼只能使用A64指令集废睦。當(dāng)然ARM為了維持整個生態(tài)參與者的利益,Armv8還是保持與現(xiàn)有32位體系結(jié)構(gòu)兼容性的AArch32养泡,即Armv8之前的Armv7配置文件定義的那套設(shè)計規(guī)范嗜湃。AArch32今天不會進(jìn)行具體介紹,今天的重點是AArch64澜掩,但是不管怎么變最本質(zhì)的規(guī)則是不會變的购披,ARM對所有硬件資源的操作,都抽象成對寄存器的操作输硝,寄存器隱藏了硬件的具體操作細(xì)節(jié)提供配置的接口今瀑,硬件處理器拿著這些配置負(fù)責(zé)具體的執(zhí)行。下面具體看一下在AArch64狀態(tài)的一些主要技術(shù)細(xì)節(jié):
1 AArch64狀態(tài)下的寄存器
2 異常級別
3 鏈接寄存器
4 堆棧指針寄存器
5 預(yù)留的核心寄存器名字
6 預(yù)留的擴(kuò)展的寄存器名字
7 程序計數(shù)器
8 帶條件的執(zhí)行
9 Q標(biāo)志
10 進(jìn)程狀態(tài)
11 保存的程序狀態(tài)寄存器(SPSR)
12 A64指令集
參考資料
DUI0801I_armasm_user_guide