您的当前位置:首页正文

ARM的数据操作指令

2020-03-23 来源:爱go旅游网


ARM的数据操作指令

实验目的

 熟悉使用ADS开发环境。

 通过实验掌握ARM数据操作指令的使用方法。

实验设备

 硬件:PC机。

 软件:ADS集成开发环境,Windows 2000/XP/2003。

实验原理

ARM指令集——ARM数据处理指令

数据处理指令大致可分为3类:

数据传送指令;(MOV,MVN)

算术逻辑运算指令;(ADD,SUB,RSB,ADC,BIC)

比较指令(CMD,CMN,TST,TEQ)。

数据处理指令只能对寄存器的内容进行操作,而不能对内存中的数据进行操作。所有ARM数据处理指令均可选择使用S后缀,并影响状态标志。

实验内容

数据传送指令

1. 选择合适的传送指令,传送下例立即数到寄存器R3.(MOV;MVN)

2. 黄色底的是本人写的成功代码,绿色底是ADS编译器翻译的代码

0x00110000 MOV R3, #0X00110000 MOV R3, #0X110000

0x00001040 MOV R3, #0X00001040 MOV R3, #0X1040

0xffffff00 MVN R3, #0X000000FF MVN R3, #0XFF

0x00001880 MOV R3, #0X00001880 MOV R3, #0X1880

0xff77ffff MVN R3, #0X00880000 MVN R3, #0X880000

0xffffefbf MVN R3, #0X00001040 MVN R3, #0X1040

3. ADS编译器会根据传送的立即数有效的“1”之前的N个零给忽略掉;

4. ADS编译器会根据传送的值较大立即数,首先将其转换成合法的8位立即数,再转

换成功后把指令同时变成MVN

算术运算

1. 写出一个64位加法,64位减法实例.(数据自设)

2. 写出几个逆向减法实例.

逻辑运算

1. R1=0x78120023 高4位清零.

答案:

MOV R0,#0X78000000

ADD R0,R0,#0X120000

ADD R0,R0,#0X23

BIC R0,R0,#0XF0000000

2. 寄存器R8=0x1234ffcc的12位到20位置1.

答案:

MOV R8,#0X12000000

ADD R8,R8,#0X340000

ADD R8,R8,#0Xff00

ADD R8,R8,#0XCC

MOV R7,#0X00100000

ADD R7,R7,#0XFF000

ORR R8,R8,R7

3. 寄存器R3=0x6c005600,取出16-17位的值.

答案:

MOV R3,#0X6C000000

ADD R3,R3,#0X5600

AND R3,R3,#0X30000

比较运算

1. 写出一个64位比较实例.(数据自设)

2.所有比较指令写出两个实例.(数据自设,查看CPSR中标识位如何改变.)

因篇幅问题不能全部显示,请点此查看更多更全内容