一篇文章讀懂Armv8 AArch64

Armv8是Armv7之后的一個(gè)重要架構(gòu)更新。其中一個(gè)主要的變化是引入了64的架構(gòu),即AArch64。AArch64狀態(tài)只有在Armv8架構(gòu)中才有。而且在AArch64狀態(tài)下執(zhí)行的代碼只能使用A64指令集。當(dāng)然ARM為了維持整個(gè)生態(tài)參與者的利益,Armv8還是保持與現(xiàn)有32位體系結(jié)構(gòu)兼容性的AArch32,即Armv8之前的Armv7配置文件定義的那套設(shè)計(jì)規(guī)范。AArch32今天不會(huì)進(jìn)行具體介紹,今天的重點(diǎn)是AArch64,但是不管怎么變最本質(zhì)的規(guī)則是不會(huì)變的,ARM對(duì)所有硬件資源的操作,都抽象成對(duì)寄存器的操作,寄存器隱藏了硬件的具體操作細(xì)節(jié)提供配置的接口,硬件處理器拿著這些配置負(fù)責(zé)具體的執(zhí)行。下面具體看一下在AArch64狀態(tài)的一些主要技術(shù)細(xì)節(jié):

1 AArch64狀態(tài)下的寄存器

1 AArch64狀態(tài)下的寄存器.jpg

2 異常級(jí)別

2 異常級(jí)別.jpg

3 鏈接寄存器

3 鏈接寄存器.jpg

4 堆棧指針寄存器

4 堆棧指針寄存器.jpg

5 預(yù)留的核心寄存器名字

5 預(yù)留的核心寄存器名字.jpg

6 預(yù)留的擴(kuò)展的寄存器名字

6 預(yù)留的擴(kuò)展的寄存器名字.jpg

7 程序計(jì)數(shù)器

7 程序計(jì)數(shù)器.jpg

8 帶條件的執(zhí)行

8 帶條件的執(zhí)行.jpg

9 Q標(biāo)志

9 Q標(biāo)志.jpg

10 進(jìn)程狀態(tài)

10 進(jìn)程狀態(tài).jpg

11 保存的程序狀態(tài)寄存器(SPSR)

11 保存的程序狀態(tài)寄存器(SPSR).jpg

12 A64指令集

12 A64指令集.jpg

參考資料

DUI0801I_armasm_user_guide

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容