23.10.2014 Views

RealView - ARM Information Center

RealView - ARM Information Center

RealView - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

汇 编 程 序 参 考<br />

3.6.9 运 算 符 优 先 级<br />

本 汇 编 程 序 包 含 丰 富 的 运 算 符 集 合 , 可 用 于 表 达 式 中 。 很 多 运 算 符 与 其 在 C 等<br />

高 级 语 言 中 的 相 应 运 算 符 类 似 ( 请 参 阅 第 3-26 页 的 一 元 运 算 符 和 第 3-28 页 的<br />

二 元 运 算 符 )。<br />

在 对 其 求 值 时 有 严 格 的 优 先 级 顺 序 :<br />

1. 首 先 计 算 括 号 中 的 表 达 式 的 值 。<br />

2. 按 优 先 级 顺 序 应 用 运 算 符 。<br />

3. 对 相 邻 的 一 元 运 算 符 从 右 到 左 求 值 。<br />

4. 同 等 优 先 级 的 二 元 运 算 符 从 左 到 右 求 值 。<br />

备 注<br />

优 先 级 顺 序 与 C 语 言 中 不 完 全 相 同 。<br />

例 如 , 在 armasm 中 ,(1 + 2 :SHR; 3) 的 计 算 结 果 为 (1 + (2 :SHR: 3)) = 1。C 语 言<br />

中 的 等 价 表 达 式 的 求 值 结 果 为 ((1 + 2) >> 3) = 0。<br />

建 议 使 用 花 括 号 来 明 确 优 先 级 。<br />

表 3-2 显 示 了 armasm 中 运 算 符 的 优 先 级 顺 序 , 并 与 C 语 言 中 的 顺 序 进 行 了 比 较 。<br />

如 果 代 码 中 包 含 在 C 语 言 中 按 不 同 方 式 分 析 的 表 达 式 , armasm 通 常 给 出 一 条 警<br />

告 信 息 :<br />

A1466W: Operator precedence means that expression would evaluate differently in C<br />

如 果 使 用 了 -unsafe 命 令 行 选 项 , 就 不 产 生 此 警 告 。<br />

表 3-2 armasm 中 的 运 算 符 优 先 级<br />

armasm 优 先 级<br />

一 元 运 算 符<br />

等 价 的 C 运 算 符<br />

一 元 运 算 符<br />

* / :MOD: * / %<br />

字 符 串 操 作<br />

不 可 用<br />

:SHL: :SHR: :ROR: :ROL: ><br />

3-24 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0204BSC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!