微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM汇编程序设计之:汇编语言文件格式

ARM汇编程序设计之:汇编语言文件格式

时间:08-30 来源:3721RD 点击:

注意

SHR是逻辑右移,不影响符号位。

表10.9列出了所有加、减、逻辑操作符。

表10.9 加减运算操作符

操 作 符

别 名

使 用

说 明

+

A+B

A加上B

A−B

从B中减去A

:AND:

&&

A:AND:B

A和B按位与

:EOR:

^

A:EOR:B

A和B按位异或

:OR:

||

A:OR:B

A和B按位或

加、减运算的操作数均为数字表达式。逻辑运算的表达式为数字表达式,此运算按位操作产生结果。

表10.10列出了ARM汇编中的关系符。关系操作符用于表示两个同类表达式之间的关系。关系符的两个操作数必须为同种类型的操作数。操作数可以是数字变量、程序相关表达式、寄存器相关表达式或字符串。

表10.10 关系操作符

操 作 符

别 名

使 用

说 明

=

= =

A=B

判断A是否等于B

>

A>B

判断A是否大于B

>=

A>=B

判断A是否大于等于B

<

A<B

判断A是否小于B

<=

A<=B

判断A是否小于等于B

/=

<>

!=

A/=B

判断A是否不等于B

表10.11列出了汇编语言中的逻辑操作符。逻辑操作符进行两个逻辑表达式之间的基本逻辑操作。操作的结果为{FALSE}或{TURE}。

表10.11 逻辑操作符

操 作 符

使 用

说 明

:LAND:

A:LAND:B

A和B做逻辑与

续表

操 作 符

使 用

说 明

:LEOR:

A:LEOR:B

A和B做逻辑异或

:LOR:

A:LOR:B

A和B做逻辑或

10.3.4 汇编语言预定义寄存器和协处理器

ARM汇编器对ARM的寄存器和协处理器进行了预定义(包括APCS对r0~r15寄存器的定义),所有的寄存器和协处理器名都是大小写敏感的。

1.预定义寄存器名

下面列出了被ARM汇编器预定义的寄存器名。

· r0~r15和R0~R15(15个通用寄存器)。

· a1~a4(参数、结果或临时寄存器,同r0~r3)。

· v1~v8(变量寄存器,同r4~r11)。

· sb和SB(静态基址寄存器,同r9)。

· sl和SL(栈顶指针寄存器,同r10)。

· fp和FP(帧指针寄存器,同r11)。

· ip和IP(过程调用中间临时寄存器,同r12)。

· sp和SP(栈指针寄存器,同r13)。

· lr和LR(连接寄存器,同r14)。

· pc和PC(程序计数器,同r15)。

2.预定义程序状态寄存器名

下面列出了ARM汇编器预定义的程序状态寄存器的名称。

· cpsr和CPSR(当前程序状态寄存器)。

· spsr和SPSR(保留程序状态寄存器)。

3.预定义的浮点寄存器名

下面列出了ARM汇编器预定义的浮点运算寄存器。

· s0~s31和S0~S31(VFP单精度浮点运算寄存器)。

· d0~d15和D0~D15(VFP双精度浮点运算寄存器)。

注意

FPA的寄存器f0~f7和F0~F7已不再使用。

4.预定义的协处理器名

下面列出了ARM汇编器预定义的协处理器名和协处理器寄存器名。

· p0~p15(预定义的协处理器0~15的名称)。

· c0~c15(预定义的协处理器寄存器0~15的名称)。

10.3.5 汇编语言内置变量

ARM汇编器中定义了一些内置变量,这些内置变量不能使用伪指令设置(如,SETA、SETL、SETS等),一般用于程序的条件汇编控制。

下面的例子显示了如何使用

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top