バブルソートによる整列

バブルソートによって,データ領域のDATA(00H番地)から始まる,N(80H番 地)バイトのデータを昇順に整列する.なお,ソート完了の判定にキャリー フラグを利用している.


コード

*** KUE-CHIP2 Assembler ver.2.0   by H.Ochi ***

* Bubble Sorting
* Programmed by Akira Uejima, May. 3, 1992

* Data(signed) on data page
 00 :                   DATA:   EQU             00H
* Data Length(byte) on program page
 80 :                   N:      EQU             80H   H ←Nを入力
* Work Area(loop counter) on program page
 90 :                   WORK1:  EQU             90H
* Work Area(swap area) on program page
 91 :                   WORK2:  EQU             91H

 00 :   6C 80                   LD      IX,     [N]
 02 :   AA 01                   SUB     IX,     1
 04 :   7C 90                   ST      IX,     [WORK1]
 06 :   C9              LP1:    EOR     IX,     IX
 07 :   20                      RCF             
 08 :   67 00           LP2:    LD      ACC,    (IX+DATA)
 0A :   F7 01                   CMP     ACC,    (IX+DATA+1)
 0C :   3F 19                   BLE             SKIP
 0E :   74 91                   ST      ACC,    [WORK2]
 10 :   67 01                   LD      ACC,    (IX+DATA+1)
 12 :   77 00                   ST      ACC,    (IX+DATA)
 14 :   64 91                   LD      ACC,    [WORK2]
 16 :   77 01                   ST      ACC,    (IX+DATA+1)
 18 :   2F                      SCF             
 19 :   BA 01           SKIP:   ADD     IX,     1
 1B :   FC 90                   CMP     IX,     [WORK1]
 1D :   31 08                   BNZ             LP2
 1F :   35 29                   BNC             FIN
 21 :   6C 90                   LD      IX,     [WORK1]
 23 :   AA 01                   SUB     IX,     1
 25 :   7C 90                   ST      IX,     [WORK1]
 27 :   31 06                   BNZ             LP1
 29 :   0F              FIN:    HLT             

                                END             

メモリ(Data Page)

00 :


アクション

トレース : On Off

←実行開始

←全入力項目の初期化


KUE2-Emuトップページ

Akira UEJIMA, Apr 15 09:58 2010