flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2 |
Author |
|
Tomasz Grysztar 10 Jun 2025, 08:24
Chapter 5 was supposed to explain this, perhaps it needs an expansion.
In the manual I generally used the term "command" to refer to an operation that you expect the assembler to perform. It is not directly related to syntax. You can give command like "define a symbol with value 1" or "put a byte into the output" with numerous syntax variations. On the other hand, by "instruction" I usually mean a specific syntax, a symbol of instruction class. This can be a built-in instruction, or a macro, or CALM instruction. All of these are instructions - symbols that a recognized when they are the first identifier of a line (or generally a statement, because if line begins with a label followed by ":", the rest is interpreted again as if this was the beginning of a new line). The labeled instructions are another similar class of symbols, which are only recognized when being a second identifier in the line, with the first identifier being a label (and therefore interpreted as an expression-class symbol). And just like regular instructions, they can be built-in, macros (defined with "struc"), or CALM. In fact, you could rewrite many of the built-in directives as the same instructions written in CALM, and there would be no functional difference (except for the impact on performance). The engine purposefully does not discriminate. As for the algorithm that chooses how to interpret a line, you could describe it as follows:
|
|||
![]() |
|
Greg_M 10 Jun 2025, 23:55
Thanks kindly!
|
|||
![]() |
|
Greg_M 11 Jun 2025, 06:08
bitRAKE wrote:
bitRAKE wrote: ?x cannot be interpreted as an instruction-class symbol...The labeled instruction = defines a expression-class symbol named x... |
|||
![]() |
|
Goto page Previous 1, 2 < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.