ARM指令集(2) 1.跳轉指令 在ARM中有兩種方式可以實現程序的跳轉:一種是刀‘轉指令;另一種是直接向PC寄存器(R15)中寫入目標地址值。 通過直接向PC寄存器中寫入目標地址值可以實現在46B地址空間中任意跳轉,這種跳轉指令又稱為長跳轉。如果在長跳轉指令之前使用MOV LR,PC等指令,則可以保存將來返回的地址值,這樣就實現了在46B地址空間中的子程序調用。 在ARM版本5及以上的體系中,實現了ARM指令集和Thumb指令集的混合使用。指令使用目標地址值的bit[0]來確定目標程序的類型。bit[0]的值為1時,目標程序為Thumb指令;bit[0]值為0時,目標程序為ARM指令。 在ARM版本5以前的體系中,傳送到PC寄存器中的目標地址值的低兩位bits[1∶0]被忽略,跳轉指令只能在ARM指令集中執行,即程序不能從ARM狀態切換到Thumb狀態。非T系列ARM版本5體系不含Thumb指令,當程序試圖切換到Thumb狀態時,將產生未定義指令異常中斷。 ARM跳轉指令可以從當前指令向前或向后的32MB地址空間跳轉。這類跳轉指令有以下4種。
上傳時間: 2013-11-20
上傳用戶:妄想演繹師
arm指令集(1) ARM跳轉指令可以從當前指令向前或向后的32MB地址空間跳轉。這類跳轉指令有以下4種。 (1)B 跳4專指令 B〔條件) (地址) B指令屬于ARM指令集,是最簡單的分支指令。一旦遇到一個B指令,ARM處理器將立即跳轉到給定的地址,從那里繼續執行。注意:存儲在分支指令中的實際值是相對當前R15的值的一個偏移量,而不是一個絕對地址。它的值由匯編器來計算,是24位有符號數,左移兩位后有符號擴展為32位,表示的有效偏移位為26位(+/- 32 MB)。 (2)BL 帶返回的跳轉指令 BI,〔條件) (地址) BL指令也屬于ARM指令集,是另一個分支指令。就在分支之前,在寄存器R14中裝載上R15的內容,因此可以重新裝載R14到R15中來返回到這個分支之后的那個指令處執行,它是子例程的一個基本但強力的實現。 (3)BLX 帶返回和狀態切換的跳轉指令 BLX <地址> BLX指令有兩種格式,第1種格式的BLX指令記作BLX(1)。BLX(1)從ARM指令集跳轉到指令中指定的目標地址,并將程序狀態切換到Thumb狀態,該指令同時將PC寄存器的內容復制到LR寄存器中。 BLX(1)指令屬于無條件執行的指令。 第2種格式的BLX指令記作BLX(2)。BLX(2)指令從ARM指令集跳轉到指令中指定的目標地址,目標地址的指令可以是ARM指令,也可以是Thumb指令。目標地址放在指令中的寄存器<dest>中,該地址的bit[0]值為0,目標地址處的指令類型由CPSR中的T位決定。該指令同時將PC寄存器的內容復制到LR寄存器中。 (4)BX 帶狀態切換的跳轉指令 BX(條件) (dest) BX指令跳轉到指令中指定的目標地址,目標地址處的指令可以是ARM指令,也可以是Thumb指令。目標地址值為指令的值和0xFl·FFFFFF做“與”操作的結果,目標地址處的指令類型由寄存器決定。
上傳時間: 2014-12-27
上傳用戶:laomv123
PIC系列單片機典型應用程序集
上傳時間: 2014-01-17
上傳用戶:攏共湖塘
80C51 匯編指令集:TF1:計時器1溢出標志位,當計時器1溢出,時此位=1,發出中斷請求,然后硬件自動清0.TR1:計時器1的控制位,TR1=1時,計時開始,TR1=1時則停止。TF0:計時器0溢出標志位,當計時器0溢出,時此位=1,發出中斷請求,然后硬件自動清0。TR0:計時器0的控制位,TR0=1時,計時開始,TR0=1時則停止。IE1:外部中斷1的請求標志位,當外部中斷有請求時,此位=1,發出中斷請求,然后硬件自動清0。IT1:外部中斷1的中斷類型控制,當IT1=1時,邊沿觸發方式,下降沿觸發有效,當IT1=0時,電平觸發方式,低電平觸發有效。P3.3信號觸發。IE0:外部中斷0的請求標志位,當外部中斷有請求時,此位=1,發出中斷請求,然后硬件自動清0。IT0:外部中斷0的中斷類型控制,當IT0=1時,邊沿觸發方式,下降沿觸發有效,當IT0=0時,電平觸發方式,低電平觸發有效。P3.2信號觸發
上傳時間: 2013-11-17
上傳用戶:kangqiaoyibie
51單片機工程師實例設計程序集-(20種常見應用整編) \7290\ ;ZLG7290例程*\7290a\ ;ZLG7290匯編例程*\bell\ ;蜂鳴器音樂例程*\buzz\ ;蜂鳴器響例程*\eeprom\ ;讀EEPROM并顯示例程*\ex26a_lcd\ ;16×2LCD模塊例程*\ex36a_lcm\ ;128×64點陣LCD模塊例程*\KEY_IO\ ;直連KEY和LED例程\led_light\ ;直連LED例程*\lin_park\ ;lin模塊的原碼及例程。\lin\ ;LIN總線例程\rs232\ ;RS232例程(包括PC端和書上了串口例程)\USB1.1\ ;USB1.1例程(包括PC端)\RS485\ ;RS485例程\USB2.0\ ;USB2.0例程(有3個,包括PC端)\TCPIP\ ;基于ETHERNET的TCPIP例程\RTC\ ;時鐘顯示例程\CAN_SELF\ ;CAN自發自收例程 外中斷1\CAN\ ;CAN例程\USBPACK 2.0\ ;USB2.0PC例程 注意:帶*程序為MON51調試程序。在MON時程序下載后停不下來,可以按一下RSE按鈕復位一下。
上傳時間: 2013-10-13
上傳用戶:雨出驚人love
SAM88RCRI 指令集支持寄存器卷操作,它可完成8 位算術操作和邏輯操作,共有41條指令集。由于采用了存貯器影射方式,所以沒有具體的I/O 口操作指令。指令支持位操作,循環、移位等數據操作。為訪問個別寄存器,應指定寄存器卷中0--255 的8 位地址或工作寄存器中的4 位地址。工作寄存器中,寄存器對可以訪問13 位程序存貯空間和數據存貯空間。SAM88CRI 支持6種地址訪問方法,方便了編程操作。
上傳時間: 2013-12-02
上傳用戶:heart_2007
微處理器指令集設計垂直指令格式指令類型及其使用頻度CISC指令集特點 RISC指令集特點指令集設計的發展微處理器指令集設計的基本要求處理器設計的藝術就是定義一個指令集在軟件方面,支持對程序員有用的功能在硬件實現方面,的實現要盡可能有效率具有較長的生命周期,最好是這個指令集還應使以后更復雜的實現也有同樣的效率
上傳時間: 2014-04-14
上傳用戶:wushengwu
數字信號處理c語言程序集
上傳時間: 2013-10-31
上傳用戶:dalidala
介紹幾種常用的仿真器的設計方案,通過比較分析各自原理的優缺點,結合硬件性能,設計了基于ZWFcore的指令集仿真器ZWISS。通過對其CPU、多級存儲單元、陷阱、內存管理單元(MMU)、存儲保護系統(MPS)以及物理內存屬性(PMA)的仿真,較完善地完成對ZWFcore的仿真。為DSP硬件評估、DSP算法實現提供了良好的軟件模擬平臺。
上傳時間: 2013-10-09
上傳用戶:exxxds
5款ALTERA FPGA開發板原理圖合集
上傳時間: 2013-10-22
上傳用戶:幾何公差