APPENDIX

 

 

 

 

 

 

BENCHMARK:

Bubble

Sort

 

 

 

 

 

 

 

PROCESSOR:

zao

 

 

 

 

 

 

 

 

 

 

 

; REGI STER USAGE:

 

 

 

 

 

 

 

 

 

BC

ACCUMULATOR

 

 

 

 

 

 

 

 

 

DE

- ACCUMULATOR

 

 

 

 

 

 

 

 

 

HL

COUNT

 

 

 

 

 

 

 

 

 

HL

ACCUMULATOR

 

 

 

 

 

 

 

 

 

IX

ARRAY POINTER

 

 

 

 

 

 

 

 

 

DE

TEMPORA~Y STORAGE

 

 

 

 

 

 

Bytes

Cycles

 

 

 

 

 

 

 

 

2

a

 

SET

FLAG,A

;Set

FLAG

bit

to

array

4

14

 

LD

IX,PTR

;Load

 

pOinter

3

10

 

LD

DE,l

;Load

 

decrement constant

 

aLI:

BIT

FLAG,A

;Test

 

FLAG

 

 

 

 

71lt!

JR

Z,DONE

;Done

 

if zero

 

 

 

8

 

RES

FLAG,A

;Reset

FLAG

 

 

 

10

 

LD

HL,C04NT-l

;Load

 

COUNT

 

 

1

4

L2:

EXX

 

 

 

 

 

 

 

3

19

 

LD

C,(IX+O)

;Load

 

data

(I)

 

3

19

 

LD

B,(IX+l)

 

 

 

 

 

 

3

19

 

LD

L, (.IX+2)

;Load

 

data

(1+1)

 

3

19

 

LD

H,(IX+3)

;Save

 

date

in

DE

 

1

4

 

LD

E,L

 

 

1

4

 

LD

D,H

;Clear

carry

flag

 

1

4

 

AND

A,A

 

1

11

 

SBC

HL,BC

;Compare data

 

 

2

7Il t!

JR

NC,NOEX

;No ex

if

data(I)

data(I+l)

3

19

 

LD

(IX+2)C

;Exchange

 

 

 

3

19

 

LD

(IX+2)B

 

 

 

 

 

 

3

19

 

LD

(IX+O)E

 

 

 

 

 

 

3

19

 

LD

(IX+l )D

;Set

exchange

flag

2

8

 

SET

FLAG,A

14 NOEX: EXX

1

6

INC

 

IX

 

;Increment Pointer

1

6

INC

 

IX

 

 

t!

8

AND

 

A,A

 

;Clear carry flag

1

11

SBC

 

HL',DE'

;Decrement COUNT

2

7Il t!

JR

 

NZ, U

;Jump if COUNT not zero

3

10

JP

 

Ll

 

;Another pass

 

 

DONE:

 

 

 

 

 

 

62

bytes

of

code

 

 

 

30

lines

of

code

 

19

AFN·01664A

Page 288
Image 288
Intel 210200-002 manual Zao