Copyright (C) 2000-2012 |
GNU Info (nasm.info)Section 4.9.24.9.2. `%stacksize' Directive ----------------------------- The `%stacksize' directive is used in conjunction with the `%arg' (see *Note Section 4.9.1::) and the `%local' (see *Note Section 4.9.3::) directives. It tells NASM the default size to use for subsequent `%arg' and `%local' directives. The `%stacksize' directive takes one required argument which is one of `flat', `large' or `small'. %stacksize flat This form causes NASM to use stack-based parameter addressing relative to `ebp' and it assumes that a near form of call was used to get to this label (i.e. that `eip' is on the stack). %stacksize large This form uses `bp' to do stack-based parameter addressing and assumes that a far form of call was used to get to this address (i.e. that `ip' and `cs' are on the stack). %stacksize small This form also uses `bp' to address stack parameters, but it is different from `large' because it also assumes that the old value of bp is pushed onto the stack (i.e. it expects an `ENTER' instruction). In other words, it expects that `bp', `ip' and `cs' are on the top of the stack, underneath any local space which may have been allocated by `ENTER'. This form is probably most useful when used in combination with the `%local' directive (see *Note Section 4.9.3::). automatically generated by info2www version 1.2.2.9 |