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.
使 用 过 程 调 用 标 准<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