ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:74KB ,
资源ID:8756553      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8756553.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(ARM汇编指令集1.doc)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

ARM汇编指令集1.doc

1、ARM汇编指令集 1 跳转指令 1.1 跳转指令B: B LABLE ;跳转到标号LABEL处 B 0X1111 ;跳转到绝对地址0X1111处 1.2 带连接的跳转指令 BL: START … BL NEXT ;跳转到标号NEXT处,同时保存当前PC到R14中 … ;返回地址 … NEXT… ;子程序入口 MOV P

2、C,R14 ;返回 1.3 带状态切换的跳转指令BX: MOV R0, #0X0201 BX R0 ;程序跳转到0x0200处,微处理器切换到Thumb状态(地址必须是4的倍数,否则产生不可预知的后果) 2算术运算指令 2.1不带进位加法指令ADD ADD R0, R1, R2 ;R0← (R1)+(R2) ADD R0, R1, #112 ;R0← (R1)+ 112 ADD R0, R1, R2, LSL #1 ;R0←(R1)+(R2<<1) ;将R2

3、中的值左移1位,再与R1值相加,结果送R0 2.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

4、 ;R0←(R1)- 112 SUB R0, R1 ,R2 LSL#1 ;R0←(R1)- (R2<<1) 2.4 带进位减法指令SBC SUBS R0, R3, R6 ;减最低位字节,不带进位 SBCS R1, R4, R7 ;减第二个字,带进位 SBCS R2, R5, R8 ;减第三个字,带进位 ;三句话实现了96bit减法运算,由于ARM寄存器宽度只有32bit所以分三次相减 2.5 不带进位逆向减法指令RSB RSB R0, R1, R2

5、 ;R0←(R2)- (R1) RSB R0, R1, #112 ;R0← 112- (R1) RSB R0, R1, R2, LSL#1 ;R0←(R2<<1)-R1 2.6 带进位逆向减法指令RSC RSBS R0, R6, R3 ;减最低字节的字,不带进位 RSCS R1, R7, R4 ;减第二个字,带进位 RSCS R2, R8, R5 ;减第三个字,带进位 ;三句

6、话实现了96bit减法运算,由于ARM寄存器宽度只有32bit所以分三次相减 2.7 32位乘法指令MUL MUL R0, R1, R2 ;R0←(R1) X(R2) MULS R0, R1, R2 ;R0←(R1) X(R2) ;更新CPSR标志位 2.8 乘-累加指令 MLA MLA R0, R1, R2, R3 ;R0←(R1) X(R2)+(R3) MLAS R0, R1, R2, R3 ;R0←(R1) X(R

7、2)+(R3) ;更新CPSR标志位 2.9 无符号数长乘指令 UMULL MOV R5, #0X01 MOV R8, #0X02 UMULL R0, R1, R5, R8 ;(R1) (R0)←(R5)X(R8) ;UMULL指令实现64bit无符号数乘法 2.10 无符号长乘-累加指令 UMLAL MOV R0, #0X01 MOV R1, #0X02 MOV R5, #0X01 MOV R8, #0X02 UMLAL R0, R1, R5, R8

8、 ;R0←(R0) +(R5)X(R8)低字节 ;R1←(R1) +(R5) X(R8)高字节 ;UMLAL 指令为64位无符号乘-累加指令 2.11 有符号长乘指令SMULL MOV R5, #0X01 MOV R8, #0X02 SMULL R0, R1, R5, R8 ;(R1) (R0)←(R5)X(R8) ;SMULL指令实现64bit有符号数乘法 2.12 有符号长乘-累加指令 SMLAL MOV

9、 R0, #0X01 MOV R1, #0X02 MOV R5, #0X01 MOV R8, #0X02 SMLAL R0, R1, R5, R8 ;R0←(R0) +(R5)X(R8)低字节 ;R1←(R1) +(R5) X(R8)高字节 ; SMLAL 指令为64位有符号乘-累加指令 2.13 比较指令 CMP CMP R1, #0X10 ;比较 BGT TAG

10、 ;R1> #0X10转到TAG标号处 …… 2.14 负数比较指令 CMN CMN R0, #1 ;判断R0中的值是否为1的补码,是则置标志位Z为1 3逻辑运算指令 3.1 “与”指令 AND MOV R0, 0XFF AND R0, R0, #3 ;取出R0的最低2bit 3.2 “或”指令 ORR MOV R0, 0XFF ORR R0, R0, #3 3.3 “异或”指令 EOR MOV R0, 0XFF EOR R0, R0, #3

11、 ;R0←(R0)^(0X03) 3.4 位清除指令 BIC MOV R0, 0XFF BIC R0, R0, #B11 ;寄存器R0的低2bit被清零 3.5 测试比较指令 TST TST R1, #b11 ;测试寄存器R1中的第0位和第1位,更新CPSR中标志位,应用中会在TST指令后加一条跳转指令。 3.6 异或测试指令 TEQ TEQ R0, R1 ;R1和R0中的值按位异或,更新CPSR,实际应用中用TEQ指令测试两个寄存器中的数值是否相等。 4 存储器访问指令 4.1 字加载

