11.07.2015 Views

HLASM: V1R6 Language Ref

HLASM: V1R6 Language Ref

HLASM: V1R6 Language Ref

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTR instruction►►sequence_symbolACTR arithmetic_expression ►◄ANOPsequence_symbolis a sequence symbol.arithmetic_expressionis an arithmetic expression used to set or reset a conditional assembly branchcounter.A conditional assembly branch counter has a local scope; its value is decrementedby AGO and successful AIF instructions, and reassigned only by ACTR instructionsthat appear within the same scope. Thus, the nesting of macros has no effect on thesetting of branch counters in other scopes. The assembler assigns a branch counterfor open code and for each macro definition. In the absence of an ACTRinstruction, a default value of 4096 is assigned.Branch counter operationsWithin the scope of a branch counter, the following occurs:1. Each time an AGO or AIF branch is executed, the assembler checks the branchcounter for zero or a negative value.2. If the count is not zero or negative, it is decremented by one.3. If the count is zero or negative, the assembler takes one of two actions:a. If it is processing instructions in open code, the assembler processes theremainder of the instructions in the source module as comments. Errorsdiscovered in these instructions during previous passes are flagged.b. If it is processing instructions inside a macro definition, the assemblerterminates the expansion of that macro definition and processes the nextsequential instruction after the calling macro instruction. If the macrodefinition is called by an outer macro instruction, the assembler processesthe next sequential prototype instruction after the call; that is, it continuesprocessing at the next outer level of nested macros.The assembler halves the ACTR counter value when it encounters serious syntaxerrors in conditional assembly instructions.instructionYou can specify a sequence symbol in the name field of an ANOP instruction, anduse the symbol as a label for branching purposes.The ANOP instruction carries out no operation itself, but you can use it to allowconditional assembly to resume assembly or conditional generation at aninstruction that does not have a sequence symbol in its name field. For example, ifyou wanted to branch to a SETA, SETB, or SETC assignment instruction, whichrequires a variable symbol in the name field, you could insert a labeled ANOPinstruction immediately before the assignment instruction. By branching to theANOP instruction with an AIF or AGO instruction, you would, in effect, bebranching to the assignment instruction.388 <strong>HLASM</strong>: <strong>V1R6</strong> <strong>Language</strong> <strong>Ref</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!