01.12.2014 Views

RealView Compilation Tools Developer Guide - ARM Information ...

RealView Compilation Tools Developer Guide - ARM Information ...

RealView Compilation Tools Developer Guide - ARM Information ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

混 合 使 用 C、C++ 和 汇 编 语 言<br />

5.1.1 调 用 内 联 汇 编 程 序<br />

如 何 调 用 内 联 汇 编 程 序 取 决 于 编 译 的 是 C 还 是 C++:<br />

• 编 译 C 时 , <strong>ARM</strong> 编 译 程 序 通 过 __asm 说 明 符 支 持 内 联 汇 编 语 言 。<br />

• 编 译 C++ 时 ,<strong>ARM</strong> 编 译 程 序 通 过 __asm 说 明 符 和 asm 关 键 字 支 持 内 联 汇 编<br />

语 言 。<br />

有 关 内 联 汇 编 程 序 的 详 细 信 息 , 请 参 阅 <strong>RealView</strong> 编 译 工 具 2.0 版 编 译 程 序 和 库<br />

指 南 中 关 于 内 联 和 嵌 入 式 汇 编 程 序 一 章 。<br />

带 有 __asm 说 明 符 的 内 联 汇 编 程 序<br />

编 译 C 或 C++ 时 , 可 以 通 过 __asm 汇 编 程 序 说 明 符 调 用 内 联 汇 编 程 序 。 说 明 符<br />

后 面 跟 随 有 一 列 包 含 在 大 括 号 中 的 汇 编 程 序 指 令 。 例 如 :<br />

__asm<br />

{<br />

instruction [; instruction]<br />

...<br />

[instruction]<br />

}<br />

如 果 两 条 指 令 在 同 一 行 中 , 必 须 用 分 号 将 其 分 隔 。 如 果 一 条 指 令 占 用 多 行 , 必<br />

须 用 反 斜 线 符 号 (\) 指 定 续 行 。 可 在 内 联 汇 编 语 言 块 内 的 任 意 位 置 处 使 用 C 或<br />

C++ 注 释 。<br />

可 在 任 何 可 以 使 用 C 或 C++ 语 句 的 地 方 使 用 __asm 语 句 。<br />

带 有 asm 关 键 字 的 内 联 汇 编 程 序<br />

编 译 C++ 时 ,<strong>ARM</strong> 编 译 程 序 支 持 ISO C++ 标 准 中 建 议 的 asm 语 法 , 其 限 制 是 字<br />

符 串 文 字 必 须 是 单 个 字 符 串 。 例 如 :<br />

asm("instruction[;instruction]");<br />

asm 语 句 必 须 在 C++ 函 数 内 。 字 符 串 文 字 中 不 能 包 括 注 释 。 可 在 任 何 可 以 使 用 C<br />

或 C++ 语 句 的 地 方 使 用 asm 语 句 。<br />

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

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

Saved successfully!

Ooh no, something went wrong!