下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、指令格式意义示例ADCADC条件 目的,操作数1 ,操作数2带进位的32位数加法目的操作数1+操作数2 + !CADDADD条件 目的,操作数1 ,操作数232位数相加目的操作数1+操作数2ANDAND条件 目的,操作数1,操作数232位数的逻辑与目的操作数1&操作数2BB条件目标地址相对劭熊才旨令(32M,26b)助熊至目的地,PC 目标地址BEQ相等则助娥(Branch if EQual)BNE不相等则助熊(Branch if Not Equal)BGE大于或等于雌(Branch if Greater than or Equa )BGT大于劭猫(Branch if Greater
2、Than )BICBIC条件S目的,操作数1 ,操作数232位数的逻辑位清零类似ANDBKPTBKPT 16位的立即数断点指令BLBL条件目标地址带的相对助解指令(PCR14,雌)BLE小于或等于蹦专(Branch if Less than or Equal )BLEQ带等于雌(Branch with Link if EQual)BLLT带小于劭喉(Branch with Link if Less Than )BLT小于螃(Branch if Less Than )BLXBLX 目带的切换用健(PC R14尉触并切换为thumb)BXBX条件目标地址切换四常助熊并切换(ARM/Thumb)CD
3、P CDP2CDP条件协处理器编码,协处理器操作码1 , 目的寄存器,源寄存器1,源寄存器2,协处理 器操作码2。协处理器数据处理操作CLZ零计数CMNCMN条件操作数1,操作数2匕限两个数的相反数CMPCMP条件操作数1,操作数232位数臃操作数1 -操作数2更新CPSREOREOR条件S目的,操作数1 ,操作数232位逻辑异或目的 操作数1XOR操作数2LDC LDC2LDC条件L协处理器编码,目的寄存器,源寄存器从协处理器取一个或多个32位值LDC P3 , C4 , RO ;P3: C4 R0LDMLDM (或STM ) 条件类型基址寄存器 1从存送多个32位字到ARM寄存器regis
4、ter Memery寄存器列表SLDRLDR条件目的,(存储器地址从虚拟地址取一个单个的32位值至寄存器Register存储器地址LDR条件B 目的,存储器地址读一个字节LDR条件H 目的,存储器地址读半字(即16位)MCRMCR2MCRRMCR条件协处理器编码,协处理器操作码1 , 源寄存器,目的寄存器1,目的寄存器2,协处 理器操作码2。从寄存器送数据到协处理器MCR P3 , 3 , RO , C4 , C5 , 6 MARM 处理器寄存器R0中的数据传送至此办处理器P3的寄存器C4和C5中MLAMLAmS目的,操作数1,操作数2 ,操作数332位乘累加目的 操作数1*操作数2 +操作数
5、3MOVMOV条件目的,源操作数传送一个32位数到寄存器目的源操作数MRC MRC2MRRCMRC条件协处理器编码,协处理器操作码1 , 目的寄存器,源寄存器1 ,源寄存器2,协处理 器操作码20从协处理器传送数据到寄存器MRC P3 , 3 , RO , C4 , C5,6;该指令将协处理器P3的寄存器中的数据传送到ARM处理器寄存器中MRSMRS条件通用寄存器 状态寄存器(CPSR把状态寄存器的值送到通用寄存器Register 状态寄存器或 SPSR)MSRMSR条件程序状态寄存器(CPSR或SPSR_域,操作数把通用寄存器的值传送到状态寄存器CPSR或SPSR域 操作数MULM U L条
6、件目的,操作数1,操作数232位乘结果MODE(2八32),目的 操作数1*操作数2MVNMVN条仅4S目的,源操作数把一个32位数的逻辑"非"送到寄存器目的 (取反)源操作数ORRORR条件 目的,操作数1 ,操作数232位逻码目的操作数1 OR操作数2PLD预缄是示指令QADD有符号32位饱和加QDADD有符号双32位饱和加QSUB有符号32位饱和减QDSUB有符号双32位饱和减RSBRSB条件 目的,操作数1 ,操作数2逆向32位减法目的操作数2 -操作数1RSCRSC条件S目的,操作数1 ,操作数2带进位的逆向32法减法目的操作数2 -操作数1-!CSBCSBC条件
7、S目的,操作数1 ,操作数2带进位的32位减法目的=操作数1-操作数2-!CSMLAxy有符号乘累加(16位*16位)+32位=32位SMLALSMLAL条件S目的Low ,目的High ,操作数1,操作数264位有符售乘累加(32位*32位)+64位=64位)目的L (操作1*操作2)L+目的L目的H (操作1*操作2)H +目的HSMALxy64位有符售乘累加(32位*32位)+64位=64位)SMLAWy号乘累加(32位*16位)> >16位)+32位=32位SMULLSMULL条件S目的Low ,目的High ,操作数1,操作数264位有符号乘累加(32位*32位)=64位
8、SMULxy有符号乘Q6位*16位=32位)SMULWy有符号乘(32位*16位>> 16位=32位)STC STC2STC条件L协处理器编码,源寄存器,目的寄从协处理器中把一个或多个32位值存到存STC P3 , C4 , RO ;P3:C4 R0存器STMLDM (或STM ) 条件类型基址寄存器 ! ,寄存器列表八把多个32位的寄存器值存放到存Mem RegisterSTRSTR条件源寄存器,存储器地址把寄存器的值存到一个存的虚地址间存储器地址RegisterSTR条件B源寄存器,存储器地址8位(R的低8位)的字节数据传送到存储器STR条件H源寄存器,存储器地址16位的半字数
9、据传送到存储器SUBSUB条件目的,操作数1,操作数232位减法目的操作数1-操作数2SWISWI条件 24位的立即数软中断无立即数时,默认为R0SWPSWP条件目的,源寄存器1,源寄存器2把一个字或者一个字节和一个寄存器值交换SWP条件B目的,源寄存器1,源寄存器2字的作TEQTEQ条件操作数1 ,操作数2等值测试TSTTST条件操作数1 ,操作数2位测试UMLALU M LAL条件S目的Low ,目的寄存器High,操作数1,操作数264位无符售乘累加(32位*32位)+64位=64位)UMULLUMULL条件S目的L,目的H,操作数L操作数264位无符号乘累加(32位*32位)=64位A
10、RM )匚编伪指令符号定义Symbol DefinitionGBLA、GBLL、GBLSGBLA:定义一个全局的数字变量,并初始化为0GBLL :定义一个全局的逻辑变量,并初始化为F (假)GBLS:定义一个全局的字符串变量,并初始化为空LCLA、LCLL、LCLSLCLA:定义一个局部的数字变量,并初始化为0LCLL:定义一个局部的逻辑变量,并初始化为F (假)LCLS:定义一个局部的字符串变量,并初始化为空SETA、SETL、SETSSETA伪指令用于给一个数学变量赋值SETL伪指令用于给一个逻辑变量赋值SETS伪指令用于给一个字符串变量赋值RUST名称RLIST 寄存器列表RUST伪指令
11、可用于对一个通用寄存器列表定义名称,使用该伪指令定义的名称可在ARM指令LDM/STM中使用。数据定义Data DefinitionDCB用于分配一片连续的字节存储单兀并用指定的数据初始化标号DCB表达式DCW ( DCWU )用于分配一片连续的半字存储单元并用指定的数据初始化DCD ( DCDU )用于分配一片连续的字存储单元并用指定的数据初始化DCFD ( DCFDU )用于为双精度的浮点数分配一片连续的字存储单兀并用指定的数据初始化DCFS ( DCFSU )用于为单精度的浮点数分配一片连续的字存储单兀并用指定的数据初始化DCQ ( DCQU )用于分配一片以8字节为单位的连续的存储单元
12、并用指定的数据初始化SPACESPACE伪指令用于分配一片连续的存储区域并初始化为0 ,其中,表达式为要分配的字节数。SPACE也可用"% "代替。标号SPACE表达式MAP用于定义一个结构化的存表首地址。MAP也可用"人"代替MAP表达式,基址寄存器FIELD用于定义一个结构化的存表的数据域。FILED也可用代替标号FIELD表达式汇编控制IF、ELSE、ENDIF条件编译AssemblyControlWHILE . WEND循环MACRO s MEND宏MEXIT用于从宏定义中助熊出去其它AREACODE/DATA/READONLY/READWRIT
13、E/ALAIN/COMMONAREA段名属性1 ,属性2,ALIGN通过添加填充字节的方式,使当前位置满足一定的对齐方式.ALIEN=3 ;指定后面的指令为8字书对齐,2人3=8,可取值0-31.CODE16 x CODE32CODE16伪指令通知编译器,其后的指令序列为16位的Thumb指令.CODE32伪指令通知编译器,其后的指令序列为32位的ARM指令。只通知编译器其后指令的类型,并不能对处理器进行状态的切换。ENTRY指定汇编程序的入口点END通知编译器已经到了源程序的结尾EQU用于为程序中的常量、标号等定义 个等效的字符名称,类似于C语言中的# define o其中EQU可用 “代替
14、EXPORT 域 GLOBAL)在程序中声明一个全局的标号,该标号可在其他的文件中引用。EXPORT可 用GLOBAL代替。标号在程序中区分大小写,WEAK选项声明其他的同名 标号优先于该标号被引用IMPORT通知编译器要使用的标号在其他的源文件中定义,但要在当前源文件中引 用,而且无论当前源文件是否引用该标号,该标号均会被加入到当前源文件 的符号表中。标号在程序中区分大小写,WEAK选顼表示当所有的源文件 都没有定义这样一个标号时,编译器也不给出错误信息EXTERN通知编译器要使用的标号在其他的源文件中定义,但要在当前源文件中引 用,如果当前源文件实际并未引用该标号,该标号就不会被加入到当前
15、源文 件的符号表中。标号在程序中区分大号GET(或 INCLUDE)将一个源文件包含到当前的源文件中,并将被包含的源文件在当前位置进行5匚编处理INCBIN将一个目标文件或数据文件作为进制数据包含到当前的源文件中RN给一个寄存器定义一个别名Temp RN R0ROUT给个局部变量定义作用围#立即数,&十六进制数,B .表示当前PC指针(死循环)ARM条件码操作码31:28助记符扩展雌标志状态0000EQ相等/等于0Z=l0001NE不等z=o0010CS/HS进位/无符号数高于或等于C= = l0011CC/LO硼位先?婚数彳舒c=o0100MI负数N =l0101PL正数或0N =
16、=00110VS溢出V= = l0111VC未溢出v=o1000HI无符号数高于(大于)C= = l&&Z=01001LS(小C=0|Z=l1010GE有大十蝇N = =V1011LT有符号数小于N!=V1100GT有符号数大于Z=0 &&N = =V1101LE有符号数小于于Z=l | N!=V1110AL总是(al ways)任何状态1111NV从不(never)(不要使用)无CPSR312827876540NZCVUnusedIFT(=lthumbr=0Arm)mode位31 : 24为条件位域,用f表示;位23 : 16为状态位域,用s表示; 位15 :
17、 8为扩展位域,用x表示;位7 : 0为控制位域,用c表示; 与指令MSR相关关于移位LSL逻辑左移(低位填0)通用寄存器,LSL操作数LSR逻辑右移(高位填0)通用寄存器,LSR操作数ASL算术左移(低位填0)通用寄存器,ASL操作数ASR算术右移(符号位填充高位)通用寄存器,ASR操作数ROR循环右移通用寄存器,ROR操作数RRX带C的循环右移通用寄存器,RRX操作数中断向量表AddressHigh Address0x0000 0000OxFFFF 0000RESET0x0000 0004OxFFFF 0004UNDEF0x0000 0008OxFFFF 0008SWI0x0000 000
18、COxFFFF 000CPABT0x0000 0010OxFFFF 0010DABT0x0000 0014OxFFFF 00140x0000 0018OxFFFF 0018IRQ0x0000 001COxFFFF 001CFIQAPCS寄存器使用约定寄存器ADCS名称ADCS作用0al变元1/整数结果/临时寄存器1a2变元2/临时寄存器2a3变元3/临时寄存器3a4变元4/临时寄存器4V1寄存器变量15v2寄存器变量26v3寄存器变量37v4寄存器变量48v5寄存器变量59sb/v6静态基/寄存器变量610sl/v7堆栈B即寄存器变量711fp帧指针12ip临时寄存器/新sb部单元调用13sp
19、当前堆栈帧的低端14Ir地址/临时寄存器15PC程序计数器Load and Store 指令LDR RO z R1;才存存储器地址为R1的字数据读入寄存器R0。LDR RO z RI , R2LDR RO z RI , #8;将存储器地址为RI+8的字读入寄存器R0o;将存储器地址为R1 + R2的字数据读入寄存器R0oLDR RO z RI , R2 !LDR RO z RI , #8 !;将存储器地址为R1+8的字读入寄存器R0 ,并将新地址R1+8写入Rl0LDR RO , RI , R2;将存储器地址为R1的字数据读入寄存器R0 ,并将新地址R1十R2写入RloLDR RO JR1,
20、R2, LSL#2 !;将存储器地址为RI + R2x4的字数据读入寄存器R0 ,并将新地址R1十R2x4写入R1。LDR RO JR1 , R2 , LSL#2;将存储器地址为R1的字数据读入寄存器R0 ,并将新地址R1十R2x4写入R1。LDRB RO , R1;将存储器地址为R1的字节读入寄存器R0 ,并将R0的高24位清零。;将存储器地址为R1 + R2的字数据读入寄存器R0 ,并将新地址R1+R2写入RloLDRB RO, R1, #8LDRH RO , R1;将存储器地址为R1的半字读入寄存器R0 ,并将R0的高16位清零。;将存储器地址为R1 + 8的字节数据读入寄存器R0 ,并
21、将R0的高24位清零。LDRH RO JR1, #8;将存储器地址为Rl + 8的半字数据读入寄存器R0 ,并将R0的高16位清零。LDRH RO JR1 , R2;将存储器地址为R1十R2的半字数据读入寄存器R0 ,并将R0的高16位清零。STR RO JR1 , # 8;将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入RloSTR RO , RI r #8;将RO中的字写入以R1 + 8为地址的存储器中。STRB RO , R1;将寄存器R0中的字节数据写入以R1为地址的存储器中。STRB RO , R1 , # 8;将寄存器R0中的字节数据写入以R1 + 8为地址的存储器中。STRH RO , R1;将寄存器R0中的半字数据写入以R1为地址的存储器中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 极端高温疫苗运输车温控系统升级方案
- 极端气候与心理健康服务体系
- 临时用电 TN-S 接电架设协议
- 材料拓扑结构调控分化效率
- 医学26年:心血管疾病全生命周期管理 心内科查房
- 血液透析护理中的创新方法
- 2026年天津市北辰区中考化学二模试卷(含答案)
- 26年组织样本处理操作指引
- 上海市崇明区九校(五四制)2025-2026学年七年级下学期期中语文试题(含解析)
- 医学26年:丁肝诊疗要点解读 查房课件
- 深度解析(2026)《NBT 11433-2023 煤矿短壁间隔充填采煤技术规范》
- 学校装备采购内控制度
- 《技能成就精彩人生》中职全套教学课件
- 水生植物水域修复施工方案
- 儿童口腔局部麻醉技术专家共识
- 《思想道德与法治》课件-4.7争做改革创新生力军
- 雨课堂学堂在线学堂云《临床伦理与科研道德(山东大学)》单元测试考核答案
- 2026年销售技巧汇报培训课件
- (新版)广东省常用非金属材料检测技术培训考核考试(重点)题库300题(含答案)
- 给水厂污泥处理处置
- 2025课堂惩罚 主题班会:马达加斯加企鹅课堂惩罚 课件
评论
0/150
提交评论