RealView Compilation Tools Developer Guide - ARM Information ...
RealView Compilation Tools Developer Guide - ARM Information ...
RealView Compilation Tools Developer Guide - ARM Information ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
混 合 使 用 C、C++ 和 汇 编 语 言<br />
如 果 未 指 定 任 何 列 表 , 则 :<br />
• r0-r3 用 作 输 入 参 数 ;<br />
• r0 用 于 输 出 值 ;<br />
• r12 和 r14 被 破 坏 。<br />
寄 存 器 列 表 的 语 法 与 LDM 和 STM 寄 存 器 列 表 相 同 。 如 果 修 改 了 NZCV 标 志 , 则 必<br />
须 在 破 坏 寄 存 器 列 表 中 指 定 PSR。<br />
5.1.3 内 联 汇 编 程 序 和 armasm 的 不 同 点<br />
内 联 汇 编 程 序 接 受 的 汇 编 语 言 和 <strong>ARM</strong> 汇 编 程 序 接 受 的 汇 编 语 言 之 间 有 大 量 不<br />
同 之 处 和 限 制 。 对 于 内 联 汇 编 程 序 :<br />
• 不 能 用 点 表 示 法 (.) 或 {PC} 获 取 当 前 指 令 的 地 址 。<br />
• 不 支 持 LDR Rn, = 表 达 式 伪 指 令 。 请 使 用 MOV Rn, 表 达 式 代 替 ( 它 可 以 从 文 字<br />
池 装 载 )。<br />
• 不 支 持 标 号 表 达 式 。<br />
• 不 支 持 ADR 和 ADRL 伪 指 令 。<br />
• 不 能 使 用 & 操 作 符 表 示 十 六 进 制 常 数 。 应 使 用 0x 前 缀 来 代 替 。 例 如 :<br />
__asm {AND x, y, 0xF00}<br />
• 用 于 指 定 8 位 常 数 实 际 循 环 的 表 示 法 在 内 联 汇 编 语 言 中 不 能 使 用 。 这 意 味<br />
着 在 使 用 8 位 移 位 常 数 时 , 如 果 更 新 了 NZCV 标 志 ,C 标 志 必 须 视 为 已 破<br />
坏 的 。<br />
• 必 须 小 心 使 用 寄 存 器 ( 如 r0-r3、 ip、 lr) 和 CPSR 中 的 NZCV 标 志 。 如 果<br />
使 用 C 或 C++ 表 达 式 , 这 些 寄 存 器 可 能 被 用 作 临 时 寄 存 器 , 并 且 NZCV<br />
标 志 可 能 在 计 算 表 达 式 时 被 编 译 程 序 破 坏 。 请 参 阅 第 5-5 页 的 虚 拟 和 物 理<br />
寄 存 器 。<br />
• 没 有 为 PC (r15)、lr (r14) 和 sp (r13) 寄 存 器 创 建 虚 拟 寄 存 器 , 而 且 不 能 在 内<br />
联 汇 编 代 码 中 读 取 或 直 接 修 改 它 们 。 有 关 虚 拟 寄 存 器 的 详 细 信 息 , 请 参 阅<br />
第 5-5 页 的 虚 拟 和 物 理 寄 存 器 。<br />
• 您 不 能 写 入 PC。 不 支 持 BX、 BXJ、 BLX 和 BKPT 指 令 。<br />
• 不 得 修 改 栈 。 这 是 没 有 必 要 的 , 因 为 编 译 程 序 根 据 需 要 自 动 将 任 何 工 作 寄<br />
存 器 压 栈 和 恢 复 。 不 允 许 明 确 压 栈 和 恢 复 工 作 寄 存 器 。<br />
<strong>ARM</strong> DUI 0203BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 5-7