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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ARM指令集Word文档下载推荐.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ARM指令集Word文档下载推荐.docx

1、 VS V置位 溢出 VC V清零 没有溢出 HI C置位,Z清零 无符号数大于 LS C清零,Z置位 无符号数小于或等于 GE N等于V 带符号数大于或等于 LT N不等于V 带符号数小于 GT Z清零,(N等于V) 带符号数大于 LE Z置位或(N不等于V) 带符号数小于或等于 AL 任何 无条件执行(指令默认条件) 跳转指令跳转指令用于实 现程序流程的跳转,在ARM 程序中有两种方法可以实现程式流程的跳转: 使用专门的跳转指令。 直接向程序计数器PC 写入跳转地址值。透过向程序计数 器PC 写入跳转地址值,可以实现在4GB 的地址空间中的任意跳转,在跳转之前结合使用MOV LR,PC等类

2、似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性26位地址空间的子程序使用。ARM 指令集中的跳转指令可以完成从当前 指令向前或向后的32MB的地址空间的跳转,包括以下4 条指令: B 跳转指令。 BL 带返回的跳转指令。 BLX 带返回和状态切换的跳转指令。 BX 带状态切换的跳转指令。 B指令 B指令的语法为: B 条件目标地址B 指令是最简单的跳转指令。一旦遇到一个B 指令,ARM 处理器将立即跳转到给定的目标地 址,从那里继续执行。注意存储在跳转指令中的实际值是相对当前PC 值的一个偏移量,而不是一个绝对地址,它的值由汇编器来计算(参考寻址方式中的相对寻 址)。它是24 位

3、有符号数,左移两位后有符号扩充为32 位,表示的有效偏移为26 位(前后32MB 的地址空间)。BL 指令BL 指令的语法为:BL条件 目标地址BL 是另一个跳转指令,但跳转之前,会在 寄存器R14 中保存PC 的当前内容,因此,可以透过将R14 的内容重新加载到PC 中,来返回到跳转指令之后的那个指令处执行。该指令是实现子程序使用的一个基本但常用的手段。以下指令:BL Label ;当程序无条件跳转到标号Label 处执行时,同时将当前的PC 值保存到R14 中BLX 指令BLX 指令的语法为:BLX 目标地址BLX 指令从ARM 指令集跳转到指令中所指定的目标 地址,并将处理器的工作状态有

4、ARM 状态切换到Thumb状态,该指令同时将PC 的当前内容保存到寄存器R14 中。因此,当子程序使用Thumb 指令集,而用户使用ARM 指令集时,可以透过BLX 指令实现子程序的使用和处理器工作状态的切换。同时,子程程序的返回可以透过将寄存器R14 值复制到PC 中来完成。BX 指令BX 指令的语法为:BX条件 目标地址BX 指令跳转到指令中所指定的目标地址, 目标地址处的指令既可以是ARM指令,也可以是Thumb 指令。 数据处理指令数据处理指令可 分为数据传送指令、算术逻辑运算指令和比较指令等。数据传送指令用于在寄存器和内存之间进行数据的双向传输。算术逻辑运算指令完成常用的算术与逻辑

5、的运 算,该类指令不但将运算结果保存在目的寄存器中,同时更新CPSR 中的相应条件标志位。比较指令不保存运算结果,只更新CPSR中相应的条件标志位。1. MOV 指令MOV 指令的语法为:MOV条件S 目的寄存器,来源操作数MOV 指令可完成从另一个寄存器、被移位 的寄存器或将一个立即数载入到目的寄存器。其中S 选项决定指令的操作是否影响CPSR 中条件标志位的值,当没有S 时指令不更新CPSR 中条件标志位的值。指令范例:MOV R1,R0 ;将寄存器R0 的值传送到寄存器R1MOV PC,R14 ;将寄存器R14 的值传送到PC,常用于子程序返回MOV R1,R0,LSL3 ;将寄存器R0

6、 的值左移3 位后传送到R12. MVN 指令MVN 指令的语法为:MVN条件S 目的寄存器,源操作数MVN 指令可完成从另一个寄存器、被移位 的寄存器、或将一个立即数载入到目的寄存器。与MOV 指令不同之处是在传送之前按位被取反了,即把一个被取反的值传送到目的寄存器中。其中S 决定指令的操作是否影响CPSR 中条件标志位的值,当没有S 时指令不更新CPSR 中条件标志位的值。MVN R0,0 ;将立即数0 取反传送到寄存器R0 中,完成后R0=-13. CMP 指令CMP 指令的语法为:CMP条件 操作数1,操作数2CMP 指令用于把一个寄存器的内容和另一 个寄存器的内容或立即数进行比较,同

7、时更新CPSR 中条件标志位的值。该指令进行一次减法运算,但不存储结果,只更改条件标志位。标志位表示的是操作数1 与操作数2 的关系(大、小、相等),例如,当操作数1 大于操作操作数2,则此后的有GT 后缀的指令将可以执行。CMP R1,R0 ;将寄存器R1 的值与寄存器R0 的值相减,并根据结果设定CPSR 的标志位CMP R1,100 ;将寄存器R1 的值与立即数100 相减,并根据结果设定CPSR 的标志位4. CMN 指令CMN 指令的语法为:CMN条件 操作数1,操作数2CMN 指令用于把一个寄存器的内容和另一 个寄存器的内容或立即数取反后进行比较,同时更新CPSR 中条件标志位的值

