找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 51|回复: 2
打印 上一主题 下一主题

ARM具体指令介绍

[复制链接]

157

主题

559

帖子

1198

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1198
跳转到指定楼层
1#
发表于 2016-10-19 15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
ADD、ADC、SUB、RSB、SBC和RSB
用法
ADD和SUB是简单的加减运算
ADC和SBC是带进位标志的加减运算。对于SBC,若进位标志为0,则结果减1。
RSB是反减。若进位标志为0,则结果减1.
注意事项
若设置S位,则这些指令根据结果更新标志N、Z、C和V。
ADC、SBC和RSC用于多个字的算数运算。
例如,下面2条指令完成64位整数的加法:
ADDS     R4,R0,R2                ;加低有效位
ADC       R5,R1,R3                ;加高有效位
下面这些指令完成96位减法:
SUBS     R3,R6,R9
SBCS      R4,R7,R10
SBC        R5,R8,R11
例子
ADD       R2,R1,R3
SUBS     R8,R6,#240                ;根据结果设置标志
RSB        R4,R4,#1280           ;1280—R4
ADCHI   R11,R0,R3               ;只有标志C置位且标志Z清0时才执行
RSCLES R0,R5,R0,LSL R4;有条件执行,设置标志
AND、ORR、EOR和BIC
用法
AND、EOR和ORR分别完成“与”“异或”“或”的按位操作。AND可常用于提取寄存器中某些位的值。ORR常用于将寄存器中某些位的值设置为1.EOR常用于将寄存器中某些位的值取反。
BIC用于将源操作数的各位与第2操作数中相应位的反码进行“与”操作。BIC可用于将寄存器中某些位的值设置为0。
注意事项
若设置S位,则这些指令根据结果更新标志N和Z,在计算第2操作数时更新标志C,不影响V标志。
例子
AND              R9,R2,# 0xFF00
ORREQ         R2,R0,R5
EOR              R0,R0,R3,ROR R6
BICNES         R8,R10,R0,RRX
MOV和MVN
用法
MOV是将第2 操作数的值拷贝到结果寄存器中。
MVN是“取反传送”,它是把第2操作数的每一位取反,将得到的值置入结果寄存器。
注意事项
若设置S位,则这些指令根据结果更新标志N和Z,在计算第2操作数时更新标志C,不影响V标志。
例子
MOV             R9,R2
MVNNE        R0,#0xFF00
MOVS           R0,R0,ROR R6
CMP和CMN
用法
CMP表示比较,用目的操作数减去源操作数,根据结果更新条件码标志。除了将结果丢弃外,CMP指令与SUBS指令完成的操作一样
CMN表示取反比较,将目的操作数和源操作数相加,根据结果更新条件码标志。除了将结果丢弃外,CMN指令与ADDS指令完成的操作一样。
注意事项
这些指令根据结果更新标志N、Z、C和V,但结果不放到任何寄存器中。
例子
CMPGT         R13,R7,LSL  #2
CMN             R0,#6400
TST和TEQ
TST表示测试,对2个操作数进行位“与”操作,根据结果更新条件码标志。除了将结果丢弃外,TST指令与ANDS指令完成的操作一样。TST通常用于测试寄存器中某些位是1还是0.
TEQ表示测试相等,对第2操作数进行按位“异或”操作,根据结果更新条件码标志。除了将结果丢弃外,TEQ指令与EORS指令完成的操作一样。TEQ通常用于比较2个操作数是否相等,这种比较一般不影响CPSR的V和C。它也可用于比较2个操作数是否相同。
注意事项
这些指令根据结果更新标志N、Z、C和V,但结果不放到任何寄存器中。
例子
TST               R0,       #0x3F8
TEQEQ          R10,     R9
TSTNE          R1,       R5,ASR  R1
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

163

主题

525

帖子

1236

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1236
2#
发表于 2016-10-19 16:18 | 只看该作者
谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈

211

主题

652

帖子

1507

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1507
3#
发表于 2016-10-20 14:11 | 只看该作者
谢谢分享,必须赞一个~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-27 09:15 , Processed in 0.069321 second(s), 32 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表