A. TEORI SINGKAT
Program sorting adalah suatu program yang dibentuk dengan tujuan untuk mengurutkan data yang akan menghasilkan keluaran data dari yang kecil menuju kebesar. Dalam program sorting, terdapat beberapa instruksi yang digunakan dalam proses pengurutan, seperti :
- Instruksi JUMP
Dalam mikroprosesor Zilog Z-80 CPU instruksi – instruksi pencabangan menggunakan instruksi JUMP. Instruksi JUMP membuat mikroprosesor menjadi perangkat yang sangat ampuh. Instruksi JUMP dapat dikategorikan menjadi empat kategori, yaitu :
- JUMP bersyarat
- JUMP tanpa syarat
- JUMP absolut
- JUMP relatif
- Instruksi Increment dan Decrement
Instruksi INC digunakan untuk menambah isi suatu register atau memori dengan suatu nilai. Instruksi ini sangat potensial digunakan untuk membuat counter cacah naik.
Instruksi DEC digunakan untuk mengurangi isi suatu register dengan suatu memori dengan nilai 1.
- Instruksi Compare ( CP )
Digunakan untuk membandingkan isi suatu akumulator dengan data immediate 8 bit atau isi salah satu register atau data suatu memori tanpa merubah isi akumulator.Instruksi ini sangat baik untuk menguji sebuah data apakah data tersebut sama dengan nilai tertentu , lebih kecil atau lebih besar.
B. DATA PERCOBAAN
Buatlah program untuk mengurutkan data dari yang terkecil menuju yang terbesar .
Algoritma :
- Buat cacahan jumlah data = 5 di register B
- Isi register IX dengan data 1900
- Isi register C dengan data pada register B
- Isi register IY dengan IX
- Isi register A dengan memori yang alamatnya ( IX + 00 )
- Isi register D dengan Memori yang alamatnya ( IY +00 )
- Bandingkan dengan D
- Apakah C = 1, ya lompat ke step 11
- Isi memori yang alamatnya ( IX + 00 ) dengan D
- Transfer isi reg. D ke memori yang alamatnya ( IY + 00 )
- IY yang baru IY + 00
- C yang baru C – 1
- Apakah Z = 0, ya ulang kestep 5
- IX yang baru IX + 1
- B ayng baru B -1
- Apakah Z = 0, ya ulang ke step 3
- Stop
Flow Chart:
Program :
Add | Op - Code | Label | No. | Mnemonik | Keterangan |
1800 | 06 04 | 1 | LD B, 04H | ||
1802 | DD 21 00 19 | 2 | LD IX, 1900H | ||
1806 | 48 | ULANG | 3 | LD C,B | |
1807 | DD E5 | 4 | PUSH IX | ||
1809 | FD E5 | 5 | PUSH IY | ||
180B | DD 7E 00 | ULANG | 6 | LD A, C (IX + 00) | |
180E | FD 56 01 | 7 | LD D, C (IY + 01) | ||
1811 | ED A9 | 8 | CP D | ||
1813 | DA 1C 18 | 9 | JPC, MAJU | ||
1816 | DD 72 00 | 10 | LD (IX + 00), D | ||
1819 | FD 77 01 | 11 | LD (IY + 01), A | ||
181C | FD 23 | MAJU | 12 | INC IY | |
181E | 0D | 13 | DEC C | ||
181F | C2 0B 18 | 14 | JPNZ, ULANG | ||
1822 | DD 23 | 15 | INC IX | ||
1824 | OD | 16 | DEC B | ||
1825 | C2 06 18 | 17 | JPNZ, ULANG | ||
1828 | FF | 18 | RST 38 |
Pengujian
Masukan program adalah data yang nilainya acak, setelah pengeksekusian program maka keluaran program berupa data yang urut dari kecil ke besar yang dapat kita lihat hasilnya pada register AF. Proses pengurutan data dapat dijelaskan dengan ilustrasi berikut :
DATA
|
I
|
II
|
III
|
IV
|
80
|
20 20 20 10
|
10 10 10
|
10 10
|
10
|
20
|
80 80 80 80
|
70 20 20
|
20 20
|
20
|
70
|
70 70 70 70
|
80 80 80
|
70 50
|
50
|
10
|
10 10 10 20
|
20 70 70
|
80 80
|
70
|
50
|
50 50 50 50
|
50 50 50
|
50 70
|
80
|
Cara kerja program :
- Membandingkan data ke-1 dengan ke-2, ke-3 dan data yang lain
- Data yang kecil dijadikan data yang baru untuk dibandingkan
- Setelah dibandingkan dapat yang lebih kecil, data tersebut ditukar lagi
- Program akan berhenti jika semua data telah dibandingkan dan disusun
Tidak ada komentar:
Posting Komentar