FRAME POP

FRAME POP ディレクティブを使用して、呼び出される側がレジスタをリロードするタイミングをアセンブラに通知します。このディレクティブは、FUNCTION ディレクティブと ENDFUNC ディレクティブを含む関数または PROC ディレクティブと ENDP ディレクティブを含む関数でのみ使用できます。

このディレクティブは、関数内の最後の命令の後で必ず使用する必要があるものではありません。

Show/hide構文

FRAME POP には以下の構文があります。

FRAME POP {reglist}
FRAME POP {reglist},n
FRAME POP n

各項目には以下の意味があります。

reglist

関数へのエントリで保持していた値に復元されるレジスタリストを指定します。リストには少なくとも 1 本のレジスタを指定する必要があります。

n

スタックポインタが移動するバイト数を指定します。

Show/hide使用法

FRAME POP は、FRAME ADDRESS ディレクティブおよび FRAME RESTORE ディレクティブを使用することと同じです。このディレクティブを使用すると、1 つの命令でレジスタをロードし、スタックポインタを変更することができます。

FRAME POP は、このディレクティブが参照する命令の直後に配置する必要があります。

n が指定されていないかゼロの場合、アセンブラによって、{reglist} から標準構造フレームアドレスまでの新しいオフセットが計算されます。アセンブラは以下を前提としています。

  • ポップされる各 ARM レジスタによってスタック上の 4 バイトが占有されていること

  • ポップされる各浮動小数点単精度レジスタによってスタック上の 4 バイトが占有され、さらにリストごとに 4 バイトワードが占有されていること

  • ポップされる各浮動小数点倍精度レジスタによってスタック上の 8 バイトが占有され、さらにリストごとに 4 バイトワードが占有されていること

Show/hide関連項目

Copyright © 2014 ARM. All rights reserved.ARM DUI 0802AJ
Non-ConfidentialID061814