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.

编 写 <strong>ARM</strong> 和 Thumb 汇 编 语 言<br />

2.9 使 用 宏<br />

宏 定 义 是 位 于 MACRO 和 MEND 命 令 之 间 的 一 块 代 码 。 它 定 义 了 一 个 名 称 , 可 用 于 代<br />

替 重 复 的 整 块 代 码 。 宏 的 主 要 用 途 是 :<br />

• 通 过 用 单 个 有 意 义 的 名 称 代 替 一 块 代 码 , 使 得 更 容 易 理 解 源 代 码 的 逻 辑 性 ;<br />

• 为 了 避 免 多 次 重 复 一 块 代 码 。<br />

详 细 信 息 请 参 阅 第 7-27 页 的 MACRO 和 MEND。<br />

2.9.1 测 试 和 跳 转 的 宏 示 例<br />

一 个 测 试 和 跳 转 操 作 需 要 两 个 <strong>ARM</strong> 指 令 来 实 现 。<br />

您 可 以 定 义 类 似 下 面 这 样 的 宏 定 义 :<br />

MACRO<br />

$label TestAndBranch $dest, $reg, $cc<br />

$label CMP $reg, #0<br />

B$cc $dest<br />

MEND<br />

MACRO 命 令 后 的 行 是 宏 原 型 语 句 。 宏 原 型 语 句 定 义 了 用 于 调 用 宏 的 名 称<br />

(TestAndBranch)。 它 也 定 义 了 参 数 ($label、$dest、$reg 和 $cc)。 在 调 用 宏 时 必<br />

须 为 这 些 参 数 提 供 值 。 汇 编 程 序 用 所 提 供 的 值 替 换 到 代 码 中 。<br />

可 以 按 以 下 方 式 调 用 这 个 宏 :<br />

test TestAndBranch NonZero, r0, NE<br />

...<br />

...<br />

NonZero<br />

在 替 换 后 将 变 成 :<br />

test CMP r0, #0<br />

BNE NonZero<br />

...<br />

...<br />

NonZero<br />

2-50 © 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!