Chapter 11 Writing Macro Control Statements

Usage example

An example using the local directive is shown below.

loc

macro

p1

 

local

lab1, lab2

 

mov

p1, D0

lab1

cmp

0, D0

 

jmp

lab2

 

mov

1, A1

lab2

mov

0, A0

;

endm

 

 

 

_TEXT

section

CODE, PUBLIC, 1

 

loc

0

 

loc

1

The assembled list file is shown next. You can see that each time the local symbol is expanded, it is

changed to ??00001, ??00002, ...

 

 

 

local.lst

Page 1

 

***

Panax Series MN1030 Cross Assembler ***

Loc

Object

Line

Source

 

 

 

 

M1

loc

macro

p1

 

 

2

 

local

lab1, lab2

 

 

3

 

mov

p1, D0

 

 

4

lab1

cmp

0, D0

 

 

5

 

jmp

lab2

 

 

6

 

mov

1, A1

 

 

7

lab2

mov

0, A0

 

 

8

 

endm

 

 

 

9

;

 

 

 

 

10

_TEXT

section

CODE, PUBLIC, 1

 

 

M11

 

loc

0

 

 

M11+

 

local

lab1, lab2

00000000

8000

11+

 

mov

0, D0

00000002

A000

11+

??00001

cmp

0, D0

00000004

DC00000000

+11+

 

jmp

??00002

00000009

9501

11+

 

mov

1, A1

0000000b

9000

11+

??00002

mov

0, A0

 

 

M12

 

loc

1

 

 

M12+

 

local

lab1, lab2

0000000d

8001

12+

 

mov

1, D0

0000000f

A000

12+

??00003

cmp

0, D0

00000011

DC00000000

+12+

 

jmp

??00004

00000016

9501

12+

 

mov

1, A1

00000018

9000

12+

??00004

mov

0, A0

214 Local Symbol Declaration (local)

Page 226
Image 226
Panasonic MN1030 user manual Usage example, An example using the local directive is shown below