ARM工作模式和彙編

2021-10-23 17:46:50 字數 2650 閱讀 5829

各種模式的切換,可以是程式設計師通過**主動切換(通過寫cpsr暫存器),也可以是cpu在某些情況下自動切換。

各種模式下許可權和可以訪問的暫存器不同

作業系統有安全級別要求,因此cpu設計多種模式是為了方便作業系統的多種角色安全等級需要。

arm是io與記憶體統一編址的,

正常工作之外的流程都叫異常,異常會打斷正在執行的工作,並且一般我們希望異常處理完成後繼續回來執行原來的工作。中斷是異常的一種

發生異常後cpu會進入相應的工作模式,與異常相關的工作模式有5種

異常處理中有一些是硬體自動做的,有一些是程式設計師需要自己做的。

cpu設計時提供的異常向量表,一般稱為一級向量表。有些cpu為了支援多個中斷,還會提供二級中斷向量表

異常處理機制(這些操作只能在 arm 態執行)儲存返回位址到 lr_

設定 pc 為相應的異常向量

返回時, 異常處理需要:

4.1 指令與偽指令

(彙編)指令是cpu機器指令的助記符,經過編譯後會得到一串10組成的機器碼,可以由cpu讀取執行。

(彙編)偽指令本質上不是指令(只是和指令一起寫在**中),它是編譯器環境提供的,目的是用來指導編譯過程,經過編譯後偽指令最終不會生成機器碼。

常用偽指令

偶爾會用到的gnu偽指令

最重要的偽指令

arm中有乙個ldr指令,還有乙個ldr偽指令。一般都使用ldr偽指令而不用ldr指令

4.2 彙編特點4.3 8種定址方式4.4 指令字尾

同一指令經常附帶不同字尾,變成不同的指令。經常使用的字尾有:

4.5 條件執行字尾

4.6 多級指令流水線

為增加處理器指令流的速度,arm使用多級流水線.,允許多個操作同時處理,而非順序執行。pc指向正被取指的指令,而非正在執行的指令

4.7 常用指令

訪存指令 ldr/str & ldm/stm & swp

軟中斷指令 swi(software interrupt)

軟中斷指令用來實現作業系統中系統呼叫

協處理器cp15操作指令 mcr & mrc

協處理器:soc內部另一處理核心,協助主cpu實現某些功能,被主cpu呼叫執行一定任務。arm設計上支援多達16個協處理器,但是一般soc只實現其中的cp15(cp:coprocessor)。協處理器和mmu、cache、tlb等處理有關,功能上和作業系統的虛擬位址對映、cache管理等有關。

多暫存器訪問指令

ldr/str每週期只能訪問4位元組記憶體,如果需要批量讀取、寫入記憶體時太慢,解決方案是stm(store register mutiple)/ldm(load register mutiple)

{}rb, 《暫存器 list>        //記憶體塊  ==》暫存器列表

{}rb, 《暫存器 list> //暫存器列表 ==》記憶體塊

stmia	sp, 

//將r0存入sp指向的記憶體處(假設為0x30001000);然後位址+4(即指向0x30001004),將r1存入該位址;然後地 址再+4(指向0x30001008),將r2存入該位址······直到r12內容放入(0x3001030),指令完成。乙個訪存週期同時完成13個暫存器的讀寫

4種棧

!的作用

ldmia	r0, 

ldmia r0!,

感嘆號的作用就是r0的值在ldm過程中發生的增加或者減少最後寫回到r0去,也就是說ldm時會改變r0的值。

^ 的作用

ldmfd	sp!, 

ldmfd sp!, ^

^的作用:在目標暫存器中有pc時,會同時將spsr寫入到cpsr,一般用於從異常模式返回。

ARM工作模式

從程式設計的角度看,arm微處理器的工作狀態有兩種,並可在兩種狀態之間切換 1 arm狀態,此時處理器執行32位的字對齊的arm指令 2 thumb狀態,此時處理器執行16位的,半字對齊的thumb指令 為了相容老晶元 在程式執行的過程中,可以在兩種狀態之間進行相應的轉換。處理器工作狀態的轉變並不影...

arm工作模式

從程式設計的角度看,arm微處理器的工作狀態有兩種,並可在兩種狀態之間切換 1 arm狀態,此時處理器執行32位的字對齊的arm指令 2 thumb狀態,此時處理器執行16位的,半字對齊的thumb指令 為了相容老晶元 在程式執行的過程中,可以在兩種狀態之間進行相應的轉換。處理器工作狀態的轉變並不影...

arm工作模式

一 arm工作模式 arm微處理器支援7種工作模式,分別為 1 使用者模式 usr 用於正常執行程式 2 快速中斷模式 fiq 用於高速資料傳輸 3 外部中斷模式 irq 用於通常的中斷處理 4 管理模式 svc 作業系統使用的保護模式 高許可權 復位和軟體中斷進入 5 資料訪問終止模式 abt 當...