Chapter 4 Optimization

Example: branch destination of conditional branch instruction within range

This example shows a branch in the permitted range (-128 to 127 of PC) of a BCC LABEL conditional branch instruction.

The source list is as follows.

 

opt

on

_TEXT

section

CODE, PUBLIC,1

sub_func

mov

0, D2

 

 

cmp

D1, D2

addr_set

bcc

func_end

func_end

org

addr_set+127

rts

 

 

 

 

end

 

The final list file after assembly is shown next. The start address during linking is assumed to be 40000000 (hex.). The @ mark on line number 6 indicates that the instruction was the object of optimi- zation. Since the target address is within the range of a relative jump, the assembler generates a BCC LABEL instruction.

 

 

 

opt1.lst Page 1

 

Loc

*** PanaX series Series MN1030 Cross Assembler ***

Object

Line

Source

opt

on

 

 

1

_TEXT

40000000

 

2

 

section CODE, PUBLIC, 1

8A00

3

sub_func

mov

0, D2

40000000

4

 

40000002

A6

5

addr_set

cmp

D1, D2

40000003

C67F

@6

bcc

func_end

 

 

7

 

org

addr_set+127

40000082

 

8

func_end

F0FC

9

rts

 

40000082

10

 

 

 

 

11

 

end

 

 

 

 

opt1.lst Page 2

 

*** Symbol Table

***

 

40000000

T

sub_func

40000003

T

addr_set

40000082

T

func_end

Usage Example 55

Page 67
Image 67
Panasonic MN1030 user manual Opt