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.10.6 使 用 基 于 寄 存 器 的 MAP 和 FIELD 命 令<br />

基 于 寄 存 器 的 MAP 和 FIELD 命 令 定 义 基 于 寄 存 器 的 符 号 。 基 于 寄 存 器 的 符 号 的 主<br />

要 用 途 是 :<br />

• 定 义 与 C 语 言 结 构 类 似 的 结 构 ;<br />

• 更 快 地 访 问 不 是 由 基 于 寄 存 器 的 MAP 和 FIELD 命 令 描 述 的 存 储 器 段 。<br />

定 义 基 于 寄 存 器 的 符 号<br />

基 于 寄 存 器 的 符 号 可 以 非 常 有 用 , 但 使 用 时 必 须 小 心 。 作 为 通 则 , 请 仅 按 下 列 方<br />

式 使 用 它 们 :<br />

• 作 为 一 个 装 载 或 存 储 指 令 的 装 载 或 存 储 地 址 。 如 果 Location 是 基 于 寄 存 器<br />

的 符 号 ( 基 于 寄 存 器 Rb 并 带 有 数 字 偏 移 量 ), 汇 编 程 序 会 自 动 进 行 切 换 ,<br />

例 如 将 LDR Rn,Location 转 换 为 LDR Rn,[Rb,#offset]。<br />

在 ADR 或 ADRL 指 令 中 ,ADR Rn,Location 将 由 汇 编 程 序 转 换 为 ADD<br />

Rn,Rb,#offset 。<br />

• 将 一 个 常 规 的 数 字 表 达 式 加 到 一 个 基 于 寄 存 器 的 符 号 上 , 以 获 得 另 一 个 基<br />

于 寄 存 器 的 符 号 。<br />

• 从 一 个 基 于 寄 存 器 的 符 号 减 去 一 个 常 规 的 数 字 表 达 式 , 以 获 得 另 一 个 基 于<br />

寄 存 器 的 符 号 。<br />

• 从 一 个 基 于 寄 存 器 的 符 号 减 去 另 一 个 基 于 寄 存 器 的 符 号 , 以 获 得 一 个 常 规<br />

的 数 字 表 达 式 。 除 非 两 个 基 于 寄 存 器 的 符 号 是 基 于 同 一 个 寄 存 器 的 , 否 则<br />

不 能 执 行 这 种 操 作 。 不 然 的 话 , 将 得 到 两 个 寄 存 器 和 一 个 数 字 值 的 组 合 。<br />

这 样 会 导 致 一 个 汇 编 程 序 错 误 。<br />

• 作 为 :BASE: 或 :INDEX: 运 算 符 的 操 作 数 。 这 些 运 算 符 主 要 用 于 宏 中 。<br />

其 它 用 法 通 常 会 导 致 汇 编 程 序 产 生 出 错 消 息 。 例 如 , 如 果 编 写 了 LDR Rn,=Location<br />

指 令 , 其 中 Location 是 基 于 寄 存 器 的 , 则 意 味 着 让 汇 编 程 序 从 一 个 存 储 器 位 置 装<br />

载 Rn, 该 位 置 总 是 含 有 寄 存 器 Rb 的 当 前 值 加 上 其 中 的 偏 移 量 。 汇 编 程 序 不 能 执<br />

行 这 条 指 令 , 因 为 不 存 在 这 样 的 存 储 器 位 置 。<br />

类 似 地 , 如 果 编 写 了 ADD Rd,Rn,#expression 指 令 , 其 中 expression 是 基 于 寄 存 器<br />

的 , 则 该 指 令 请 求 执 行 一 条 ADD 指 令 , 将 expression 的 两 个 基 址 寄 存 器 及 其 对 Rn<br />

的 偏 移 量 相 加 。 再 一 次 , 汇 编 程 序 不 能 执 行 这 一 指 令 。 您 必 须 使 用 两 个 ADD 指 令<br />

来 执 行 这 两 个 加 法 。<br />

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