ARM指令集

ARM指令集

科技術語
在ARM中有兩種方式可以實現程序的跳轉,一種是跳轉指令,另一種是直接向PC寄存器寫入目标地址的值通過直接向PC寄存器寫入目标寄存器的數字可以實現在4GB 地址空間的任意跳轉,這種跳轉又稱為長跳轉,如果在殘肢令前面使用MOV LR,PC等指令,可以保存返回來的地址值,這樣就實現了在4GB空間中的子程序調用。[1]
    中文名:ARM指令集 外文名: 所屬學科: ADC:帶進位的32位數加法 ADD:32位數相加 AND:32位數的邏輯與

定義

在ARM版本5以前的體系中,傳送到PC寄存器中的目标地址值的低兩位bits[1∶0]被忽略,跳轉指令隻能在ARM指令集中執行,即程序不能從ARM狀态切換到Thumb狀态。就在分支之前,在寄存器R14中裝載上R15的内容,因此可以重新裝載R14到R15中來返回到這個分支之後的那個指令處執行,它是子例程的一個基本但強力的實現。BX指令跳轉到指令中指定的目标地址,目标地址處的指令可以是ARM指令,也可以是Thumb指令。

詳解

跳轉指令

通過直接向PC寄存器中寫入目标地址值可以實現在4GB地址空間中任意跳轉,這種跳轉指令又稱為長跳轉。如果在長跳轉指令之前使用MOVLR,PC等指令,則可以保存将來返回的地址值,這樣就實現了在4GB地址空間中的子程序調用。

在ARM版本5及以上的體系中,實現了ARM指令集和Thumb指令集的混合使用。指令使用目标地址值的bit來确定目标程序的類型。bit的值為1時,目标程序為Thumb指令;bit值為0時,目标程序為ARM指令。

相關詞條

相關搜索

其它詞條