
|
|
|
| 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 | ;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 |