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.

使 用 过 程 调 用 标 准<br />

3.5.4 汇 编 语 言 中 的 栈 检 查<br />

如 果 您 对 汇 编 代 码 选 择 了 软 件 栈 检 查 (/swst) 选 项 , 则 您 负 责 编 写 执 行 栈 检 查 的<br />

代 码 。<br />

叶 函 数 是 不 调 用 任 何 其 它 子 程 序 的 函 数 。<br />

必 须 考 虑 以 下 情 况 :<br />

• 使 用 少 于 256 字 节 栈 的 叶 函 数 ;<br />

• 使 用 少 于 256 字 节 栈 的 非 叶 函 数 ;<br />

• 第 3-13 页 的 使 用 超 过 256 字 节 栈 的 函 数 。<br />

因 此 , 叶 函 数 包 含 的 函 数 中 每 个 调 用 都 是 尾 调 用 。<br />

使 用 少 于 256 字 节 栈 的 叶 函 数<br />

使 用 少 于 256 字 节 栈 的 叶 函 数 不 需 要 检 查 栈 限 制 。 这 是 上 述 规 则 的 结 果 ( 请 参<br />

阅 第 3-11 页 的 栈 限 制 检 查 代 码 规 则 )。<br />

因 此 , 叶 函 数 可 以 是 总 计 栈 使 用 量 少 于 256 字 节 的 多 个 函 数 的 组 合 。<br />

使 用 少 于 256 字 节 栈 的 非 叶 函 数<br />

调 用 都 是 尾 调 用<br />

使 用 少 于 256 字 节 栈 的 非 叶 函 数 可 以 使 用 如 下 的 限 界 检 查 序 列 :<br />

SUB sp, sp, #size ; <strong>ARM</strong> code version<br />

CMP sp, sl<br />

BLLO __<strong>ARM</strong>_stack_overflow<br />

或 用 Thumb 代 码 :<br />

ADD sp, #-size ; Thumb code version<br />

CMP sp, sl<br />

BLLO __Thumb_stack_overflow<br />

备 注<br />

名 称 __<strong>ARM</strong>_stack_overflow 和 __Thumb_stack_overflow 是 说 明 性 的 , 不 对 应 于 任 何<br />

实 际 的 实 现 。<br />

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

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

Saved successfully!

Ooh no, something went wrong!