




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM汇编指令集1 跳转指令1.1 跳转指令B:B LABLE ;跳转到标号LABEL处B 0X1111 ;跳转到绝对地址0X1111处1.2 带连接的跳转指令 BL:START BL NEXT ;跳转到标号NEXT处,同时保存当前PC到R14中 ;返回地址 NEXT ;子程序入口 MOV PC,R14 ;返回 1.3 带状态切换的跳转指令BX:MOV R0, #0X0201BX R0 ;程序跳转到0x0200处,微处理器切换到Thumb状态(地址必须是4的倍数,否则产生不可预知的后果)2算术运算指令2.1不带进位加法指令ADDADD R0, R1, R2 ;R0 (R1)+(R2)ADD R0, R1, #112 ;R0 (R1)+ 112ADD R0, R1, R2, LSL #1 ;R0(R1)+(R21) ;将R2中的值左移1位,再与R1值相加,结果送R02.2带进位加法指令 ADC ADDS R0, R3, R6 ;加最低位字节,不带进位ADCS R1, R4, R7 ;加第二个字,带进位ADCS R2, R5,R8 ;加第三个字,带进位;三句话实现了96bit加法运算,由于ARM寄存器宽度只有32bit所以分三次相加2.3 不带进位减法指令SUB ;S进位标志SUB R0, R1, R2 ;R0(R1)- (R2)SUB R0, R1, #112 ;R0(R1)- 112SUB R0, R1 ,R2 LSL#1 ;R0(R1)- (R21)2.4 带进位减法指令SBCSUBS R0, R3, R6 ;减最低位字节,不带进位SBCS R1, R4, R7 ;减第二个字,带进位SBCS R2, R5, R8 ;减第三个字,带进位;三句话实现了96bit减法运算,由于ARM寄存器宽度只有32bit所以分三次相减2.5 不带进位逆向减法指令RSBRSB R0, R1, R2 ;R0(R2)- (R1)RSB R0, R1, #112 ;R0 112- (R1)RSB R0, R1, R2, LSL#1 ;R0(R2 #0X10转到TAG标号处2.14 负数比较指令 CMNCMN R0, #1 ;判断R0中的值是否为1的补码,是则置标志位Z为13逻辑运算指令3.1 “与”指令 ANDMOV R0, 0XFFAND R0, R0, #3 ;取出R0的最低2bit3.2 “或”指令 ORRMOV R0, 0XFF ORR R0, R0, #3 3.3 “异或”指令 EORMOV R0, 0XFFEOR R0, R0, #3 ;R0(R0)(0X03)3.4 位清除指令 BICMOV R0, 0XFFBIC R0, R0, #B11 ;寄存器R0的低2bit被清零3.5 测试比较指令 TSTTST R1, #b11 ;测试寄存器R1中的第0位和第1位,更新CPSR中标志位,应用中会在TST指令后加一条跳转指令。3.6 异或测试指令 TEQTEQ R0, R1 ;R1和R0中的值按位异或,更新CPSR,实际应用中用TEQ指令测试两个寄存器中的数值是否相等。4 存储器访问指令4.1 字加载指令LDRLDR R1, R0, #0X08 ;读取R0+0X08地址处的数据,保存到R1 ;完成后R0中的数据保持不变LDR R1, R0LDR R1, R0, R2LDR R1, R0, R2, LSL#2 ;读取R0+ (R22)地址处的数据,保存到R1LDR R1, LABEL ;LABEL 为程序标号,必须是当前指令的4KBLDR R1, R0, #0X04LDR R1, R0, #0X04 ;读取R0地址处的数据,保存到R1 ;指令执行后R0中值变为R0+0X04注意:使用LDR指令时字节地址是4的倍数4.2 字存储指令 STRSTR R0, R1, #4 ;将R0中的数据保存到内存地址(R0)+4中4.3 字节加在指令 LDRB (低8位)LDRB R0, R1, #4 ;将地址(R1)+4处的1字节存储到寄存器R0的低;位,并将R0的高24位清零4.4 字节存储指令 STRBSTRB R1, R0, #0X04 ;将R1的低8位存到地址R0+0X04处 ;执行后R0中数据不变4.5 半字加载指令 LDRH (低16位)LDRH R0, R1, #8 ;将R1+8地址处的16位数据送R0中LDRH R0, R1, R2 ;将R1+R2地址处的数据送寄存器R0中4.6 半字存储指令 STRHSTRH R1, R0, #0X04 ;将R1的低16bit数据存到地址R0+0X04处4.7 用户模式数据加载存储指令 用户模式数据加载存储指令功能描述LDRT功能和LDR指令相同,当微处理器在特权模式下使用此指令时,内存系统将该操作当做一般用户模式下的内存访问指令STRT同上LDRBT同上STRBT同上4.8 有符号字节加在指令 LDRSB (带符号 &低8位)LDRSB R0, R1, R2 ;将地址R1+R2上的8位数值送R0 ;R0的高24位用符号位扩展4.9 有符号半字加载指令 LDRSH (带符号 &低16位)LDRSH R0, R1 ;将地址R1上的低16位数据送R0 ;R0的高16位用符号位扩展4.10 批量数据加载/存储指令LDM/STMLDM/STM指令地址模式选择 指令操作数据传送起始地址IA先传送数据,后基址加4(Rn)IB先基址加4,后传送数据(Rn)+4DA先传送数据,后基址减4(Rn)DB先基址减4,后传送数据(Rn)-4 基址地址数据0XC0XC0X0X0X0X0X0XR0 0XC 0XC0XC0X0X0X0X0X0XLDMIA R0! , R2-R4 ;R0=0X R2=0XC ;R3=0X R4=0XLDMIB R0! , R2-R4 ;R0=0X R2=0X ;R3=0X R4=0XLDMDA R0! , R2-R4 ;R0=0X R2=0XC ;R3=0X R4=0XLDMDB R0! , R2-R4 ;R0=0X R2=0X ;R3=0X R4=0X4.11 寄存器 存储器字交换指令 SWPMOV R0, #0X10MOV R1, #0X11MOV R2, #0X12SWP R0, R1, R2设地址0X12处值为0XFF,执行指令后R0=0XFF, R1=0X11, R2=0X12内存地址0X12处值为0X114.12 寄存器 存储器字节交换指令 SWPB (高24位填0 低8位数据)MOV R0, #0X10MOV R1, #0XFF11MOV R2, #0X12SWPB R0, R1, R2;设地址0X12处值为0XFF,执行指令后R0=0XFF, R1=0XFF11, R2=0X12;地址0X12处值为0XFF115数据传送指令5.1 数据传送指令 MOV MOV R0, #1MOV R0, R1 ;R0 (R1)MOV R0, R1, LSL#3 ;R0 (R13) 5.2 反向传送指令 MVNMVN R0, #8 ;R0=-9?;指令执行后,R0中值为立即数8按位取反的值?5.3 程序状态字内容送通用寄存器指令 MRS MRS R1, CPSR ;将CPSR的值送R1;MRS指令是唯一可以直接读取CPSR和SPSR寄存器的指令5.4 写状态寄存器指令 MSR ;状态寄存器分4个域 31:24为条件标志域用f表示, 23:16为状态位域用s表示,15:8为扩展位域用x表示,7:0为控制域用c表示。MSR CPSR_c, #0X11 ;CPSR7:0=0X11MSR CPSR_cxsf, R0 ;CPSR=R06 移位指令 6.1 逻辑左移操作 LSL (低位填0)MOV R1, #0X01MOV R0, R1, LSL#2MOV R2, #2MOV R0, R1, LSL R26.2 算数左移操作 ASL (低位填0)MOV R1, #0X01MOV R0, R1, ASL #26.3 逻辑右移操作 LSR (高位填0) MOV R1, #0X04MOV R0, R1, LSR#26.4 算术右移操作 ASR (?)MOV R1, #0XMOV R0, R1, ASR6.5 循环右移操作 R0R (高位由低位填充)MOV R1, #0X01MOV R0, R1, ROR#2 6.6 带扩展的循环右移操作 RRX (低位 C 高位)MOV R3, #0X7FFFFFFFMOV R4, #0X7FFFFFFFMOV R1, #0X04ADDS R3, R3, R4MOV R0, R1, RRX#27.0 异常产生指令7.1 软中断指令 SWI SWI 12 ;将产生中断号为12的软中断 ;通过该条指令可以用软件的方法实现异常7.2 断点中断指令 BKPT BKPT immediate_16 ;16位立即数;断点中断指令 BKPT 常被用来设置软件断点,在调试时非常有用8 协处理指令8.1 协处理器数据操作指令 CDP CPD P1, 1, C2, C3, C4 ;指令要操作的协处理器为p1 ,1为协处理器p1的指令操作代码。c2、c3、c4 为协处理器p1的寄存器。CPD指令的使用并不影响ARM微处理器中CPSR寄存器的状态位。8.2 协处理器数据读取指令LDC LDC p5, c2, R0, #4 ;将内存地址为R0+4处的数据送到协处理器p5的寄存器c2中。LDC p5, c1, R0,R1 ;将内存地址为R0+R1处的数据送到协处理器p5的寄存器c1中。8.3 协处理器数据写入指令 STC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国甘肃版信息技术六年级下册新授课 第11课聆听你的声音 教学设计
- 六、有教无类教学设计-2025-2026学年高中语文人教版选修先秦诸子选读-人教版
- 人教版高中化学选修3导学案第一章第1、2、3三课时第一节原子结构教学设计
- 2025年中考化学试题分类汇编:溶液(第2期)原卷版
- 蓄电池相关知识培训内容课件
- 2.1 计算机解决问题的过程 教学设计 2023-2024学年高中信息技术教科版(2019)必修1
- 2025年标准礼仪试题及答案
- 2025年北京市高考物理试卷(附答案)
- Unit 5 Wonders of Our Body教学设计-2025-2026学年高中英语高二下册重庆大学版
- 2025-2026学年地质版(2024)小学体育与健康二年级全一册《关注眼睛健康》教学设计
- 2025年海洋工程行业投资趋势与盈利模式研究报告
- 酒吧承包经营合同(标准版)
- 2025年有限空间作业操作证考试题库附答案
- 跨境监管合作模式-洞察及研究
- 厨房电器使用课件
- GB/T 2423.21-2025环境试验第2部分:试验方法试验M:低气压
- (2025)工会知识竞赛题库含参考答案
- 军人压力调试课件
- 支气管哮喘临床课件
- 幕墙监测监控措施方案(3篇)
- 七夕餐厅营销活动方案策划
评论
0/150
提交评论