1.運行模式
1.1:m3架構就只有特權和非特權兩種模式,而A7有1種用戶模式+8種特權模式
1.2:用戶模式不能訪問系統的所有資源,需借助異常來切換到其他模式才能訪問被授以權限的資源
1.3:當發生中斷或異常,處理器進入相應的處理模式,為了保護用戶模式下的寄存器不被破壞,相應的模式提供了對應的寄存器組以供使用
2.寄存器組
2.1:淺色即是與user共用的寄存器,藍色是各個模式所特有的
2.2:未備份寄存器R0-R7,9種模式所共用,切換模式,數據就會被破壞
2.3.:備份寄存器:R8-R14;R13也即sp,存放專用的棧地址;R14即連接寄存器,存放當前子程序的返回地址
2.4:程序計數器:R15,存放指向正在執行的指令的地址+8bytes(32位arm三級流水線,取指>譯碼>執行)
2.5:程序狀態寄存器:CPSR,該寄存器包含了條件標志位、中斷禁止位、當前處理器模式標志等一些狀態位以及一些控制位。所有的處理器模式都共用一個 CPSR 必然會導致沖突,為此,除了 User 和 Sys 這兩個模式以外,其他 7 個模式每個都配備了一個專用的物理狀態寄存器,叫做 SPSR(備份程序狀態寄存器),當特定的異常中斷發生時,SPSR 寄存器用來保存當前程序狀態寄存器(CPSR)的值,當異常退出以后可以用 SPSR 中保存的值來恢復 CPSR
3.GNU匯編語法
3.1:語句組成: label:instruction @ comment
3.2:(1)預定義段:.text 表示代碼段,.data 初始化的數據段,.bss 未初始化的數據段,.rodata 只讀數據段;
(2)自定義段:.section .mysection @定義一個 mysetcion 段
3.3:偽操作:
