 |
Some things depend of 2PASS assembly. In first pass, mas do:
-
find all labels and calculate offset (depend of .org directive)
-
include files (only if specify .include)
-
.org directive
First pass produce temporal file. This file is text file which
have extension .$$$. On most systems, temporally of test.a' is 'test.a.$$$'.
If file already exist it will be overwritten! Temp file is same like start
file, but there is no labels:
; test.a ; test.a.$$$
start:
movlw 0x10 movlw 0x10
movwf 0x20 movwf 0x20
If .include directive is used, temp file is longer than start file.
If pass1 find .org directive, current-offset is evaluated to new value,
and output to temp file is same line.
All operands of instructions are expressions. So, operands can reference
non-defined labels, but can not reference non-declared names whose type
is other than L_LABEL.
|
 |