嵌入式系統(三) ARM 指令彙編(3)

2021-10-03 18:20:15 字數 2325 閱讀 8199

在(2)中基本上把arm的儲存訪問指令過了一遍,今天搞搞其他型別的指令。

(3)arm分支指令

(4)協處理器指令

資料處理指令大致可分為3類:

資料傳送指令;

算術邏輯運算指令;

比較指令。

資料處理指令只能對暫存器的內容進行操作,而不能對記憶體中的資料進行操作。所有arm資料處理指令均可選擇使用s字尾,並影響狀態標誌。

mov指令將8點陣圖立即數或暫存器傳送到目標暫存器(rd),可用於移位運算等操作。

同型別的指令還有mvn,它可以實現資料的非傳遞,即把運算元取反後送至目標暫存器。

.mov指令與ldr指令都是往目標暫存器中傳送資料,但是它們有什麼區別嗎?

mov指令用於將資料從乙個暫存器傳送到另乙個暫存器中,或者將乙個常數傳送到乙個暫存器中,但是不能訪問記憶體。ldr指令用於從記憶體中讀取資料放入暫存器中

算術邏輯運算指令包括「加/減」以及「與/或/異或」等指令,它們的格式如下:

比較指令將兩個數值進行的特定運算,根據運算結果影響cpsr的相關標誌位,用於後面程式的條件執行,但是運算結果不予儲存。

對64位乘法指令而言,rdlo儲存兩個操作暫存器運算結果的低32位,rdho儲存高32位。另外,32位乘加指令的加運算元是通過乙個暫存器另外給的,而64位乘加指令的加運算元是儲存運算結果的兩個運算元。

在arm中有兩種方式可以實現程式的跳**

1.直接向pc暫存器賦值實現跳轉;

例: mov pc,r14

2.使用分支指令直接跳轉

b:分支指令,跳轉目標位址基於pc的偏移量,為24位常數(4g),因為用來表示目標位址的位數有限,b指令無法實現4g範圍內的任意跳轉。

帶鏈結的分支指令——bl指令除了具有跳轉功能,還能在跳轉之前將下一條指令的位址拷貝到r14(即lr) 鏈結暫存器中,它適用於子程式呼叫(呼叫完之後還會返回,返回後可以直接讀取跳轉前的下一條指令)。跳轉範圍限制在當前指令的±32m位元組位址內。指令格式如下:

在addr1時進行跳轉,同時將addr2存入鏈結暫存器lr,使用 mov pc lr,直接將鏈結暫存器存入pc,起到返回addr2的作用。很方便。

帶狀態切換的分支指令——bx指令除了具有跳轉功能,還能在跳轉的同時切換處理器狀態。其跳轉範圍不受限制。指令格式如下:

arm核心支援協處理器操作,協處理器的控制要通過協處理器命令實現。

arm處理器通過cdp指令通知arm協處理器執行特定的操作。協處理器資料操作完全是協處理器內部的操作,用於初始化arm協處理器,完成協處理器暫存器的狀態改變。

指令特點:

該操作由協處理器完成,即對命令引數的解釋與協處理器有關,指令的使用取決於協處理器。

若協處理器不能成功地執行該操作,將產生未定義指令異常中斷。

協處理器資料存/取指令從儲存器讀取資料裝入協處理器暫存器,或將協處理器暫存器的資料存入儲存器。

ldc——協處理器資料讀取指令,ldc指令從某一連續的記憶體單元將資料讀取到協處理器的暫存器中。進行協處理器資料的資料傳送時,由協處理器來控制傳送的字數。若協處理器不能成功地執行該操作,將產生未定義指令異常中斷。

嵌入式系統 概述 ARM指令

嵌入式系統是以應用為中心,以計算機技術為基礎,採用可裁剪軟硬體,適用於對功能 可靠性 成本 體積 功耗等有嚴格要求的專用計算機系統。它一般由嵌入式微處理器 外圍硬體裝置 嵌入式作業系統及使用者應用程式四部分組成。簡單說,網咖裡的電腦是通用計算機,而 豆漿機等內含的都有嵌入式系統。嵌入式系統的特點是功...

嵌入式ARM彙編複習

嵌入式系統是將先進的計算機技術 半導體技術和電子技術與各個行業的具體應用相結合後的產物。嵌入式系統的特點 形式多樣 面向特定應用,處理器和處理器體系結構型別多,關注成本,實時性和可靠性的要求 嵌入式微處理器的體系結構 可以分為馮 諾依曼 von neumann 結構或哈佛 harvard 結構兩大類...

嵌入式ARM中常用的彙編指令講解

在介紹之前,先把arm中常見的暫存器及其別名截圖,如下 其中的r1,r2,r3常用作傳遞引數,r4至r11儲存區域性變數,r13常用作資料棧指標,別名sp r14暫存器稱作連線暫存器,別名lr,常用儲存子程式返回位址 暫存器r15是程式計數器,別名pc 1 相對跳轉指令 b bl 這倆條指令可跳轉範...