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

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

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

表达式中最先被计算。单目操作符写在操作数的前面。运算顺序为从右到左。

表10.5列出了汇编中单目运算操作符及其返回值。

表10.5 汇编中单目运算操作符及其返回值。

操 作 符

使 用

描 述

:CHR:

:CHR:A

返回字母A的ASCII码

:LOWERCASE

:LOWERCASE:string

将给定字符串中的所有大写字母变成小写

REVERSE_CC

:REVERSE_CC:cond_code

对条件码取反

:STR:

:STR:A

将一个数字量或逻辑表达式转换成串

:UPPERCASE:

:UPPERCASE:string

将给定字符串中的所有小写字母变成大写

?A

返回定义符号A的代码行所生产代码行的字节数

续表

操 作 符

使 用

描 述

+和-

+A和-A

单目加和单目减,操作数为数学或程序相关表达式

:BASE:

:BASE:A

如果A是程序或寄存器相关表达式,:BASE:返回基址寄存器的编号

:CC_ENCODING:

:CC_ENCODING:cond_code

返回条件码中的数字值

:DEF:

:DEF:A

判断A是否被定义,如果被定义返回{TRUE};如果没有定义返回{FALSE}

:INDEX:

:INDEX:A

如果A是寄存器相关表达式,:INDEX:返回A相对于寄存器的偏移量,常用在宏操作中

:LEN:

:LEN:A

字符串A的长

:LNOT:

:LNOT:A

逻辑表达式A的值取反

:NOT:

:NOT:A

~A

A的值按位取反

:RCONT:

:RCONT:Rn

返回寄存器编号,0~15对应寄存器r0~r15

(3)双目运算

ARM汇编中将双目运算符放在两个操作数中间。一般情况下,双目运算的优先级低于单目运算。下面将以操作符的优先级为序分别介绍各操作符。

注意

操作符的优先级与C语言中操作符优先级顺序略有不同,详见单目运算一节。

表10.6列出了乘法相关操作符。

表10.6 乘法相关操作符

操 作 符

别 名

使 用

说 明

*

A*B

乘法操作

/

A/B

除法操作

:MOD:

%

A:MOD:B

以B为除数对A取模

乘法相关操作符包括乘、除、取模运算,在双目运算中具有最高优先级。这些运算的操作数只能是数字表达式。

表10.7列出了字符串相关操作符。

表10.7 字符串操作符

操 作 符

使 用

说 明

:CC:

A:CC:B

连接两个字符串

:LEFT:

A:LEFT:B

返回字符串A最左端B长度的字符,操作数A必须为字符串,B必须为整数表达式

:RIGHT:

A:RIGHT:B

返回字符串A最右端B长度的字符,操作数A必须为字符串,B必须为整数表达式

表10.8列出了移位操作符。移位操作中两个操作数均为数字表达式。

表10.8 移位操作符

操 作 符

别 名

使 用

说 明

:ROL:

A:ROL:B

A循环左移B位

:ROR:

A:ROR:B

A循环右移B位

:SHL:

<<

A:SHL:B

A左移B位

:SHR:

>>

A:SHR:B

A右移B位

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

网站地图

Top