beautypg.com

Table 20, Assembler directives for structured assembly – Zilog Z8F0130 User Manual

Page 342

background image

Using the Macro Assembler

UM013037-1212

318

Zilog Developer Studio II – Z8 Encore!
User Manual

Structured Assembly Inputs

– see page 319

Structured Assembly Processing

– see page 323

The assembler directives associated with structured assembly are summarized in the fol-
lowing table.

The assembler directives shown in the table are known collectively as structured assembly
test directives and are always used together to form a homogeneous structured assembly
block. The assembler supports one decision structure (

.$IF

) and two looping structures

(

.$WHILE

and

.$REPEAT

).

The assembler supports a decision structure with the .

$IF

,

.$ELSEIF

,

.$ELSE

, and

.$ENDIF

directives. These directives generate code to test one or more execution-time

conditions and execute a block of statements based on the result of the tests.

For example, in the following decision structure:

.$if (r0 == #0)

ld r0,r1

.$else

ld r0,r2

.$endif

the assembler generates the following code:

000000 A6E000A 2.$if (r0 == #0)

000003 EB 05

000005 E4E1E0A 3ld r0,r1

000008 8B 03A 4.$else

00000A E4E2E0A 5ld r0,r2

00000DA 6.$endif

The assembler supports two types of looping structures with the

.$WHILE

,

.$WEND

, and

.$REPEAT

,

.$UNTIL

directive pairs. The

.$WHILE

directive generates code to test an

execution-time condition and executes a block of statements while the condition is true.
Since the test is performed before executing the block, the block might not be executed.

Table 54. Assembler Directives for Structured Assembly

Assembler Directive

Description

.$IF, .$REPEAT, .$WHILE

Structured assembly test primary

$ELSEIF

Structured assembly test alternate

.$ELSE

Structured assembly test default

.$BREAK, .$CONTINUE

Structured assembly test control

.$ENDIF, .$UNTIL, .$WEND

Structured assembly test end