Futurebasic/Language/Reference/beginassem

From Wikibooks, open books for an open world
Jump to navigation Jump to search

BeginAssem[edit | edit source]

Statement[edit | edit source]

✔ Appearance ✔ Standard ✔ Console

Syntax[edit | edit source]

BeginAssem
 assembly_statements
EndAssem

Description[edit | edit source]

Marks the beginning of a block of assembly-language statements. The block must be terminated with the EndAssem statement. The statements are assembled directly into the compiled program and executed when the program is run.

Each line in the assembly_statements block should be in this format:

[label] opCode [operands] [;remark]

Note that there should be at least one space character separating each of the four fields of this line. In particular, if label is omitted, you must include at least one leading space in front of opCode. But if label is included, then there should be no leading space to the left of label. To make a nicely formatted listing, use the TAB key to separate the fields.

You can also create assembly-language statements without using the BeginAssem and EndAssem statements, by preceding each assembly statement line with a “grave accent” character (that’s the character to the left of the “1” on the keyboard. It looks like a “backwards” apostrophe: `):

`[label] opCode [operands] [;remark]

This method has the disadvantage that you can’t specify a cpuType for each group of lines: assembly lines that begin with the “`” mark are always assembled according to the “preferred CPU,” using the rules given above. It’s important that you understand which CPU your assembly statements are being assembled for, and that your statements are appropriate for that CPU. You can use the compile long if cpuType statement to exclude your assembly statements from inappropriate compilations.

Notes[edit | edit source]

BeginAssem is not supported in FBtoC.

See Also[edit | edit source]

machlg; compile long if; #if

Language Reference