23.10.2014 Views

RealView - ARM Information Center

RealView - ARM Information Center

RealView - ARM Information Center

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

2.5 条 件 执 行<br />

在 <strong>ARM</strong> 状 态 中 , 每 个 数 据 处 理 指 令 都 有 一 个 选 项 , 可 根 据 操 作 结 果 来 更 新 当 前<br />

程 序 状 态 寄 存 器 (CPSR) 中 的 ALU 标 志 。<br />

对 一 个 <strong>ARM</strong> 数 据 处 理 指 令 添 加 一 个 S 后 缀 , 可 使 其 更 新 CPSR 中 的 ALU 状 态<br />

标 志 。<br />

不 要 将 S 后 缀 用 于 CMP、 CMN、 TST 或 TEQ。 这 些 比 较 指 令 总 是 更 新 标 志 。 这 是 它<br />

们 的 唯 一 作 用 。<br />

在 Thumb 状 态 下 没 有 选 项 。 所 有 数 据 处 理 指 令 都 更 新 CPSR 中 的 ALU 状 态 标<br />

志 , 但 在 MOV 和 ADD 中 使 用 了 一 个 或 多 个 高 位 寄 存 器 除 外 。 在 这 些 情 况 下 , MOV<br />

和 ADD 不 能 更 新 状 态 标 志 。<br />

几 乎 每 条 <strong>ARM</strong> 指 令 都 可 根 据 CPSR 中 的 ALU 状 态 标 志 的 值 , 来 有 条 件 地 加 以<br />

执 行 。 有 关 添 加 到 指 令 上 以 使 其 条 件 执 行 的 后 缀 的 列 表 , 请 参 阅 第 2-23 页 上 的<br />

表 2-1。<br />

在 <strong>ARM</strong> 状 态 中 , 可 以 :<br />

• 根 据 数 据 操 作 结 果 更 新 CPSR 中 的 ALU 状 态 标 志 ;<br />

• 执 行 几 个 其 它 数 据 操 作 而 不 更 新 标 志 ;<br />

• 根 据 第 一 个 操 作 所 更 新 的 标 志 的 状 态 , 来 执 行 或 不 执 行 后 续 指 令 。<br />

在 Thumb 状 态 中 , 大 多 数 数 据 操 作 总 是 更 新 标 志 , 并 且 只 能 使 用 条 件 跳 转 指 令<br />

(B) 来 实 现 条 件 执 行 。 该 指 令 的 后 缀 与 在 <strong>ARM</strong> 状 态 下 相 同 。 没 有 其 它 指 令 是 有<br />

条 件 的 。<br />

2.5.1 ALU 状 态 标 志<br />

CPSR 包 含 下 列 ALU 状 态 标 志 :<br />

N 当 操 作 结 果 是 负 值 时 设 置 此 标 志 。<br />

Z 当 操 作 结 果 是 零 时 设 置 此 标 志 。<br />

C 当 操 作 导 致 一 个 进 位 时 设 置 此 标 志 。<br />

V 当 操 作 造 成 上 溢 时 设 置 此 标 志 。<br />

Q <strong>ARM</strong> 体 系 结 构 v5E、 v6 及 以 上 版 本 。 粘 性 标 志 ( 请 参 阅 第 4-7 页<br />

的 Q 标 志 )。<br />

如 果 一 个 加 法 的 结 果 大 于 或 等 于 2 32 、 如 果 一 个 减 法 的 结 果 是 正 值 , 或 者 如 果 是<br />

移 动 或 逻 辑 指 令 中 的 一 个 内 嵌 滚 筒 式 移 位 器 操 作 的 结 果 时 , 则 发 生 进 位 。<br />

如 果 一 个 加 法 、 减 法 或 比 较 的 结 果 大 于 或 等 于 2 31 或 小 于 –2 31 , 则 发 生 上 溢 。<br />

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