历史上的今天
今天是:2025年02月20日(星期四)
2020年02月20日 | ARM学习笔记3——数据处理指令
2020-02-20 来源:eefocus
一、数据处理指令概述
1、概念
数据处理指令是指对存放在寄存器中的数据进行处理的指令。主要包括算术指令、逻辑指令、比较与测试指令以及乘法指令 如果在数据处理指令前使用S前缀,指令的执行结果将会影响CPSR中的标志位。
2、语法格式
数据处理指令的基本语法格式 3、参数说明 4、操作码 5、 二、数据传送指令 1、MOV指令 1.1、作用 把一个数N送到目标寄存器Rd,其中N可以是寄存器,也可以是立即数 1.2、语法格式(注:{}符号中的参数表示可选,<>符号加字母表示一个参数) MOV{ 1.3、参数说明(注:符号相同的参数在后面也有相同的含义) 1.3.1、 1.3.2、S是用来更新CPSR中条件标志位的值,当更新状态寄存器CPSR中的条件标志位时,有两种情况: A、如果指令中的目标寄存器 B、如果指令中的目标寄存器 1.3.3、 1.3.4、 2、MVN指令 2.1、作用 MVN是反相传送指令,它将操作数的反码传送到目的寄存器,并根据操作的结果更新CPSR中相应的条件标志位。 2.2、语法格式 MVN{ 2.3、参数说明同MOV 三、算术运算指令 1、ADD加操作指令 1.1、作用 将寄存器 1.2、语法格式 ADD{ 1.3、参数说明 2、ADC带进位的加法指令 2.1、作用 将两个操作数加起来,并把结果放置到目的寄存器中。它使用一个进位标志位,这样做既可以做比32位大的加法。 2.2、语法格式 ADC{ 3、SUB减操作指令 3.1、作用 从寄存器 3.2、语法格式 SUB{ 4、SBC带进位的减法指令 4.1、作用 用于执行操作数大于32位的减法操作,该指令从寄存器 4.2、语法格式 SBC{ 5、RSB减翻转指令 5.1、作用 从寄存器 5.2、语法格式 RSB{ 6、RSC带进位的翻转减指令 6.1、作用 从寄存器 6.2、语法格式 RSC{ 四、逻辑运算指令 1、AND逻辑与指令 1.1、作用 将 1.2、语法格式 AND{ 1.3、逻辑与值表 2、EOR逻辑异或指令 2.1、作用 将寄存器 2.2、语法格式 EOR{ 2.3、异或值表 3、ORR逻辑或指令 3.1、作用 将第二个源操作数 3.2、语法格式 ORR{ 4、BIC位清零指令 4.1、作用 将寄存器Rn的值与第二源操作数 4.2、语法格式 BIC{ 4.3、BIC指令真值表 五、比较测试指令 1、CMP比较指令 1.1、作用 使用寄存器Rn的值减去shifter_operand的值,根据操作的结果更新CPSR中相应的条件标志位,以便后面的指令根据相应的条件标志来判断是否执行 1.2、语法格式 CMP{ 2、CMN负数比较指令 2.1、作用 比较指令使用寄存器Rn的值加上shifter_operand,根据操作的结果更新CPSR中相应的条件标志位,以便后面的指令根据相应的条件标志来判断是否执行 2.2、语法格式 CMN{ 3、TST测试指令 3.1、作用 将一个寄存器Rn的值和一个shifter_operand表示的数值按位做逻辑与操作。条件标志位根据两个操作数做“逻辑与”后的结果设置。 3.2、语法格式 TST{ 4、TEQ测试相等指令 4.1、作用 将一个寄存器的值和一个算术值按位做逻辑异或操作,条件标志位根据两个操作数做“逻辑异或”后的结果设置,以便后面的指令根据相应的条件标志来判断是否执行。 4.2、语法格式 TEQ{:标志指令的条件域是否更新CPSR 




上一篇:ARM学习笔记4——加载存储指令
下一篇:ARM学习笔记2——分支跳转指令
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:18 编辑 using System; using System.Runtime.InteropServices; using System.Drawing.Imaging; using System.Windows.Forms; using System.Drawing; namespace YHhotel.YHhotelWindows //注意这里要 ...… 查看全部问答> |
|
51单片机=====74hc573(锁存器) BY: 飞龙 QQ: 9086074 希望认识更多的单片机开发朋友一起交流 第一次做教程不好多多见谅 BLOG: http://hi.baidu.com/alalmn 1. 烧写程序 2.&n ...… 查看全部问答> |
|
怎样对USB设备的其中一个pipe进行读写操作?谢谢!(VB) 我需要与蓝牙设备通信,通过SetupDiGetClassDevs (Guid由注册表找到),SetupDiEnumDeviceInterfaces ,SetupDiGetDeviceInterfaceDetail 函数查找到DevicePath。但是createfile失败。 我需要对这个设备的其中一个pipe读写。在Path后加上“\\PIPE ...… 查看全部问答> |
|
环境是evc++ SP4 afxmessage里面的参数想用1句话加一个变量来做, 例如,我买个5本书,这里的5就是变化的。 用了一下几种方式都不可以,请教高人帮忙来做, AfxMessageBox(\"我买了\"+CString(number)+\"本书\"); ...… 查看全部问答> |
|
使用简单的三线串口,没有流控,没有数据准备好,也没有终端准备好! 请问怎样解决下面的问题: SIM300C和服务器同时发送数据,SIM300C串口输出的数据是AT命令反馈数据和服务器发送数据夹杂在一起的 ...… 查看全部问答> |
|
注意事项: 1. 红外接口芯片TFDU4100没买到 2. 有源晶振提供一个 交易总价:125元 + 20元(快递费) 淘宝地址: http://item.taobao.com/auction/item_detail.htm?item_num_id=8252057915 详细清单如下:   ...… 查看全部问答> |




