integer | floating point | character/string | label | segment | |
db | yes | no | yes | no | no |
dw | yes | no | yes | yes | yes |
dd | yes | yes | yes | yes | no |
dq | no | yes | no | no | no |
dt | no | yes | no | no | no |
( ) | specify evaluation order ofsub-expressions |
SEG | refers to segment of a variable (16-bit only) |
- | unary minus |
+ | unary plus |
~ | bitwise complement |
! | logical not |
* | multiply |
/ | divide, unsigned |
/- | divide, signed |
% | modulous, unsigned |
%- | modulous, signed |
+ | addition |
- | subtraction |
WRT | offset of a variable, from a specific segment |
>> | unsigned shift right |
<< | unsigned shift left |
> | greater than |
>= | greater than or equal |
< | less than |
<= | less than or equal |
== | equals |
!= | not equal to |
& | binary and |
^ | binary exclusive or |
| | binary or |
&& | logical and |
|| | logical or |
( ) | parenthesis |
SEG, -, +, ~, ! | unary operators |
*, /, /-, %, %- | multiplicative operators |
+, -, WRT | additive operators |
<<,>> | shift operators |
>l, >=, <, <= | inequality operators |
==, != | equality operators |
& | bitwise and |
^ | bitwise exclusive or |
| | bitwise or |
&& | logical and |
|| | logical or |
%define | define a constant or function-style macro |
%undef | undefine a macro |
%error | display an error |
%line | set the file and line displayed in error messages |
%include | include another file |
%if | conditional which tests fornonzero expression |
%elif | else-style conditional which tests for nonzero-expression |
%ifdef | conditional which tests to see if a macro has been %defined |
%ifndef | conditional which tests to see if a macro has not been %defined |
%else | else clause for conditionals |
%endif | end of conditional |
%assign | Like %define, but evaluates an expression and sets the value to the result |
%iassign | %assign with a case-insensitive name |
%idefine | %define with a case-insensitive name |
%elifdef | else-style conditional which tests to see if a macro has been %defined |
%elifndef | else-style conditional which tests to see if a macro has not been %defined |
%ifidn | Case sensitive test for string matching |
%ifnidn | Case sensitive test for string not matching |
%elifidn | else-style case sensitive test for string matching |
%elifnidn | else-style case sensitive test for string not matching |
%ifidni | Case insensitive test for string matching |
%ifnidni | Case insensitive test for string not matching |
%elifndi | else-style case insensitive test for string matching |
%elifnidni | else-style case insensitive test for string not matching |
%ifid | test to see if argument is an identifier |
%ifnid | test to see if argument is not an identifier |
%elifid | else-style test to see if argument is an identifier |
%elifnid | else-style test to see if argument is not an identifier |
%ifnum | test to see if argument is a number |
%ifnnum | test to see if argument is not a number |
%elifnum | else-style test to see if argument is a number |
%elifnnum | else-style test to see if argument is not a number |
%ifstr | test to see if argument is a string |
%ifnstr | test to see if argument is not a string |
%elifstr | else-style test to see if argument is a string |
%elifnstr | else-style test to see if argument is not a string |
%macro | start a multiline macro |
%imacro | start a multiline macro, caseinsensitive name |
%endmacro | end a multiline macro |
%rotate | rotate arguments in a multiline macro |
%rep | start a repeat block |
%endrep | end a repeat block |
%exitrep | exit a repeat block prematurely |
%push | start a new context |
%pop | end a new context |
%repl | rename the context at the topeof the context stack |
%ifctx | test to see if a context is in effect |
%ifnctx | test to see if a context is not in effect |
%elifctx | else-style test to see if a context is in effect |
%elifnctx | else-style test to see if a context is not in effect |
Attribute | Meaning | Default Value for Partitions | Default Value for Overlays | Default Value for Regions |
ADDR | Address | 0, or end of previous partition | partition address | overlay address or end of previous region |
SIZE | Absolute size | unassigned | partition size | unassigned |
MAXSIZE | absolute size may vary up to this amount | unassigned | partition maxsize | unassigned |
ROUNDSIZE | absolute size may vary, but will be rounded up to the next multiple of this | 1 | partition roundsize | unassigned |
FILL | fill value used when absolute size does not match size of data included in region | 0 | partition fill | overlay fill |
ALIGN | minimum alignment of region | 1 | partition alignment | overlay alignment |
VIRTUAL | base address for linking the region, when base address does not match the ADDR attribute | unassigned | partition virtual attribute | virtual address of overlay, or end of previous region |
Overlay | Sections | Base Address Identifier | Base Address |
RESET | reset | RESETBASE | 0x00000 |
ROM | code, const, string | CODEBASE | 0x00008 |
RAM | data, bss | RAMBASE | 0x10000 |
STACK | stack | STACKBASE (size = STACKSIZE) | 0x20000 ( 0x400) |
Overlay | Sections |
.text | code, const |
.data | data, string, bss |
Definition | Meaning | Default |
FILEALIGN | Object Alignment within an executable file | 0x200 |
HEAPCOMMIT | Amount of local heap to commit at program start | 0 |
HEAPSIZE | Size of local heap | 0x100000 |
IMAGEBASE | Base address for the image (used to resolve DLL Address collisions) | 0x400000 |
OBJECTALIGN | Object alignmed t in memory | 0x1000 |
STACKCOMMIT | Amount of stack to commit at program start | 0x2000 |
STACKSIZE | Size of stack for default thread | 0x100000 |