If an assembler program analyzes the outcome of a user or mixed-type instruction, a contiguous block of joe instructions should follow the user of mixed-type instruction:
user or mixed-type instruction
joe outcome1, L1
joe outcome2, L2
...
joe outcomeN, LN
; Control reaches this line if an instruction outcome is
; different from outcome1, outcome2, ..., outcomeN.
See Omitting Instruction Outcome Analysis, for a possible assembler program structure after a joe instruction block.
Jump target of a joe instruction can be:
jprob instructions transferring control to states if the state transition matrix does not have the restriction to define only deterministic state transitions.
choice instruction block containing case instructions transferring control to states if the state transition matrix does not have the restriction to define only deterministic state transitions.
The following example shows probabilistic transferring control to states after a jump to a label L1 or L2 on outcome outcome1 or outcome2 respectively:
L1: jprob probA1, SA1
jprob probA2, SA2
...
jprob probAN, SAN
jmp SA0 ; This instruction is not necessary
; if it specifies the jump to a
; state going just after this line.
...
L2: choice
case probB1, SB1
case probB2, SB2
...
case probBN, SBN
end choice
jmp SB0 ; This instruction is not necessary
; if it specifies the jump to a
; state going just after this line.
The above jprob and case instructions specify probabilities of transitions to target states for a source state, a user or mixed-type instruction emitted in the source state, and a specific outcome of the user or mixed-type instruction.