12、指令LDR LDR R1, [R0, #0X08] ;读取R0+0X08地址处的数据,保存到R1 ;完成后R0中的数据保持不变 LDR R1, [R0] LDR R1, [R0, R2] LDR R1, [R0, R2, LSL#2] ;读取R0+ (R2<<2)地址处的数据,保存到R1 LDR R1, LABEL ;LABEL 为程序标号,必须是当前指令的±4KB LDR R1, [R0], #0X04 LDR R1, [

13、R0], #0X04 ;读取R0地址处的数据,保存到R1 ;指令执行后R0中值变为R0+0X04 注意:使用LDR指令时字节地址是4的倍数 4.2 字存储指令 STR STR R0, [R1, #4] ;将R0中的数据保存到内存地址(R0)+4中 4.3 字节加在指令 LDRB (低8位) LDRB R0, [R1, #4] ;将地址(R1)+4处的1字节存储到寄存器R0的低 ;位,并将R0的高24位清零 4.4 字节存储

14、指令 STRB STRB 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 半字存储指令 STRH STRH R1, [R0, #0X04] ;将R1的低16bit数

15、据存到地址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 有符号半字加载指令

16、 LDRSH (带符号 &低16位) LDRSH R0, [R1] ;将地址R1上的低16位数据送R0 ;R0的高16位用符号位扩展 4.10 批量数据加载/存储指令LDM/STM LDM/STM指令地址模式选择 指令 操作 数据传送起始地址 IA 先传送数据,后基址加4 (Rn) IB 先基址加4,后传送数据 (Rn)+4 DA 先传送数据,后基址减4 (Rn) DB 先基址减4,后传送数据 (Rn)-4

17、 基址 地址 数据 0X0000002C 0X0000002C 0X00000028 0X00000028 0X00000024 0X00000024 0X00000020 0X00000020 R0 0X0000001C → 0X0000001C 0X0000001C 0X00000018 0X00000018 0X00000014 0X00000014 0X00000010 0X00000010

18、LDMIA R0! , {R2-R4} ;R0=0X00000028 R2=0X0000001C ;R3=0X0000020 R4=0X00000024 LDMIB R0! , {R2-R4} ;R0=0X00000028 R2=0X00000020 ;R3=0X00000024 R4=0X00000028 LDMDA R0! , {R2-R4} ;R0=0X00000010 R2=0X0000001C

19、R3=0X00000018 R4=0X00000014 LDMDB R0! , {R2-R4} ;R0=0X00000010 R2=0X00000018 ;R3=0X00000014 R4=0X00000010 4.11 寄存器 存储器字交换指令 SWP MOV R0, #0X10 MOV R1, #0X11 MOV R2, #0X12 SWP R0, R1, [R2] 设地址0X12处值为0XFF,执行指令后R0=0XFF, R1=0X11, R2=0X12 内存地址

20、0X12处值为0X11 4.12 寄存器 存储器字节交换指令 SWPB (高24位填0 低8位数据) MOV R0, #0X10 MOV R1, #0XFF11 MOV R2, #0X12 SWPB R0, R1, [R2] ;设地址0X12处值为0XFF,执行指令后R0=0XFF, R1=0XFF11, R2=0X12 ;地址0X12处值为0XFF11 5数据传送指令 5.1 数据传送指令 MOV MOV R0, #1 MOV R0, R1 ;R0← (R1) MOV R0, R1,

21、LSL#3 ;R0← (R1<<3) 5.2 反向传送指令 MVN MVN 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表

22、示。 MSR CPSR_c, #0X11 ;CPSR[7:0]=0X11 MSR CPSR_cxsf, R0 ;CPSR=R0 6 移位指令 6.1 逻辑左移操作 LSL (低位填0) MOV R1, #0X01 MOV R0, R1, LSL#2 MOV R2, #2 MOV R0, R1, LSL R2 6.2 算数左移操作 ASL (低位填0) MOV R1, #0X01 MOV R0, R1, ASL #2 6.3

23、逻辑右移操作 LSR (高位填0) MOV R1, #0X04 MOV R0, R1, LSR#2 6.4 算术右移操作 ASR   (???) MOV R1, #0X80000004 MOV R0, R1, ASR#2 6.5 循环右移操作 R0R (高位由低位填充) MOV R1, #0X01 MOV R0, R1, ROR#2 6.6 带扩展的循环右移操作 RRX (低位→ C → 高位) MOV R3, #0X7FFFFFFF MOV R4, #0X7FFFFFFF MOV R1, #0X04

24、ADDS R3, R3, R4 MOV R0, R1, RRX#2 7.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

25、 ;指令要操作的协处理器为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 STC P1, P2, c2, [R0, #-0X4] ;将协处理器p1的寄存器c2中的数据读取到内存地址R0-0X4处。 8.4 ARM微处理器到协处理器的数据传送指令 MCR MCR{[code]} [coproc], [opcode_1], [Rd],[CRn], [CRm],{[opcode_2]} 8.5 协处理器到ARM寄存器的数据传送指令 MRC MRC{[code]} [coproc], [opcode_1], [Rd],[CRn], [CRm],{[opcode_2]} 7

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服