Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
命 令 参 考<br />
7.5.10 FUNCTION 或 PROC<br />
FUNCTION 命 令 标 记 一 个 兼 容 ATPCS 的 函 数 开 始 。 PROC 是 FUNCTION 的 一 个 同 义 词 。<br />
语 法<br />
label FUNCTION [{Reglist1} [, {Reglist2}]]<br />
其 中 :<br />
reglist1<br />
是 一 个 可 选 的 由 被 调 用 函 数 保 存 的 <strong>ARM</strong> 寄 存 器 列 表 。 如 果 reglist1<br />
不 出 现 , 并 且 调 试 程 序 检 查 寄 存 器 使 用 情 况 , 则 将 假 定 正 在 使 用<br />
ATPCS。<br />
reglist2 是 一 个 可 选 的 由 被 调 用 函 数 保 存 的 VFP 寄 存 器 列 表 。<br />
用 法<br />
使 用 FUNCTION 来 标 记 函 数 的 开 始 。 在 为 ELF 生 成 DWARF 调 用 框 架 信 息 时 , 汇<br />
编 程 序 使 用 FUNCTION 来 标 识 一 个 函 数 的 开 始 。<br />
FUNCTION 将 规 范 框 架 地 址 设 置 为 sp, 并 将 框 架 状 态 栈 清 空 。<br />
每 个 FUNCTION 命 令 必 须 有 一 个 相 匹 配 的 ENDFUNC 命 令 。 不 能 嵌 套 FUNCTION/ENDFUNC<br />
对 , 并 且 它 们 不 能 包 含 PROC 或 ENDP 命 令 。<br />
如 果 正 在 使 用 自 己 的 程 序 调 用 标 准 , 可 以 使 用 可 选 的 reglist 参 数 来 将 有 关 此 备<br />
选 程 序 调 用 标 准 的 信 息 通 知 调 试 程 序 。 并 非 所 有 调 试 程 序 都 支 持 此 功 能 。 详 细 信<br />
息 请 参 阅 所 用 调 试 器 的 程 序 。<br />
另 请 参 阅 第 7-35 页 的 FRAME ADDRESS 到 第 7-43 页 的 FRAME STATE<br />
RESTORE。<br />
示 例<br />
dadd<br />
func6<br />
FUNCTION<br />
EXPORT dadd<br />
STMFD sp!,{r4-r6,lr}<br />
FRAME PUSH {r4-r6,lr}<br />
; subroutine body<br />
LDMFD sp!,{r4-r6,pc}<br />
ENDFUNC<br />
PROC {r4-r8,r12},{D1-D3} ; non-ATPCS-conforming function<br />
...<br />
ENDP<br />
7-44 © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0204BSC