電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>ARM>arm匯編指令集

arm匯編指令集

2008-09-09 | rar | 1444 | 次下載 | 10積分

資料介紹

ORR指令
ORR指令的格式為:
ORR{條件}{S} 目的寄存器,操作數(shù)1,操作數(shù)2
ORR指令用于
在兩個操作數(shù)上進行邏輯或運算,并把結(jié)果放置到目的寄存器中。操作數(shù)1應是一個寄存器,操作數(shù)2可以是一個寄存器,被移位的寄存器,或一個立即數(shù)。該指令常用于設置操作數(shù)1的某些位。
指令示例:
ORR R0
,R0,#3? ?? ?? ?; 該指令設置R001位,其余位保持不變。
15、EOR指令
EOR指令的格式為:
EOR{條件}{S} 目的寄存器,操作數(shù)1,操作數(shù)2
EOR指令用于
在兩個操作數(shù)上進行邏輯異或運算,并把結(jié)果放置到目的寄存器中。操作數(shù)1應是一個寄存器,操作數(shù)2可以是一個寄存器,被移位的寄存器,或一個立即數(shù)。該指令常用于反轉(zhuǎn)操作數(shù)1的某些位。
指令示例:
EOR R0,R0
,#3? ?? ??? 該指令反轉(zhuǎn)R00、1位,其余位保持不變。
16、BIC指令
BIC指令的格式為:
BIC{條件}{S} 目的寄存器,操作數(shù)1,操作數(shù)2
BIC指令用于清除
操作數(shù)1的某些位,并把結(jié)果放置到目的寄存器中。操作數(shù)1應是一個寄存器,操作數(shù)2可以是一個寄存器,被移位的寄存器,或一個立即數(shù)。操作數(shù)2為32位的掩碼,如果在掩碼中設置了某一位,則清除這一位。未設置的掩碼位保持不變。
指令示例:
BIC R0,R0
,#%1011? ? ; 該指令清除 R0 中的位 01、和 3,其余的位保持不變。
三、法指令與乘加指令ARM微處理器支持的乘法指令與乘加指令共有6條,可分為運算結(jié)果為32位和運算結(jié)果為64位兩類,與前面的數(shù)據(jù)處理指令不同,指令中的所有操作數(shù)、目的寄存器必須為通用寄存器,不能對操作數(shù)使用立即數(shù)或被移位的寄存器,同時,目的寄存器和操作數(shù)1必須是不同的寄存器。
乘法指令與乘加指令共有以下6條:
1、??MUL指令
MUL指令的格式為:
MUL{條件}{S} 目的寄存器,操作數(shù)1,操作數(shù)2
MUL指令完成將操作數(shù)1與操作數(shù)2的乘法運算,并把結(jié)果放置到目的寄存器中,同時可以根據(jù)運算結(jié)果設置CPSR中相應的條件標志位。其中,操作數(shù)1和操作數(shù)2均為32位的有符號數(shù)或無符號數(shù)。
指令示例:
MUL R0,R1
R2? ?? ?? ?? ?;R0 = R1 × R2
MULS R0,R1,R2? ?? ?? ???;R0 = R1 × R2,同時設置CPSR中的相關(guān)條件標志位
2、??MLA指令
MLA指令的格式為:
MLA{條件}{S} 目的寄存器,操作數(shù)1,操作數(shù)2,操作數(shù)3
MLA指令完成將操作數(shù)1與操作數(shù)2的乘法運算,再將乘積加上操作數(shù)3,并把結(jié)果放置到目的寄存器中,同時可以根據(jù)運算結(jié)果設置CPSR中相應的條件標志位。其中,操作數(shù)1和操作數(shù)2均為32位的有符號數(shù)或無符號數(shù)。
指令示例:
MLA R0,R1
,R2,R3? ?? ?? ?? ?;R0 = R1 × R2 + R3
MLAS??R0,R1,R2,R3? ?? ?? ? R0 = R1 × R2 + R3,同時設置CPSR中的相關(guān)條件標志位
3、??SMULL指令
SMULL指令的格式為:
SMULL{條件}{S}? ?目的寄存器Low,目的寄存器低High,操作數(shù)1,操作數(shù)2
SMULL指令完成將操作數(shù)1與操作數(shù)2的乘法運算,并把結(jié)果的低32位放置到目的寄存器Low中,結(jié)果的高32位放置到目的寄存器High中,同時可以根據(jù)運算結(jié)果設置CPSR中相應的條件標志位。其中,操作數(shù)1和操作數(shù)2均為32位的有符號數(shù)。
指令示例:
SMULL? ?R0,R1
,R2,R3? ?? ? ;R0 = R2 × R3)的低32
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?R1 =
R2 × R3)的高32
4、??SMLAL指令
SMLAL指令的格式為:
SMLAL{條件}{S}? ?目的寄存器Low,目的寄存器低High,操作數(shù)1,操作數(shù)2
SMLAL指令完成將操作數(shù)1與操作數(shù)2的乘法運算,并把結(jié)果的低32位同目的寄存器Low中的值相加后又放置到目的寄存器Low中,結(jié)果的高32位同目的寄存器High中的值相加后又放置到目的寄存器High中,同時可以根據(jù)運算結(jié)果設置CPSR中相應的條件標志位。其中,操作數(shù)1和操作數(shù)2均為32位的有符號數(shù)。
對于目的寄存器Low,在指令執(zhí)行前存放64位加數(shù)的低32位,指令執(zhí)行后存放結(jié)果的低32位。
對于目的寄存器High,在指令執(zhí)行前存放64位加數(shù)的高32位,指令執(zhí)行后存放結(jié)果的高32位。
指令示例:
SMLAL? ?R0,R1
R2,R3? ?? ? ;R0 = R2 × R3)的低32 R0
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ;R1 = R2 × R3)的高32 R1
5、??UMULL指令
UMULL指令的格式為:
UMULL{條件}{S}? ?目的寄存器Low,目的寄存器低High,操作數(shù)1,操作數(shù)2
UMULL指令完成將操作數(shù)1與操作數(shù)2的乘法運算,并把結(jié)果的低32位放置到目的寄存器Low中,結(jié)果的高32位放置到目的寄存器High中,同時可以根據(jù)運算結(jié)果設置CPSR中相應的條件標志位。其中,操作數(shù)1和操作數(shù)2均為32位的無符號數(shù)。
指令示例:
UMULL? ?R0,R1
,R2R3? ?? ? ;R0 = R2 × R3)的低32
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?;R1 =
R2 × R3)的高32
6、??UMLAL指令
UMLAL指令的格式為:
UMLAL{條件}{S}? ?目的寄存器Low,目的寄存器低High,操作數(shù)1,操作數(shù)2
UMLAL指令完成將操作數(shù)1與操作數(shù)2的乘法運算,并把結(jié)果的低32位同目的寄存器Low中的值相加后又放置到目的寄存器Low中,結(jié)果的高32位同目的寄存器High中的值相加后又放置到目的寄存器High中,同時可以根據(jù)運算結(jié)果設置CPSR中相應的條件標志位。其中,操作數(shù)1和操作數(shù)2均為32位的無符號數(shù)。
對于目的寄存器Low,在指令執(zhí)行前存放64位加數(shù)的低32位,指令執(zhí)行后存放結(jié)果的低32位。
對于目的寄存器High,在指令執(zhí)行前存放64位加數(shù)的高32位,指令執(zhí)行后存放結(jié)果的高32位。
指令示例:
UMLAL? ?R0,R1
,R2R3? ?? ?? ?? ?? ???;R0 = R2 × R3)的低32 R0
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?R1 = R2 × R3)的高32 R1
四、程序狀態(tài)寄存器訪問指令1、??MRS指令
MRS指令的格式為:
MRS{條件}? ? 通用寄存器,程序狀態(tài)寄存器(CPSR或SPSR)
MRS指令用于將程序狀態(tài)寄存器的內(nèi)容傳送到通用寄存器中。該指令一般用在以下兩種情況:
Ⅰ.當需要改變程序狀態(tài)寄存器的內(nèi)容時,可用MRS將程序狀態(tài)寄存器的內(nèi)容讀入通用寄存器,修改后再寫回程序狀態(tài)寄存器。
Ⅱ.當在異常處理或進程切換時,需要保存程序狀態(tài)寄存器的值,可先用該指令讀出程序狀態(tài)寄存器的值,然后保存。
指令示例:
MRS R0,CPSR? ?? ?? ?? ?? ?? ?? ?? ? ;傳送CPSR
的內(nèi)容到R0
MRS R0,SPSR? ?? ?? ?? ?? ?? ?? ?? ? ;傳送SPSR的內(nèi)容到R0
2、??MSR指令
MSR指令的格式為:
MSR{條件}? ? 程序狀態(tài)寄存器(CPSR或SPSR)_<域>,操作數(shù)
MSR指令用于將操作數(shù)的內(nèi)容傳送到程序狀態(tài)寄存器的特定域中。其中,操作數(shù)可以為通用寄存器或立即數(shù)。<域>用于設置程序狀態(tài)寄存器中需要操作的位,32位的程序狀態(tài)寄存器可分為4個域:
位[31:24]為條件標志位域,用f表示;
位[23:16]為狀態(tài)位域,用s表示;
位[15:8]為擴展位域,用x表示;
位[7:0]為控制位域,用c表示;
該指令通常用于恢復或改變程序狀態(tài)寄存器的內(nèi)容,在使用時,一般要在MSR指令中指明將要操作的域。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1490次下載  |  免費
  3. 2單片機典型實例介紹
  4. 18.19 MB  |  92次下載  |  1 積分
  5. 3S7-200PLC編程實例詳細資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費
  11. 6基于AT89C2051/4051單片機編程器的實驗
  12. 0.11 MB  |  4次下載  |  免費
  13. 7藍牙設備在嵌入式領域的廣泛應用
  14. 0.63 MB  |  3次下載  |  免費
  15. 89天練會電子電路識圖
  16. 5.91 MB  |  3次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關(guān)電源設計實例指南
  16. 未知  |  21539次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費