ARM Cortex M3 B x 指令詳解

2021-05-25 08:41:00 字數 725 閱讀 3778

b指令

b指令的格式為:

b 目標位址

b指令是最簡單的跳轉指令。一旦遇到乙個 b 指 令,arm 處理器將立即跳轉到給定的目標位址,從那裡繼續執行。注意儲存在跳轉指令中的實際值是相對當前pc值的乙個偏移量,而不是乙個絕對位址,它的值由彙編器來 計算(參考定址方式中的相對定址)。它是 24 位有符號數,左移兩位後有符號擴充套件為 32 位,表示的有效偏移為 26 位(前後32mb的位址空間)。以下指令:

b label ;程式無條件跳轉到標號label處執行

cmp r1,#0 ;當cpsr暫存器中的z條件碼置位時,程式跳轉到標號label處執行

beq label

舉例:b resethandler; //復位

b .b .

. 表示當前位址。  b .  跳轉到當前位址。意思是說進入死迴圈當中。

通過 b bl blx bx 可以完成在當前指令向前或者向後32mb的位址空間的跳轉(為什麼是32mb呢?暫存器是32位的,此時的值是24位有符號數,所以32mb)。b是最簡單的跳轉指令。要注意的是,跳轉指令的實際值不是絕對位址,而是相對位址——是相對當前pc值的乙個偏移量,它的值由彙編器計算得出。bl非常常用。它在跳轉之前會在暫存器lr(r14)中儲存pc的當前內容。

bl的經典用法如下:

bl next       ; 跳轉到next 

…… next 

…… mov pc, lr    ; 從子程式返回。

ARM Cortex M3 學習筆記 6

最近在學arm cortex m3,找了本號稱很經典的書 an definitive guide to the arm cortex m3 在看。這個系列學習筆記其實就是在學習這本書的過程中做的讀書筆記。這一章的內容大體有個了解就行了,後面章節中會對這裡講到的各個部分深入講解。3級流水線,流水線的3...

ARM Cortex M3體系結構

來自 arm cortex m3處理器體系結構.ppt 定位 概況 cortex m3核心 核心流水線分3個階段 取指 解碼和執行。當遇到 分支指令時,解碼階段也包含 的指令取指,這提高了執行的速度。處理器在解碼階段期間自行對分支目的地指令進行取指。在稍後的執行過程中,處理完分支指令後便知道下一條要...

彙編 5 0 BX 和loop指令

1.要完整的描述乙個記憶體單元,需要兩種資訊 1.記憶體單元的位址 2.記憶體單元的長度 型別 2.表示乙個暫存器或乙個記憶體單元中的內容。如 ax 表示ax中的內容。中的元素可以有3種型別 1.暫存器名 2.段暫存器名 3.記憶體單元的實體地址 乙個20位的資料 3.約定符號idata表示常量 用...