8、。该指令实际完成操作数1 和运算元2 相加,并根据结果更改条件标志位。CMN R1,R0 ;将寄存器R1 的值与寄存器R0 的值相加,并根据结果设定CPSR 的标志位CMN R1,100 ;将寄存器R1 的值与立即数100 相加,并根据结果设定CPSR 的标志位5. TST 指令TST 指令的语法为:TST条件 操作数1,操作数2TST 指令用于把一个寄存器的内容和另一 个寄存器的内容或立即数进行按位的与运算,并根据运算结果更新CPSR 中条件标志位的值。操作数1 是要测试的数据,而操作数2 是一个位屏蔽,该指令一般用来测试是 否设定了特定的位。30TST R1,1 ;用于测试在寄存器R1 中

9、是否设定了最低位(表示二进制 数)TST R1,0xffe ;将寄存器R1 的值与立即数0xffe 按位与,并根据结果设定CPSR 的标志位6. TEQ 指令TEQ 指令的语法为:TEQ条件 操作数1,操作数2TEQ 指令用于把一个寄存器的内容和另一 个寄存器的内容或立即数进行按位的互斥运算,并根据运算结果更新CPSR 中条件标志位的值。该指令通常用于比较操作数1 和操作数2 是否相等。TEQ R1,R2 ;将寄存器R1 的值与寄存器R2 的值按位互斥,并根据结果设定CPSR 的标志位7. ADD 指令ADD 指令的语法为:ADD条件S 目的寄存器,操作数1,操作数2ADD 指令用于把两个操作

10、数相加,并将结 果存放到目的寄存器中。操作数1应是一个寄存器,操作数2 可以是一个寄存器,被移位的寄存器,或一个立即数。ADD R0,R1,R2 ; R0 = R1 + R2ADD R0,R1,#256 ; R0 = R1 + 256ADD R0,R2,R3,LSL#1 ; R0 = R2 + (R3 1)8. ADC 指令ADC 指令的语法为:ADC条件S 目的寄存器,操作数1,操作数2ADC 指令用于把两个操作数相加,再加上CPSR 中的C 条件标志位的值,并将结果存放到目的 寄存器中。它使用一个进位标志位,这样就可以做比32 位大的数的加法,注意不要忘记设定S 后缀来更改进位标志。操作数

11、1 应是一个寄存器,操作数2 可以是一个寄存器,被移位的寄存器,或一个立即数。以下指令序列完成两个128 位数的加法,第一个数由高到低存放 在寄存器R7-R4,第二个数由高到低存放在寄存器R11-R8,运算结果由高到低存放在寄存器R3-R0:ADDS R0,R4,R8 ; 加低端的字ADCS R1,R5,R9 ; 加第二个字,带进位ADCS R2,R6,R10 ; 加第三个字,带进位ADC R3,R7,R11 ; 加第四个字,带进位9. SUB 指令SUB 指令的语法为:SUB 条件S 目的寄存器,操作数1,操作数2SUB 指令用于把操作数1 减去操作数2,并将结果存放到目的寄存器中。运算元1

12、 应是一个寄存器,操作数2 可以是一个寄存器,被移位的寄存器, 或一个立即数。该指令可用于有符号数或无符号数的减法运算。SUB R0,R1,R2 ; R0 = R1 - R2SUB R0,R1,#256 ; R0 = R1 - 256SUB R0,R2,R3,LSL#1 ; R0 = R2 - (R3 10. SBC 指令SBC 指令的语法为:SBC条件S 目的寄存器,操作数1,操作数2SBC 指令用于把操作数1 减去操作数2,再减去CPSR 中的C 条件标志位的反码,并将结果存放到目 的寄存器中。操作数1 应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。该指令使用进位

13、标志来表示借位,这样就可以做大于32 位的减法,注意不要忘记设定S 后缀来更改进位标志。该指令可用于有 符号数或无符号数的减法运算。SUBS R0,R1,R2 ; R0 = R1 - R2 - !C,并根据结果设定CPSR 的进位标志位3211. RSB 指令RSB 指令的语法为:RSB条件S 目的寄存器,操作数1,操作数2RSB 指令称为逆向减法指令,用于把操作 数2 减去操作数1,并将结果存放到目的寄存器中。RSB R0,R1,R2 ; R0 = R2 R1RSB R0,R1,#256 ; R0 = 256 R1RSB R0,R2,R3,LSL#1 ; R0 = (R3 1) - R212. RSC 指令RSC 指令的语法为:RSC条件S 目的寄存器,操作数1,操作数2RSC 指令用于把操作数2 减去操作数1,再减去CPSR 中的C 条件标志位的反码,并将结果存放到目 的寄存器中。RSC R0,R1,R2 ; R0 = R2 R1 - !C13. AND 指令AND 指令的语法为:AND条件S 目的寄存器,操作数1,操作数2AND 指令用于在两个操作数上进行逻辑与 运算,并把结果放置到目的寄存器中。操作数1 应是一个寄存器,操作数2 可以是

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1